@designliquido/delegua 0.64.1 → 0.66.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 (38) hide show
  1. package/analisador-semantico/dialetos/analisador-semantico-pitugues.d.ts +83 -0
  2. package/analisador-semantico/dialetos/analisador-semantico-pitugues.d.ts.map +1 -0
  3. package/analisador-semantico/dialetos/analisador-semantico-pitugues.js +748 -0
  4. package/analisador-semantico/dialetos/analisador-semantico-pitugues.js.map +1 -0
  5. package/analisador-semantico/dialetos/index.d.ts +2 -0
  6. package/analisador-semantico/dialetos/index.d.ts.map +1 -0
  7. package/analisador-semantico/dialetos/index.js +18 -0
  8. package/analisador-semantico/dialetos/index.js.map +1 -0
  9. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts +3 -0
  10. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts.map +1 -1
  11. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js +155 -50
  12. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js.map +1 -1
  13. package/bin/package.json +1 -1
  14. package/interpretador/depuracao/avaliador-expressao-depuracao.d.ts +66 -0
  15. package/interpretador/depuracao/avaliador-expressao-depuracao.d.ts.map +1 -0
  16. package/interpretador/depuracao/avaliador-expressao-depuracao.js +145 -0
  17. package/interpretador/depuracao/avaliador-expressao-depuracao.js.map +1 -0
  18. package/interpretador/depuracao/comum.d.ts +11 -1
  19. package/interpretador/depuracao/comum.d.ts.map +1 -1
  20. package/interpretador/depuracao/comum.js +219 -3
  21. package/interpretador/depuracao/comum.js.map +1 -1
  22. package/interpretador/depuracao/index.d.ts +1 -0
  23. package/interpretador/depuracao/index.d.ts.map +1 -1
  24. package/interpretador/depuracao/index.js +1 -0
  25. package/interpretador/depuracao/index.js.map +1 -1
  26. package/interpretador/depuracao/interpretador-base-com-depuracao.d.ts +35 -3
  27. package/interpretador/depuracao/interpretador-base-com-depuracao.d.ts.map +1 -1
  28. package/interpretador/depuracao/interpretador-base-com-depuracao.js +50 -3
  29. package/interpretador/depuracao/interpretador-base-com-depuracao.js.map +1 -1
  30. package/interpretador/depuracao/interpretador-com-depuracao.d.ts +12 -3
  31. package/interpretador/depuracao/interpretador-com-depuracao.d.ts.map +1 -1
  32. package/interpretador/depuracao/interpretador-com-depuracao.js +27 -3
  33. package/interpretador/depuracao/interpretador-com-depuracao.js.map +1 -1
  34. package/interpretador/interpretador-base.d.ts.map +1 -1
  35. package/interpretador/interpretador-base.js +2 -0
  36. package/interpretador/interpretador-base.js.map +1 -1
  37. package/package.json +1 -1
  38. package/umd/delegua.js +157 -50
@@ -9,6 +9,7 @@ exports.visitarDeclaracaoEnquanto = visitarDeclaracaoEnquanto;
9
9
  exports.visitarDeclaracaoEscreva = visitarDeclaracaoEscreva;
10
10
  exports.visitarDeclaracaoPara = visitarDeclaracaoPara;
11
11
  exports.visitarExpressaoRetornar = visitarExpressaoRetornar;
12
+ exports.visitarExpressaoBinaria = visitarExpressaoBinaria;
12
13
  exports.executarBloco = executarBloco;
13
14
  exports.executarUltimoEscopoComandoContinuar = executarUltimoEscopoComandoContinuar;
14
15
  exports.instrucaoContinuarInterpretacao = instrucaoContinuarInterpretacao;
@@ -22,6 +23,8 @@ const declaracoes_1 = require("../../declaracoes");
22
23
  const quebras_1 = require("../../quebras");
23
24
  const inferenciador_1 = require("../../inferenciador");
24
25
  const espaco_memoria_1 = require("../espaco-memoria");
26
+ const delegua_1 = __importDefault(require("../../tipos-de-simbolos/delegua"));
27
+ const delegua_2 = __importDefault(require("../../tipos-de-dados/delegua"));
25
28
  async function avaliarArgumentosEscreva(interpretador, argumentos) {
26
29
  let formatoTexto = '';
27
30
  for (const argumento of argumentos) {
@@ -223,10 +226,19 @@ async function visitarDeclaracaoPara(interpretador, declaracao) {
223
226
  * @returns O resultado da execução da visita.
224
227
  */
225
228
  async function visitarExpressaoRetornar(interpretador, visitarExpressaoRetornarAncestral, declaracao) {
229
+ // Captura o escopo atual ANTES de avaliar a expressão,
230
+ // pois a avaliação pode abrir novos escopos
231
+ const escopoAtual = interpretador.pilhaEscoposExecucao.topoDaPilha();
226
232
  const retorno = await visitarExpressaoRetornarAncestral(declaracao);
233
+ // Se o retorno é null ou RetornoQuebra com valor null (porque pausamos durante avaliação de expressão,
234
+ // como ao entrar em uma função em modo adentrarEscopo), não marcar como finalizado ainda
235
+ const valorRetorno = retorno && retorno.hasOwnProperty('valor') ? retorno.valor : retorno;
236
+ const novoEscopoFoiCriado = interpretador.pilhaEscoposExecucao.topoDaPilha() !== escopoAtual;
237
+ if (valorRetorno === null && interpretador.comando === 'adentrarEscopo' && novoEscopoFoiCriado) {
238
+ return retorno;
239
+ }
227
240
  // O escopo atual é marcado como finalizado, para notificar a
228
241
  // instrução de que deve ser descartado.
229
- const escopoAtual = interpretador.pilhaEscoposExecucao.topoDaPilha();
230
242
  escopoAtual.finalizado = true;
231
243
  // Acha o primeiro escopo de função.
232
244
  const escopoFuncao = interpretador.pilhaEscoposExecucao.obterEscopoPorTipo('funcao');
@@ -239,6 +251,190 @@ async function visitarExpressaoRetornar(interpretador, visitarExpressaoRetornarA
239
251
  }
240
252
  return retorno;
241
253
  }
254
+ // Contador global para gerar IDs únicos de expressões binárias
255
+ let contadorBinarioDebug = 0;
256
+ /**
257
+ * Gera um identificador único para uma expressão binária.
258
+ * Usado para armazenar estado de avaliação parcial durante step-into.
259
+ * Cada expressão binária recebe um ID único na primeira vez que é encontrada,
260
+ * evitando colisões entre expressões na mesma linha.
261
+ * @param expressao A expressão binária.
262
+ * @returns Um identificador único para esta instância de expressão.
263
+ */
264
+ function gerarIdExpressaoBinaria(expressao) {
265
+ // Se a expressão já tem um ID de depuração, reutiliza
266
+ if (!expressao._debugId) {
267
+ // Gera um ID único usando um contador incremental
268
+ expressao._debugId = `binario_${++contadorBinarioDebug}`;
269
+ }
270
+ return expressao._debugId;
271
+ }
272
+ /**
273
+ * Sobrescreve a visita de expressão binária para permitir step-into em cada lado da expressão.
274
+ * Quando em modo de depuração com step-into, avalia o lado esquerdo primeiro e pausa.
275
+ * Na próxima execução, avalia o lado direito e completa a operação.
276
+ * @param interpretador O interpretador com depuração.
277
+ * @param visitarExpressaoBinariaAncestral Método ancestral para executar a lógica da operação.
278
+ * @param expressao A expressão binária.
279
+ * @returns O resultado da operação binária.
280
+ */
281
+ async function visitarExpressaoBinaria(interpretador, expressao) {
282
+ const escopoAtual = interpretador.pilhaEscoposExecucao.topoDaPilha();
283
+ const idExpressao = gerarIdExpressaoBinaria(expressao);
284
+ const chaveEsquerda = `${idExpressao}_esquerda`;
285
+ // Verifica se já avaliamos o lado esquerdo
286
+ if (escopoAtual.espacoMemoria.resolucoesChamadas.hasOwnProperty(chaveEsquerda)) {
287
+ // Lado esquerdo já foi avaliado, agora avaliar o lado direito
288
+ const esquerda = escopoAtual.espacoMemoria.resolucoesChamadas[chaveEsquerda];
289
+ // Avalia o lado direito
290
+ const direita = await interpretador.avaliar(expressao.direita);
291
+ // Limpa o cache do lado esquerdo pois já usamos
292
+ delete escopoAtual.espacoMemoria.resolucoesChamadas[chaveEsquerda];
293
+ // Resolve os valores
294
+ const valorEsquerdo = interpretador.resolverValor(esquerda);
295
+ const valorDireito = interpretador.resolverValor(direita);
296
+ const tipoEsquerdo = (esquerda === null || esquerda === void 0 ? void 0 : esquerda.hasOwnProperty('tipo'))
297
+ ? esquerda.tipo
298
+ : (0, inferenciador_1.inferirTipoVariavel)(esquerda);
299
+ const tipoDireito = (direita === null || direita === void 0 ? void 0 : direita.hasOwnProperty('tipo'))
300
+ ? direita.tipo
301
+ : (0, inferenciador_1.inferirTipoVariavel)(direita);
302
+ // Executa a operação binária usando a lógica ancestral
303
+ // Criamos um objeto temporário com os valores já avaliados para evitar re-avaliação
304
+ const expressaoTemp = Object.assign(Object.assign({}, expressao), { esquerda: { valor: valorEsquerdo, tipo: tipoEsquerdo }, direita: { valor: valorDireito, tipo: tipoDireito } });
305
+ // Não podemos chamar o ancestral diretamente porque ele vai tentar avaliar novamente
306
+ // Em vez disso, precisamos executar a operação diretamente
307
+ return await executarOperacaoBinaria(interpretador, expressao, esquerda, direita, valorEsquerdo, valorDireito, tipoEsquerdo, tipoDireito);
308
+ }
309
+ else {
310
+ // Rastreia o número de escopos antes de avaliar o lado esquerdo
311
+ const escoposAntes = interpretador.pilhaEscoposExecucao.elementos();
312
+ // Primeira avaliação - avaliar apenas o lado esquerdo
313
+ const esquerda = await interpretador.avaliar(expressao.esquerda);
314
+ // Armazena o resultado do lado esquerdo
315
+ escopoAtual.espacoMemoria.resolucoesChamadas[chaveEsquerda] = esquerda;
316
+ // Verifica se um novo escopo foi criado durante a avaliação do lado esquerdo
317
+ const escoposDepois = interpretador.pilhaEscoposExecucao.elementos();
318
+ const novoEscopoCriado = escoposDepois > escoposAntes;
319
+ // Se estamos em modo adentrarEscopo e um novo escopo foi aberto,
320
+ // a execução deve pausar aqui para permitir que o usuário adentre na função do lado esquerdo
321
+ // A próxima chamada a visitarExpressaoBinaria irá continuar do lado direito
322
+ if (interpretador.comando === 'adentrarEscopo' && novoEscopoCriado) {
323
+ // Retorna um valor temporário, a avaliação será completada na próxima execução
324
+ return null;
325
+ }
326
+ // Verifica se devemos continuar ou pausar
327
+ // Se pontoDeParadaAtivo foi ativado durante a avaliação do lado esquerdo, devemos retornar
328
+ if (interpretador.pontoDeParadaAtivo) {
329
+ // Retorna um valor temporário, a avaliação será completada na próxima execução
330
+ return null;
331
+ }
332
+ // Se não há pausa e não entramos em novo escopo, continuar com a avaliação do lado direito
333
+ const direita = await interpretador.avaliar(expressao.direita);
334
+ // Limpa o cache já que completamos a avaliação
335
+ delete escopoAtual.espacoMemoria.resolucoesChamadas[chaveEsquerda];
336
+ const valorEsquerdo = interpretador.resolverValor(esquerda);
337
+ const valorDireito = interpretador.resolverValor(direita);
338
+ const tipoEsquerdo = (esquerda === null || esquerda === void 0 ? void 0 : esquerda.hasOwnProperty('tipo'))
339
+ ? esquerda.tipo
340
+ : (0, inferenciador_1.inferirTipoVariavel)(esquerda);
341
+ const tipoDireito = (direita === null || direita === void 0 ? void 0 : direita.hasOwnProperty('tipo'))
342
+ ? direita.tipo
343
+ : (0, inferenciador_1.inferirTipoVariavel)(direita);
344
+ return await executarOperacaoBinaria(interpretador, expressao, esquerda, direita, valorEsquerdo, valorDireito, tipoEsquerdo, tipoDireito);
345
+ }
346
+ }
347
+ /**
348
+ * Executa a operação binária após ambos os lados terem sido avaliados.
349
+ * Contém a lógica de todas as operações binárias suportadas.
350
+ */
351
+ async function executarOperacaoBinaria(interpretador, expressao, esquerda, direita, valorEsquerdo, valorDireito, tipoEsquerdo, tipoDireito) {
352
+ switch (expressao.operador.tipo) {
353
+ case delegua_1.default.EXPONENCIACAO:
354
+ interpretador.verificarOperandosNumeros(expressao.operador, esquerda, direita);
355
+ return Math.pow(valorEsquerdo, valorDireito);
356
+ case delegua_1.default.MAIOR:
357
+ if (interpretador.tiposNumericos.includes(tipoEsquerdo) &&
358
+ interpretador.tiposNumericos.includes(tipoDireito)) {
359
+ return Number(valorEsquerdo) > Number(valorDireito);
360
+ }
361
+ return String(valorEsquerdo) > String(valorDireito);
362
+ case delegua_1.default.MAIOR_IGUAL:
363
+ interpretador.verificarOperandosNumeros(expressao.operador, esquerda, direita);
364
+ return Number(valorEsquerdo) >= Number(valorDireito);
365
+ case delegua_1.default.MENOR:
366
+ if (interpretador.tiposNumericos.includes(tipoEsquerdo) &&
367
+ interpretador.tiposNumericos.includes(tipoDireito)) {
368
+ return Number(valorEsquerdo) < Number(valorDireito);
369
+ }
370
+ return String(valorEsquerdo) < String(valorDireito);
371
+ case delegua_1.default.MENOR_IGUAL:
372
+ interpretador.verificarOperandosNumeros(expressao.operador, esquerda, direita);
373
+ return Number(valorEsquerdo) <= Number(valorDireito);
374
+ case delegua_1.default.SUBTRACAO:
375
+ case delegua_1.default.MENOS_IGUAL:
376
+ interpretador.verificarOperandosNumeros(expressao.operador, esquerda, direita);
377
+ return Number(valorEsquerdo) - Number(valorDireito);
378
+ case delegua_1.default.ADICAO:
379
+ case delegua_1.default.MAIS_IGUAL:
380
+ if (Array.isArray(valorEsquerdo) && Array.isArray(valorDireito)) {
381
+ return valorEsquerdo.concat(valorDireito);
382
+ }
383
+ if (interpretador.tiposNumericos.includes(tipoEsquerdo) &&
384
+ interpretador.tiposNumericos.includes(tipoDireito)) {
385
+ return Number(valorEsquerdo) + Number(valorDireito);
386
+ }
387
+ if (tipoEsquerdo === 'qualquer' || tipoDireito === 'qualquer') {
388
+ return valorEsquerdo + valorDireito;
389
+ }
390
+ return interpretador.paraTexto(valorEsquerdo) + interpretador.paraTexto(valorDireito);
391
+ case delegua_1.default.DIVISAO:
392
+ case delegua_1.default.DIVISAO_IGUAL:
393
+ interpretador.verificarOperandosNumeros(expressao.operador, esquerda, direita);
394
+ return Number(valorEsquerdo) / Number(valorDireito);
395
+ case delegua_1.default.DIVISAO_INTEIRA:
396
+ case delegua_1.default.DIVISAO_INTEIRA_IGUAL:
397
+ interpretador.verificarOperandosNumeros(expressao.operador, esquerda, direita);
398
+ return Math.floor(Number(valorEsquerdo) / Number(valorDireito));
399
+ case delegua_1.default.MULTIPLICACAO:
400
+ case delegua_1.default.MULTIPLICACAO_IGUAL:
401
+ if (delegua_2.default && (tipoEsquerdo === delegua_2.default.TEXTO ||
402
+ tipoDireito === delegua_2.default.TEXTO)) {
403
+ if (tipoEsquerdo === delegua_2.default.TEXTO &&
404
+ tipoDireito === delegua_2.default.TEXTO) {
405
+ return Number(valorEsquerdo) * Number(valorDireito);
406
+ }
407
+ if (tipoEsquerdo === delegua_2.default.TEXTO) {
408
+ return valorEsquerdo.repeat(Number(valorDireito));
409
+ }
410
+ return valorDireito.repeat(Number(valorEsquerdo));
411
+ }
412
+ return Number(valorEsquerdo) * Number(valorDireito);
413
+ case delegua_1.default.MODULO:
414
+ case delegua_1.default.MODULO_IGUAL:
415
+ interpretador.verificarOperandosNumeros(expressao.operador, esquerda, direita);
416
+ return Number(valorEsquerdo) % Number(valorDireito);
417
+ case delegua_1.default.BIT_AND:
418
+ interpretador.verificarOperandosNumeros(expressao.operador, esquerda, direita);
419
+ return Number(valorEsquerdo) & Number(valorDireito);
420
+ case delegua_1.default.BIT_XOR:
421
+ interpretador.verificarOperandosNumeros(expressao.operador, esquerda, direita);
422
+ return Number(valorEsquerdo) ^ Number(valorDireito);
423
+ case delegua_1.default.BIT_OR:
424
+ interpretador.verificarOperandosNumeros(expressao.operador, esquerda, direita);
425
+ return Number(valorEsquerdo) | Number(valorDireito);
426
+ case delegua_1.default.MENOR_MENOR:
427
+ interpretador.verificarOperandosNumeros(expressao.operador, esquerda, direita);
428
+ return Number(valorEsquerdo) << Number(valorDireito);
429
+ case delegua_1.default.MAIOR_MAIOR:
430
+ interpretador.verificarOperandosNumeros(expressao.operador, esquerda, direita);
431
+ return Number(valorEsquerdo) >> Number(valorDireito);
432
+ case delegua_1.default.DIFERENTE:
433
+ return !interpretador.eIgual(valorEsquerdo, valorDireito);
434
+ case delegua_1.default.IGUAL_IGUAL:
435
+ return interpretador.eIgual(valorEsquerdo, valorDireito);
436
+ }
437
+ }
242
438
  /**
243
439
  * Se bloco de execução já foi instanciado antes (por exemplo, quando há um ponto de parada e a
244
440
  * execução do código é retomada pelo depurador), retoma a execução do bloco do ponto em que havia parado.
@@ -327,11 +523,29 @@ function descartarTodosEscoposFinalizados(interpretador) {
327
523
  }
328
524
  async function executarUmPassoNoEscopo(interpretador) {
329
525
  const ultimoEscopo = interpretador.pilhaEscoposExecucao.topoDaPilha();
526
+ // Rastreia quantos escopos existem antes da execução para detectar entrada em novo escopo
527
+ const escoposAntes = interpretador.pilhaEscoposExecucao.elementos();
330
528
  let retornoExecucao;
331
529
  if (interpretador.passos > 0) {
332
530
  interpretador.passos--;
333
- retornoExecucao = await interpretador.executar(ultimoEscopo.declaracoes[ultimoEscopo.declaracaoAtual]);
334
- if (!interpretador.pontoDeParadaAtivo && !ultimoEscopo.emLacoRepeticao) {
531
+ // Verifica se há ponto de parada antes de executar
532
+ const declaracaoAtual = ultimoEscopo.declaracoes[ultimoEscopo.declaracaoAtual];
533
+ interpretador.linhaDeclaracaoAtual = declaracaoAtual.linha;
534
+ interpretador.hashArquivoDeclaracaoAtual = declaracaoAtual.hashArquivo;
535
+ interpretador.pontoDeParadaAtivo = verificarPontoParada(interpretador, declaracaoAtual);
536
+ if (interpretador.pontoDeParadaAtivo) {
537
+ interpretador.avisoPontoParadaAtivado();
538
+ return retornoExecucao;
539
+ }
540
+ retornoExecucao = await interpretador.executar(declaracaoAtual);
541
+ // Verifica se entramos em um novo escopo durante a execução
542
+ const escoposDepois = interpretador.pilhaEscoposExecucao.elementos();
543
+ const entroEmNovoEscopo = escoposDepois > escoposAntes;
544
+ // Não incrementa se:
545
+ // - Há um ponto de parada ativo
546
+ // - Estamos em um laço de repetição (o laço gerencia a iteração)
547
+ // - Entramos em um novo escopo (precisamos executar o novo escopo antes de avançar)
548
+ if (!interpretador.pontoDeParadaAtivo && !ultimoEscopo.emLacoRepeticao && !entroEmNovoEscopo) {
335
549
  ultimoEscopo.declaracaoAtual++;
336
550
  }
337
551
  if (ultimoEscopo.declaracaoAtual >= ultimoEscopo.declaracoes.length ||
@@ -433,6 +647,8 @@ async function instrucaoContinuarInterpretacao(interpretador, escopo = 1) {
433
647
  * @param escopo Indica o escopo a ser visitado. Usado para construir uma pilha de chamadas do lado JS.
434
648
  */
435
649
  async function instrucaoPasso(interpretador, escopo = 1) {
650
+ // Limpa o ponto de parada para permitir a execução
651
+ interpretador.pontoDeParadaAtivo = false;
436
652
  interpretador.passos = 1;
437
653
  const escopoVisitado = interpretador.pilhaEscoposExecucao.naPosicao(escopo);
438
654
  if (escopo < interpretador.escopoAtual) {
@@ -1 +1 @@
1
- {"version":3,"file":"comum.js","sourceRoot":"","sources":["../../../fontes/interpretador/depuracao/comum.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"comum.js","sourceRoot":"","sources":["../../../fontes/interpretador/depuracao/comum.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ export * from './avaliador-expressao-depuracao';
1
2
  export * from './interpretador-base-com-depuracao';
2
3
  export * from './interpretador-com-depuracao';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../fontes/interpretador/depuracao/index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../fontes/interpretador/depuracao/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC"}
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./avaliador-expressao-depuracao"), exports);
17
18
  __exportStar(require("./interpretador-base-com-depuracao"), exports);
18
19
  __exportStar(require("./interpretador-com-depuracao"), exports);
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/interpretador/depuracao/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qEAAmD;AACnD,gEAA8C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/interpretador/depuracao/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kEAAgD;AAChD,qEAAmD;AACnD,gEAA8C"}
@@ -1,4 +1,4 @@
1
- import { Chamada, Construto } from '../../construtos';
1
+ import { Binario, Chamada, Construto } from '../../construtos';
2
2
  import { Declaracao, Enquanto, Escreva, Para, Retorna } from '../../declaracoes';
3
3
  import { PontoParada } from '../../depuracao';
4
4
  import { ComandoDepurador, InterpretadorComDepuracaoInterface, RetornoInterpretadorInterface } from '../../interfaces';
@@ -6,6 +6,29 @@ import { TipoEscopoExecucao } from '../../interfaces/escopo-execucao';
6
6
  import { RetornoQuebra } from '../../quebras';
7
7
  import { EspacoMemoria } from '../espaco-memoria';
8
8
  import { InterpretadorBase } from '../interpretador-base';
9
+ /**
10
+ * Implementação do Interpretador Base com suporte a depuração.
11
+ * Herda o Interpretador Base e implementa métodos a mais, que são
12
+ * usados por ferramentas de depuração, como a [extensão de VSCode da Design Líquido](https://marketplace.visualstudio.com/items?itemName=designliquido.design-liquido).
13
+ * Este Interpretador Base com depuração é usado pela maioria dos dialetos de Delégua.
14
+ * Delégua e Pituguês utilizam uma outra implementação, o Interpretador com Depuração.
15
+ * Alguns métodos do Interpretador original, como `executarBloco` e `interpretar`,
16
+ * são reimplementados aqui.
17
+ *
18
+ * A separação entre `InterpretadorBase` e `InterpretadorBaseComDepuracao` se faz
19
+ * necessária por uma série de motivos.
20
+ * O primeiro deles é o desempenho. A depuração torna o desempenho do
21
+ * Interpretador com depuração inferior ao Interpretador original pelas
22
+ * várias verificações de controle que precisam ser feitas para a
23
+ * funcionalidade do suporte a depuração, como verificar pontos de parada,
24
+ * estados da pilha de execução e variáveis.
25
+ * O segundo deles é manter o Interpretador original tão simples quanto possível.
26
+ * Uma implementação mais simples normalmente é mais robusta.
27
+ * O terceiro deles é o uso de memória. O Interpretador original não possui
28
+ * uma série de variáveis implementadas aqui, o que o torna mais econômico em
29
+ * recursos de máquina.
30
+ * @see InterpretadorComDepuracao
31
+ */
9
32
  export declare class InterpretadorBaseComDepuracao extends InterpretadorBase implements InterpretadorComDepuracaoInterface {
10
33
  comando?: ComandoDepurador;
11
34
  pontoDeParadaAtivo: boolean;
@@ -29,6 +52,7 @@ export declare class InterpretadorBaseComDepuracao extends InterpretadorBase imp
29
52
  */
30
53
  avaliar(expressao: Construto | Declaracao): Promise<any>;
31
54
  visitarExpressaoDeChamada(expressao: Chamada): Promise<any>;
55
+ visitarExpressaoBinaria(expressao: Binario): Promise<any>;
32
56
  visitarDeclaracaoEnquanto(declaracao: Enquanto): Promise<any>;
33
57
  avaliarArgumentosEscreva(argumentos: Construto[]): Promise<string>;
34
58
  /**
@@ -82,8 +106,16 @@ export declare class InterpretadorBaseComDepuracao extends InterpretadorBase imp
82
106
  */
83
107
  instrucaoContinuarInterpretacao(escopo?: number): Promise<any>;
84
108
  /**
85
- * Empilha um escopo se for possível.
86
- * Se não for, apenas executa a instrução corrente.
109
+ * Empilha um escopo se for possível (comando "Step Into" do depurador).
110
+ * Se a instrução corrente contém uma chamada de função, entra na função e pausa na primeira linha.
111
+ * Se não houver chamada de função, comporta-se como "próximo" (step over).
112
+ *
113
+ * Fluxo de execução:
114
+ * 1. Define o comando como 'adentrarEscopo'
115
+ * 2. Executa um passo (que pode ou não entrar em uma função)
116
+ * 3. Se entrou em função, o escopo da função fica no topo da pilha pronto para executar
117
+ * 4. Se não entrou, a instrução é executada normalmente
118
+ * 5. Ativa ponto de parada para aguardar próximo comando do usuário
87
119
  */
88
120
  adentrarEscopo(): Promise<any>;
89
121
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"interpretador-base-com-depuracao.d.ts","sourceRoot":"","sources":["../../../fontes/interpretador/depuracao/interpretador-base-com-depuracao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EACH,gBAAgB,EAChB,kCAAkC,EAClC,6BAA6B,EAChC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAI1D,qBAAa,6BACT,SAAQ,iBACR,YAAW,kCAAkC;IAE7C,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,uBAAuB,EAAE,QAAQ,CAAC;IAClC,qBAAqB,EAAE,QAAQ,CAAC;IAEhC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,kBAAkB,CAAC;gBAG/B,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,QAAQ,EACzB,yBAAyB,EAAE,QAAQ;IAYvC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;IAIhC;;;;;;;OAOG;IACY,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAIxD,yBAAyB,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAQ3D,yBAAyB,CAAC,UAAU,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAI7D,wBAAwB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAcjF;;;;;;OAMG;IACY,wBAAwB,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAI3D,qBAAqB,CAAC,UAAU,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;IAIpE;;;;;OAKG;IACY,wBAAwB,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAQpF;;;;;;;;;OASG;IACY,aAAa,CACxB,WAAW,EAAE,UAAU,EAAE,EACzB,QAAQ,CAAC,EAAE,aAAa,GACzB,OAAO,CAAC,GAAG,CAAC;IAIf;;;;;;;;;;;OAWG;IACY,oBAAoB,CAC/B,cAAc,UAAQ,EACtB,4BAA4B,UAAQ,GACrC,OAAO,CAAC,GAAG,CAAC;IAIf;;;;;;;;OAQG;IACG,+BAA+B,CAAC,MAAM,SAAI,GAAG,OAAO,CAAC,GAAG,CAAC;IAI/D;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC;IAIpC;;;;;OAKG;IACG,cAAc,CAAC,MAAM,SAAI;IAI/B;;;;OAIG;IACG,qBAAqB;IAI3B;;;;OAIG;IACH,qBAAqB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI;IAKtD;;;;;;OAMG;IACY,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,UAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAIvF;;;;;;OAMG;IACY,WAAW,CACtB,WAAW,EAAE,UAAU,EAAE,EACzB,cAAc,UAAQ,GACvB,OAAO,CAAC,6BAA6B,CAAC;CAmB5C"}
1
+ {"version":3,"file":"interpretador-base-com-depuracao.d.ts","sourceRoot":"","sources":["../../../fontes/interpretador/depuracao/interpretador-base-com-depuracao.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,29 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.InterpretadorBaseComDepuracao = void 0;
37
37
  const interpretador_base_1 = require("../interpretador-base");
38
38
  const comum = __importStar(require("./comum"));
39
+ /**
40
+ * Implementação do Interpretador Base com suporte a depuração.
41
+ * Herda o Interpretador Base e implementa métodos a mais, que são
42
+ * usados por ferramentas de depuração, como a [extensão de VSCode da Design Líquido](https://marketplace.visualstudio.com/items?itemName=designliquido.design-liquido).
43
+ * Este Interpretador Base com depuração é usado pela maioria dos dialetos de Delégua.
44
+ * Delégua e Pituguês utilizam uma outra implementação, o Interpretador com Depuração.
45
+ * Alguns métodos do Interpretador original, como `executarBloco` e `interpretar`,
46
+ * são reimplementados aqui.
47
+ *
48
+ * A separação entre `InterpretadorBase` e `InterpretadorBaseComDepuracao` se faz
49
+ * necessária por uma série de motivos.
50
+ * O primeiro deles é o desempenho. A depuração torna o desempenho do
51
+ * Interpretador com depuração inferior ao Interpretador original pelas
52
+ * várias verificações de controle que precisam ser feitas para a
53
+ * funcionalidade do suporte a depuração, como verificar pontos de parada,
54
+ * estados da pilha de execução e variáveis.
55
+ * O segundo deles é manter o Interpretador original tão simples quanto possível.
56
+ * Uma implementação mais simples normalmente é mais robusta.
57
+ * O terceiro deles é o uso de memória. O Interpretador original não possui
58
+ * uma série de variáveis implementadas aqui, o que o torna mais econômico em
59
+ * recursos de máquina.
60
+ * @see InterpretadorComDepuracao
61
+ */
39
62
  class InterpretadorBaseComDepuracao extends interpretador_base_1.InterpretadorBase {
40
63
  constructor(diretorioBase, funcaoDeRetorno, funcaoDeRetornoMesmaLinha) {
41
64
  super(diretorioBase, false, funcaoDeRetorno, funcaoDeRetornoMesmaLinha);
@@ -63,6 +86,11 @@ class InterpretadorBaseComDepuracao extends interpretador_base_1.InterpretadorBa
63
86
  async visitarExpressaoDeChamada(expressao) {
64
87
  return await comum.visitarExpressaoDeChamada(this, super.visitarExpressaoDeChamada.bind(this), expressao);
65
88
  }
89
+ async visitarExpressaoBinaria(expressao) {
90
+ return await comum.visitarExpressaoBinaria(this,
91
+ // super.visitarExpressaoBinaria.bind(this),
92
+ expressao);
93
+ }
66
94
  async visitarDeclaracaoEnquanto(declaracao) {
67
95
  return await comum.visitarDeclaracaoEnquanto(this, declaracao);
68
96
  }
@@ -140,11 +168,30 @@ class InterpretadorBaseComDepuracao extends interpretador_base_1.InterpretadorBa
140
168
  await comum.instrucaoContinuarInterpretacao(this, escopo);
141
169
  }
142
170
  /**
143
- * Empilha um escopo se for possível.
144
- * Se não for, apenas executa a instrução corrente.
171
+ * Empilha um escopo se for possível (comando "Step Into" do depurador).
172
+ * Se a instrução corrente contém uma chamada de função, entra na função e pausa na primeira linha.
173
+ * Se não houver chamada de função, comporta-se como "próximo" (step over).
174
+ *
175
+ * Fluxo de execução:
176
+ * 1. Define o comando como 'adentrarEscopo'
177
+ * 2. Executa um passo (que pode ou não entrar em uma função)
178
+ * 3. Se entrou em função, o escopo da função fica no topo da pilha pronto para executar
179
+ * 4. Se não entrou, a instrução é executada normalmente
180
+ * 5. Ativa ponto de parada para aguardar próximo comando do usuário
145
181
  */
146
182
  async adentrarEscopo() {
147
- throw new Error('Método não implementado.');
183
+ // Define o comando para indicar modo "adentrar escopo"
184
+ this.comando = 'adentrarEscopo';
185
+ // Limpa ponto de parada para permitir execução
186
+ this.pontoDeParadaAtivo = false;
187
+ // Executa um passo (que pode entrar em uma função se houver chamada)
188
+ await this.instrucaoPasso();
189
+ // Após execução, pausa para aguardar próximo comando do usuário
190
+ // (a menos que um ponto de parada já tenha sido ativado durante a execução)
191
+ if (!this.pontoDeParadaAtivo) {
192
+ this.pontoDeParadaAtivo = true;
193
+ this.avisoPontoParadaAtivado();
194
+ }
148
195
  }
149
196
  /**
150
197
  * Interpreta apenas uma instrução a partir do ponto de parada ativo, conforme comando do depurador.
@@ -1 +1 @@
1
- {"version":3,"file":"interpretador-base-com-depuracao.js","sourceRoot":"","sources":["../../../fontes/interpretador/depuracao/interpretador-base-com-depuracao.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interpretador-base-com-depuracao.js","sourceRoot":"","sources":["../../../fontes/interpretador/depuracao/interpretador-base-com-depuracao.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { ComandoDepurador, InterpretadorComDepuracaoInterface } from '../../inte
4
4
  import { TipoEscopoExecucao } from '../../interfaces/escopo-execucao';
5
5
  import { RetornoQuebra } from '../../quebras';
6
6
  import { RetornoInterpretadorInterface } from '../../interfaces/retornos/retorno-interpretador-interface';
7
- import { Chamada, Construto } from '../../construtos';
7
+ import { Binario, Chamada, Construto } from '../../construtos';
8
8
  import { Interpretador } from '../interpretador';
9
9
  import { EspacoMemoria } from '../espaco-memoria';
10
10
  /**
@@ -51,6 +51,7 @@ export declare class InterpretadorComDepuracao extends Interpretador implements
51
51
  */
52
52
  avaliar(expressao: Construto | Declaracao): Promise<any>;
53
53
  visitarExpressaoDeChamada(expressao: Chamada): Promise<any>;
54
+ visitarExpressaoBinaria(expressao: Binario): Promise<any>;
54
55
  visitarDeclaracaoEnquanto(declaracao: Enquanto): Promise<any>;
55
56
  avaliarArgumentosEscreva(argumentos: Construto[]): Promise<string>;
56
57
  /**
@@ -104,8 +105,16 @@ export declare class InterpretadorComDepuracao extends Interpretador implements
104
105
  */
105
106
  instrucaoContinuarInterpretacao(escopo?: number): Promise<any>;
106
107
  /**
107
- * Empilha um escopo se for possível.
108
- * Se não for, apenas executa a instrução corrente.
108
+ * Empilha um escopo se for possível (comando "Step Into" do depurador).
109
+ * Se a instrução corrente contém uma chamada de função, entra na função e pausa na primeira linha.
110
+ * Se não houver chamada de função, comporta-se como "próximo" (step over).
111
+ *
112
+ * Fluxo de execução:
113
+ * 1. Define o comando como 'adentrarEscopo'
114
+ * 2. Executa um passo (que pode ou não entrar em uma função)
115
+ * 3. Se entrou em função, o escopo da função fica no topo da pilha pronto para executar
116
+ * 4. Se não entrou, a instrução é executada normalmente
117
+ * 5. Ativa ponto de parada para aguardar próximo comando do usuário
109
118
  */
110
119
  adentrarEscopo(): Promise<any>;
111
120
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"interpretador-com-depuracao.d.ts","sourceRoot":"","sources":["../../../fontes/interpretador/depuracao/interpretador-com-depuracao.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interpretador-com-depuracao.d.ts","sourceRoot":"","sources":["../../../fontes/interpretador/depuracao/interpretador-com-depuracao.ts"],"names":[],"mappings":"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"}