@designliquido/delegua 1.27.1 → 1.28.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 (134) hide show
  1. package/avaliador-sintatico/avaliador-sintatico-base.d.ts.map +1 -1
  2. package/avaliador-sintatico/avaliador-sintatico-base.js +11 -0
  3. package/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -1
  4. package/avaliador-sintatico/avaliador-sintatico.d.ts +1 -0
  5. package/avaliador-sintatico/avaliador-sintatico.d.ts.map +1 -1
  6. package/avaliador-sintatico/avaliador-sintatico.js +30 -7
  7. package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  8. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts.map +1 -1
  9. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js +0 -1
  10. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js.map +1 -1
  11. package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.d.ts.map +1 -1
  12. package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.js +0 -1
  13. package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.js.map +1 -1
  14. package/bibliotecas/biblioteca-global.js +1 -1
  15. package/bibliotecas/biblioteca-global.js.map +1 -1
  16. package/bibliotecas/primitivas-vetor.d.ts.map +1 -1
  17. package/bibliotecas/primitivas-vetor.js +2 -1
  18. package/bibliotecas/primitivas-vetor.js.map +1 -1
  19. package/bin/package.json +3 -2
  20. package/construtos/agrupamento.d.ts +1 -1
  21. package/construtos/agrupamento.d.ts.map +1 -1
  22. package/construtos/agrupamento.js +2 -2
  23. package/construtos/agrupamento.js.map +1 -1
  24. package/construtos/atribuir.d.ts +1 -1
  25. package/construtos/atribuir.d.ts.map +1 -1
  26. package/construtos/atribuir.js +2 -2
  27. package/construtos/atribuir.js.map +1 -1
  28. package/construtos/binario.d.ts +1 -1
  29. package/construtos/binario.d.ts.map +1 -1
  30. package/construtos/binario.js +2 -2
  31. package/construtos/binario.js.map +1 -1
  32. package/construtos/literal.d.ts +1 -1
  33. package/construtos/literal.d.ts.map +1 -1
  34. package/construtos/literal.js +2 -2
  35. package/construtos/literal.js.map +1 -1
  36. package/construtos/logico.d.ts +1 -1
  37. package/construtos/logico.d.ts.map +1 -1
  38. package/construtos/logico.js +2 -2
  39. package/construtos/logico.js.map +1 -1
  40. package/construtos/para-como-construto.d.ts +2 -1
  41. package/construtos/para-como-construto.d.ts.map +1 -1
  42. package/construtos/para-como-construto.js +2 -1
  43. package/construtos/para-como-construto.js.map +1 -1
  44. package/construtos/unario.d.ts +1 -1
  45. package/construtos/unario.d.ts.map +1 -1
  46. package/construtos/unario.js +2 -2
  47. package/construtos/unario.js.map +1 -1
  48. package/construtos/variavel.d.ts +2 -2
  49. package/construtos/variavel.d.ts.map +1 -1
  50. package/construtos/variavel.js +2 -2
  51. package/construtos/variavel.js.map +1 -1
  52. package/declaracoes/para.d.ts +2 -1
  53. package/declaracoes/para.d.ts.map +1 -1
  54. package/declaracoes/para.js +2 -1
  55. package/declaracoes/para.js.map +1 -1
  56. package/formatadores/formatador-delegua.d.ts.map +1 -1
  57. package/formatadores/formatador-delegua.js +11 -7
  58. package/formatadores/formatador-delegua.js.map +1 -1
  59. package/formatadores/formatador-pitugues.d.ts.map +1 -1
  60. package/formatadores/formatador-pitugues.js +2 -1
  61. package/formatadores/formatador-pitugues.js.map +1 -1
  62. package/interfaces/construtos/construto-interface.d.ts +6 -1
  63. package/interfaces/construtos/construto-interface.d.ts.map +1 -1
  64. package/interfaces/delegua/para-interface.d.ts +7 -0
  65. package/interfaces/delegua/para-interface.d.ts.map +1 -1
  66. package/interfaces/interpretador-interface.d.ts +13 -1
  67. package/interfaces/interpretador-interface.d.ts.map +1 -1
  68. package/interfaces/parametro-interface.d.ts +4 -0
  69. package/interfaces/parametro-interface.d.ts.map +1 -1
  70. package/interpretador/depuracao/interpretador-base-com-depuracao.d.ts +1 -0
  71. package/interpretador/depuracao/interpretador-base-com-depuracao.d.ts.map +1 -1
  72. package/interpretador/depuracao/interpretador-base-com-depuracao.js +1 -0
  73. package/interpretador/depuracao/interpretador-base-com-depuracao.js.map +1 -1
  74. package/interpretador/depuracao/interpretador-com-depuracao.d.ts +1 -0
  75. package/interpretador/depuracao/interpretador-com-depuracao.d.ts.map +1 -1
  76. package/interpretador/depuracao/interpretador-com-depuracao.js +1 -0
  77. package/interpretador/depuracao/interpretador-com-depuracao.js.map +1 -1
  78. package/interpretador/dialetos/calango/interpretador-calango.d.ts +1 -1
  79. package/interpretador/dialetos/calango/interpretador-calango.d.ts.map +1 -1
  80. package/interpretador/dialetos/calango/interpretador-calango.js +14 -10
  81. package/interpretador/dialetos/calango/interpretador-calango.js.map +1 -1
  82. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts.map +1 -1
  83. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js +3 -3
  84. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js.map +1 -1
  85. package/interpretador/dialetos/pitugues/interpretador-pitugues.d.ts +1 -1
  86. package/interpretador/dialetos/pitugues/interpretador-pitugues.d.ts.map +1 -1
  87. package/interpretador/dialetos/pitugues/interpretador-pitugues.js +8 -6
  88. package/interpretador/dialetos/pitugues/interpretador-pitugues.js.map +1 -1
  89. package/interpretador/dialetos/prisma/interpretador-prisma.d.ts +2 -2
  90. package/interpretador/dialetos/prisma/interpretador-prisma.d.ts.map +1 -1
  91. package/interpretador/dialetos/prisma/interpretador-prisma.js +26 -19
  92. package/interpretador/dialetos/prisma/interpretador-prisma.js.map +1 -1
  93. package/interpretador/encadear.d.ts +36 -0
  94. package/interpretador/encadear.d.ts.map +1 -0
  95. package/interpretador/encadear.js +43 -0
  96. package/interpretador/encadear.js.map +1 -0
  97. package/interpretador/estruturas/delegua-funcao.d.ts +25 -0
  98. package/interpretador/estruturas/delegua-funcao.d.ts.map +1 -1
  99. package/interpretador/estruturas/delegua-funcao.js +137 -24
  100. package/interpretador/estruturas/delegua-funcao.js.map +1 -1
  101. package/interpretador/interpretador-base.d.ts +34 -22
  102. package/interpretador/interpretador-base.d.ts.map +1 -1
  103. package/interpretador/interpretador-base.js +634 -558
  104. package/interpretador/interpretador-base.js.map +1 -1
  105. package/interpretador/interpretador.d.ts +8 -11
  106. package/interpretador/interpretador.d.ts.map +1 -1
  107. package/interpretador/interpretador.js +173 -116
  108. package/interpretador/interpretador.js.map +1 -1
  109. package/lexador/dialetos/lexador-pitugues.d.ts.map +1 -1
  110. package/lexador/dialetos/lexador-pitugues.js +0 -1
  111. package/lexador/dialetos/lexador-pitugues.js.map +1 -1
  112. package/lexador/dialetos/lexador-portugol-ipt.d.ts.map +1 -1
  113. package/lexador/dialetos/lexador-portugol-ipt.js +3 -2
  114. package/lexador/dialetos/lexador-portugol-ipt.js.map +1 -1
  115. package/lexador/dialetos/lexador-tenda.d.ts.map +1 -1
  116. package/lexador/dialetos/lexador-tenda.js +0 -1
  117. package/lexador/dialetos/lexador-tenda.js.map +1 -1
  118. package/lexador/lexador-base-linha-unica.d.ts.map +1 -1
  119. package/lexador/lexador-base-linha-unica.js +3 -2
  120. package/lexador/lexador-base-linha-unica.js.map +1 -1
  121. package/lexador/lexador-base.d.ts.map +1 -1
  122. package/lexador/lexador-base.js +9 -2
  123. package/lexador/lexador-base.js.map +1 -1
  124. package/lexador/lexador.d.ts.map +1 -1
  125. package/lexador/lexador.js +3 -3
  126. package/lexador/lexador.js.map +1 -1
  127. package/lexador/micro-lexador-pitugues.d.ts.map +1 -1
  128. package/lexador/micro-lexador-pitugues.js +3 -2
  129. package/lexador/micro-lexador-pitugues.js.map +1 -1
  130. package/lexador/micro-lexador.d.ts.map +1 -1
  131. package/lexador/micro-lexador.js +3 -2
  132. package/lexador/micro-lexador.js.map +1 -1
  133. package/package.json +3 -2
  134. package/umd/delegua.js +1481 -1120
@@ -37,6 +37,7 @@ exports.InterpretadorPitugues = void 0;
37
37
  const construtos_1 = require("../../../construtos");
38
38
  const interpretador_1 = require("../../interpretador");
39
39
  const excecoes_1 = require("../../../excecoes");
40
+ const encadear_1 = require("../../encadear");
40
41
  const inferenciador_1 = require("../../../inferenciador");
41
42
  const quebras_1 = require("../../../quebras");
42
43
  const pilha_escopos_execucao_pitugues_1 = require("./pilha-escopos-execucao-pitugues");
@@ -109,7 +110,7 @@ class InterpretadorPitugues extends interpretador_1.Interpretador {
109
110
  * Isso permite que `PilhaEscoposExecucaoPitugues` identifique fronteiras de
110
111
  * função e aplique a semântica LEGB corretamente.
111
112
  */
112
- async executarBloco(declaracoes, ambiente) {
113
+ executarBloco(declaracoes, ambiente) {
113
114
  if (ambiente !== undefined && ambiente !== null) {
114
115
  const escopoFuncao = {
115
116
  declaracoes,
@@ -120,11 +121,12 @@ class InterpretadorPitugues extends interpretador_1.Interpretador {
120
121
  emLacoRepeticao: false,
121
122
  };
122
123
  this.pilhaEscoposExecucao.empilhar(escopoFuncao);
123
- const retorno = await this.executarUltimoEscopo();
124
- if (retorno instanceof excecoes_1.ErroEmTempoDeExecucao) {
125
- return Promise.reject(retorno);
126
- }
127
- return retorno;
124
+ return (0, encadear_1.encadear)(this.executarUltimoEscopo(), (retorno) => {
125
+ if (retorno instanceof excecoes_1.ErroEmTempoDeExecucao) {
126
+ return Promise.reject(retorno);
127
+ }
128
+ return retorno;
129
+ });
128
130
  }
129
131
  return super.executarBloco(declaracoes, ambiente);
130
132
  }
@@ -1 +1 @@
1
- {"version":3,"file":"interpretador-pitugues.js","sourceRoot":"","sources":["../../../../fontes/interpretador/dialetos/pitugues/interpretador-pitugues.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interpretador-pitugues.js","sourceRoot":"","sources":["../../../../fontes/interpretador/dialetos/pitugues/interpretador-pitugues.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { Binario, Unario } from '../../../construtos';
7
7
  */
8
8
  export declare class InterpretadorPrisma extends Interpretador implements InterpretadorInterface {
9
9
  constructor(diretorioBase: string, performance?: boolean, funcaoDeRetorno?: Function, funcaoDeRetornoMesmaLinha?: Function);
10
- visitarExpressaoUnaria(expressao: Unario): Promise<any>;
11
- visitarExpressaoBinaria(expressao: Binario): Promise<any>;
10
+ visitarExpressaoUnaria(expressao: Unario): any;
11
+ visitarExpressaoBinaria(expressao: Binario): any;
12
12
  }
13
13
  //# sourceMappingURL=interpretador-prisma.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interpretador-prisma.d.ts","sourceRoot":"","sources":["../../../../fontes/interpretador/dialetos/prisma/interpretador-prisma.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,aAAc,YAAW,sBAAsB;gBAEhF,aAAa,EAAE,MAAM,EACrB,WAAW,UAAQ,EACnB,eAAe,GAAE,QAAe,EAChC,yBAAyB,GAAE,QAAe;IAM/B,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAmBvD,uBAAuB,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;CAW3E"}
1
+ {"version":3,"file":"interpretador-prisma.d.ts","sourceRoot":"","sources":["../../../../fontes/interpretador/dialetos/prisma/interpretador-prisma.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGtD;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,aAAc,YAAW,sBAAsB;gBAEhF,aAAa,EAAE,MAAM,EACrB,WAAW,UAAQ,EACnB,eAAe,GAAE,QAAe,EAChC,yBAAyB,GAAE,QAAe;IAMrC,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG;IAqB9C,uBAAuB,CAAC,SAAS,EAAE,OAAO,GAAG,GAAG;CAe5D"}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.InterpretadorPrisma = void 0;
7
7
  const interpretador_1 = require("../../interpretador");
8
8
  const biblioteca_global_1 = __importDefault(require("../../../bibliotecas/dialetos/prisma/biblioteca-global"));
9
+ const encadear_1 = require("../../encadear");
9
10
  /**
10
11
  * Interpretador específico para o dialeto Prisma da linguagem Delégua.
11
12
  * Carrega as funções nativas (embutidos) do Prisma durante a construção.
@@ -15,32 +16,38 @@ class InterpretadorPrisma extends interpretador_1.Interpretador {
15
16
  super(diretorioBase, performance, funcaoDeRetorno, funcaoDeRetornoMesmaLinha);
16
17
  (0, biblioteca_global_1.default)(this, this.pilhaEscoposExecucao);
17
18
  }
18
- async visitarExpressaoUnaria(expressao) {
19
+ visitarExpressaoUnaria(expressao) {
19
20
  if (expressao.operador.tipo === 'NAO') {
20
- const operando = await this.avaliar(expressao.operando);
21
- const valor = this.resolverValor(operando);
22
- return !this.eVerdadeiro(valor);
21
+ return (0, encadear_1.encadear)(this.avaliar(expressao.operando), (operando) => {
22
+ const valor = this.resolverValor(operando);
23
+ return !this.eVerdadeiro(valor);
24
+ });
23
25
  }
24
26
  if (expressao.operador.tipo === 'COMPRIMENTO') {
25
- const operando = await this.avaliar(expressao.operando);
26
- const valor = this.resolverValor(operando);
27
- if (typeof valor === 'string')
28
- return valor.length;
29
- if (Array.isArray(valor))
30
- return valor.length;
31
- if (typeof valor === 'object' && valor !== null)
32
- return Object.keys(valor).length;
33
- return 0;
27
+ return (0, encadear_1.encadear)(this.avaliar(expressao.operando), (operando) => {
28
+ const valor = this.resolverValor(operando);
29
+ if (typeof valor === 'string')
30
+ return valor.length;
31
+ if (Array.isArray(valor))
32
+ return valor.length;
33
+ if (typeof valor === 'object' && valor !== null)
34
+ return Object.keys(valor).length;
35
+ return 0;
36
+ });
34
37
  }
35
38
  return super.visitarExpressaoUnaria(expressao);
36
39
  }
37
- async visitarExpressaoBinaria(expressao) {
40
+ visitarExpressaoBinaria(expressao) {
38
41
  if (expressao.operador.tipo === 'CONCATENACAO') {
39
- const esquerda = this.resolverValor(await this.avaliar(expressao.esquerda));
40
- const direita = this.resolverValor(await this.avaliar(expressao.direita));
41
- const esqStr = esquerda !== null && esquerda !== undefined ? String(esquerda) : '';
42
- const dirStr = direita !== null && direita !== undefined ? String(direita) : '';
43
- return esqStr + dirStr;
42
+ return (0, encadear_1.encadear)(this.avaliar(expressao.esquerda), (esquerdaBruta) => {
43
+ const esquerda = this.resolverValor(esquerdaBruta);
44
+ return (0, encadear_1.encadear)(this.avaliar(expressao.direita), (direitaBruta) => {
45
+ const direita = this.resolverValor(direitaBruta);
46
+ const esqStr = esquerda !== null && esquerda !== undefined ? String(esquerda) : '';
47
+ const dirStr = direita !== null && direita !== undefined ? String(direita) : '';
48
+ return esqStr + dirStr;
49
+ });
50
+ });
44
51
  }
45
52
  return super.visitarExpressaoBinaria(expressao);
46
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"interpretador-prisma.js","sourceRoot":"","sources":["../../../../fontes/interpretador/dialetos/prisma/interpretador-prisma.ts"],"names":[],"mappings":";;;;;;AACA,uDAAoD;AACpD,+GAAoG;AAGpG;;;GAGG;AACH,MAAa,mBAAoB,SAAQ,6BAAa;IAClD,YACI,aAAqB,EACrB,WAAW,GAAG,KAAK,EACnB,kBAA4B,IAAI,EAChC,4BAAsC,IAAI;QAE1C,KAAK,CAAC,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,yBAAyB,CAAC,CAAC;QAC9E,IAAA,2BAA8B,EAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACpE,CAAC;IAEQ,KAAK,CAAC,sBAAsB,CAAC,SAAiB;QACnD,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACxD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACxD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC,MAAM,CAAC;YACnD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC,MAAM,CAAC;YAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;YAClF,OAAO,CAAC,CAAC;QACb,CAAC;QAED,OAAO,KAAK,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAEQ,KAAK,CAAC,uBAAuB,CAAC,SAAkB;QACrD,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1E,MAAM,MAAM,GAAG,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACnF,MAAM,MAAM,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAChF,OAAO,MAAM,GAAG,MAAM,CAAC;QAC3B,CAAC;QAED,OAAO,KAAK,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACJ;AAzCD,kDAyCC"}
1
+ {"version":3,"file":"interpretador-prisma.js","sourceRoot":"","sources":["../../../../fontes/interpretador/dialetos/prisma/interpretador-prisma.ts"],"names":[],"mappings":";;;;;;AACA,uDAAoD;AACpD,+GAAoG;AAEpG,6CAA0C;AAE1C;;;GAGG;AACH,MAAa,mBAAoB,SAAQ,6BAAa;IAClD,YACI,aAAqB,EACrB,WAAW,GAAG,KAAK,EACnB,kBAA4B,IAAI,EAChC,4BAAsC,IAAI;QAE1C,KAAK,CAAC,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,yBAAyB,CAAC,CAAC;QAC9E,IAAA,2BAA8B,EAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACpE,CAAC;IAEQ,sBAAsB,CAAC,SAAiB;QAC7C,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACpC,OAAO,IAAA,mBAAQ,EAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE;gBAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC3C,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;QACP,CAAC;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAC5C,OAAO,IAAA,mBAAQ,EAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE;gBAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ;oBAAE,OAAO,KAAK,CAAC,MAAM,CAAC;gBACnD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;oBAAE,OAAO,KAAK,CAAC,MAAM,CAAC;gBAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;oBAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;gBAClF,OAAO,CAAC,CAAC;YACb,CAAC,CAAC,CAAC;QACP,CAAC;QAED,OAAO,KAAK,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAEQ,uBAAuB,CAAC,SAAkB;QAC/C,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAC7C,OAAO,IAAA,mBAAQ,EAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE;gBAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;gBACnD,OAAO,IAAA,mBAAQ,EAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE;oBAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;oBACjD,MAAM,MAAM,GAAG,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnF,MAAM,MAAM,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChF,OAAO,MAAM,GAAG,MAAM,CAAC;gBAC3B,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;QAED,OAAO,KAAK,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACJ;AA/CD,kDA+CC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Encadeia a continuação de uma avaliação que pode ter resultado num valor direto ou numa
3
+ * `Promise` — sem nunca forçar `await` quando não é necessário.
4
+ *
5
+ * A maior parte do interpretador é `async`/`await` mesmo para nós puramente computacionais
6
+ * (aritmética, leitura de variável, literais) que nunca tocam I/O. Isso tem custo real: `await`
7
+ * agenda ao menos uma microtarefa mesmo quando o valor `await`ado já não é uma `Promise` — uma
8
+ * árvore de expressão com profundidade N paga N idas ao laço de microtarefas do V8, não 1.
9
+ *
10
+ * `encadear` permite escrever avaliadores que retornam ou o valor calculado diretamente
11
+ * (síncrono, custo zero de microtarefa) ou uma `Promise` (quando alguma subexpressão realmente
12
+ * precisou de operação assíncrona real — `leia()`, FFI, biblioteca que faz I/O) — nos dois casos
13
+ * de forma transparente para quem consome o resultado com `await` (que sempre funciona, em
14
+ * ambos os casos, só não é gratuito).
15
+ *
16
+ * @example
17
+ * // Em vez de:
18
+ * async function visitarExpressaoBinaria(expressao) {
19
+ * const esquerda = await avaliar(expressao.esquerda);
20
+ * const direita = await avaliar(expressao.direita);
21
+ * return esquerda + direita;
22
+ * }
23
+ * // Escreve-se:
24
+ * function visitarExpressaoBinaria(expressao) {
25
+ * return encadear(avaliar(expressao.esquerda), (esquerda) =>
26
+ * encadear(avaliar(expressao.direita), (direita) => esquerda + direita)
27
+ * );
28
+ * }
29
+ * // Quando `esquerda`/`direita` resolvem de forma síncrona (o caso comum), a cadeia inteira
30
+ * // roda sem nenhuma Promise alocada e sem nenhuma microtarefa agendada.
31
+ *
32
+ * @param valorOuPromise O resultado de uma avaliação anterior — um valor já resolvido, ou uma `Promise`.
33
+ * @param continuacao Recebe o valor já resolvido e produz o próximo passo (valor ou nova `Promise`).
34
+ */
35
+ export declare function encadear<T>(valorOuPromise: any, continuacao: (valor: any) => T): T;
36
+ //# sourceMappingURL=encadear.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encadear.d.ts","sourceRoot":"","sources":["../../fontes/interpretador/encadear.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,cAAc,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAIlF"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.encadear = encadear;
4
+ /**
5
+ * Encadeia a continuação de uma avaliação que pode ter resultado num valor direto ou numa
6
+ * `Promise` — sem nunca forçar `await` quando não é necessário.
7
+ *
8
+ * A maior parte do interpretador é `async`/`await` mesmo para nós puramente computacionais
9
+ * (aritmética, leitura de variável, literais) que nunca tocam I/O. Isso tem custo real: `await`
10
+ * agenda ao menos uma microtarefa mesmo quando o valor `await`ado já não é uma `Promise` — uma
11
+ * árvore de expressão com profundidade N paga N idas ao laço de microtarefas do V8, não 1.
12
+ *
13
+ * `encadear` permite escrever avaliadores que retornam ou o valor calculado diretamente
14
+ * (síncrono, custo zero de microtarefa) ou uma `Promise` (quando alguma subexpressão realmente
15
+ * precisou de operação assíncrona real — `leia()`, FFI, biblioteca que faz I/O) — nos dois casos
16
+ * de forma transparente para quem consome o resultado com `await` (que sempre funciona, em
17
+ * ambos os casos, só não é gratuito).
18
+ *
19
+ * @example
20
+ * // Em vez de:
21
+ * async function visitarExpressaoBinaria(expressao) {
22
+ * const esquerda = await avaliar(expressao.esquerda);
23
+ * const direita = await avaliar(expressao.direita);
24
+ * return esquerda + direita;
25
+ * }
26
+ * // Escreve-se:
27
+ * function visitarExpressaoBinaria(expressao) {
28
+ * return encadear(avaliar(expressao.esquerda), (esquerda) =>
29
+ * encadear(avaliar(expressao.direita), (direita) => esquerda + direita)
30
+ * );
31
+ * }
32
+ * // Quando `esquerda`/`direita` resolvem de forma síncrona (o caso comum), a cadeia inteira
33
+ * // roda sem nenhuma Promise alocada e sem nenhuma microtarefa agendada.
34
+ *
35
+ * @param valorOuPromise O resultado de uma avaliação anterior — um valor já resolvido, ou uma `Promise`.
36
+ * @param continuacao Recebe o valor já resolvido e produz o próximo passo (valor ou nova `Promise`).
37
+ */
38
+ function encadear(valorOuPromise, continuacao) {
39
+ return valorOuPromise instanceof Promise
40
+ ? valorOuPromise.then(continuacao)
41
+ : continuacao(valorOuPromise);
42
+ }
43
+ //# sourceMappingURL=encadear.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encadear.js","sourceRoot":"","sources":["../../fontes/interpretador/encadear.ts"],"names":[],"mappings":";;AAkCA,4BAIC;AAtCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,SAAgB,QAAQ,CAAI,cAAmB,EAAE,WAA8B;IAC3E,OAAO,cAAc,YAAY,OAAO;QACpC,CAAC,CAAE,cAAc,CAAC,IAAI,CAAC,WAAW,CAAS;QAC3C,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;AACtC,CAAC"}
@@ -5,6 +5,8 @@ import { InterpretadorInterface } from '../../interfaces';
5
5
  import { ObjetoDeleguaClasse } from './objeto-delegua-classe';
6
6
  import { ComentarioComoConstruto, FuncaoConstruto } from '../../construtos';
7
7
  import { ArgumentoInterface } from '../argumento-interface';
8
+ import { PilhaEscoposExecucaoInterface } from '../../interfaces/pilha-escopos-execucao-interface';
9
+ import { EscopoExecucaoInterface } from '../../interfaces/escopo-execucao';
8
10
  /**
9
11
  * Qualquer função declarada em código é uma DeleguaFuncao.
10
12
  */
@@ -16,7 +18,30 @@ export declare class DeleguaFuncao extends Chamavel {
16
18
  documentacao?: ComentarioComoConstruto;
17
19
  /** Classe que declarou este método; usado para calcular a posição no OReM em chamadas a `super()`. */
18
20
  classeDefinidora: DescritorTipoClasse | null;
21
+ /**
22
+ * Retrato (cópia rasa) da pilha de escopos de execução no momento em que esta função
23
+ * foi definida (expressão de função avaliada, ou declaração de função/método processada).
24
+ * É isto que permite fecho léxico (_closures_): quando a função for chamada, ainda que
25
+ * muito depois de o escopo onde foi definida já ter sido desempilhado, `chamar` restaura
26
+ * temporariamente este retrato para que variáveis de fora, capturadas em sua definição,
27
+ * continuem visíveis e compartilhadas entre todas as chamadas.
28
+ * `undefined` quando a função ainda não teve seu escopo de definição capturado (ex.:
29
+ * construída fora de uma execução, como em testes) — nesse caso `chamar` mantém o
30
+ * comportamento anterior de executar sobre a pilha corrente.
31
+ * @see capturarEscopo
32
+ * @see chamar
33
+ */
34
+ escoposCapturados?: EscopoExecucaoInterface[];
19
35
  constructor(nome: string | null, declaracao: FuncaoConstruto, instancia?: any, eInicializador?: boolean);
36
+ /**
37
+ * Fotografa a pilha de escopos de execução corrente como o ambiente léxico desta função.
38
+ * Deve ser chamado uma única vez, no ponto em que a função é definida (expressão de função
39
+ * avaliada, declaração de função ou método processada) — nunca em `funcaoPorMetodoDeClasse`
40
+ * ou `funcaoPorExtensao`, que apenas revinculam `isto` e devem preservar o ambiente original.
41
+ * @param pilhaEscoposExecucao A pilha de escopos no momento da definição.
42
+ * @returns A própria instância, para uso encadeado: `new DeleguaFuncao(...).capturarEscopo(...)`.
43
+ */
44
+ capturarEscopo(pilhaEscoposExecucao: PilhaEscoposExecucaoInterface): this;
20
45
  aridade(): number;
21
46
  /**
22
47
  * Método utilizado por Delégua para representar esta função quando impressa.
@@ -1 +1 @@
1
- {"version":3,"file":"delegua-funcao.d.ts","sourceRoot":"","sources":["../../../fontes/interpretador/estruturas/delegua-funcao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,sBAAsB,EAAsB,MAAM,kBAAkB,CAAC;AAE9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAI5D;;GAEG;AACH,qBAAa,aAAc,SAAQ,QAAQ;IACvC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,eAAe,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,GAAG,CAAC;IACf,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACvC,sGAAsG;IACtG,gBAAgB,EAAE,mBAAmB,GAAG,IAAI,CAAQ;gBAGhD,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,UAAU,EAAE,eAAe,EAC3B,SAAS,GAAE,GAAe,EAC1B,cAAc,UAAQ;IAS1B,OAAO,IAAI,MAAM;IAIjB;;;OAGG;IACH,SAAS,IAAI,MAAM;IAgCnB;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB,OAAO,CAAC,4BAA4B;cAiBpB,gBAAgB,CAC5B,SAAS,EAAE,sBAAsB,EACjC,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,GACtC,OAAO,CAAC,aAAa,CAAC;IAyDnB,MAAM,CACR,SAAS,EAAE,sBAAsB,EACjC,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,GACtC,OAAO,CAAC,GAAG,CAAC;IAqEf,uBAAuB,CAAC,SAAS,EAAE,mBAAmB,GAAG,aAAa;IAYtE,iBAAiB,CAAC,KAAK,EAAE,GAAG,GAAG,aAAa;CAK/C"}
1
+ {"version":3,"file":"delegua-funcao.d.ts","sourceRoot":"","sources":["../../../fontes/interpretador/estruturas/delegua-funcao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,sBAAsB,EAAsB,MAAM,kBAAkB,CAAC;AAE9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAC;AAClG,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAuB3E;;GAEG;AACH,qBAAa,aAAc,SAAQ,QAAQ;IACvC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,eAAe,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,GAAG,CAAC;IACf,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACvC,sGAAsG;IACtG,gBAAgB,EAAE,mBAAmB,GAAG,IAAI,CAAQ;IAEpD;;;;;;;;;;;;OAYG;IACH,iBAAiB,CAAC,EAAE,uBAAuB,EAAE,CAAC;gBAG1C,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,UAAU,EAAE,eAAe,EAC3B,SAAS,GAAE,GAAe,EAC1B,cAAc,UAAQ;IAS1B;;;;;;;OAOG;IACH,cAAc,CAAC,oBAAoB,EAAE,6BAA6B,GAAG,IAAI;IAKzE,OAAO,IAAI,MAAM;IAIjB;;;OAGG;IACH,SAAS,IAAI,MAAM;IAgCnB;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB,OAAO,CAAC,4BAA4B;cAiBpB,gBAAgB,CAC5B,SAAS,EAAE,sBAAsB,EACjC,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,GACtC,OAAO,CAAC,aAAa,CAAC;IAmFnB,MAAM,CACR,SAAS,EAAE,sBAAsB,EACjC,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,GACtC,OAAO,CAAC,GAAG,CAAC;IAmGf,uBAAuB,CAAC,SAAS,EAAE,mBAAmB,GAAG,aAAa;IAetE,iBAAiB,CAAC,KAAK,EAAE,GAAG,GAAG,aAAa;CAM/C"}
@@ -6,6 +6,26 @@ const espaco_memoria_1 = require("../espaco-memoria");
6
6
  const quebras_1 = require("../../quebras");
7
7
  const objeto_delegua_classe_1 = require("./objeto-delegua-classe");
8
8
  const declaracoes_1 = require("../../declaracoes");
9
+ const inferenciador_1 = require("../../inferenciador");
10
+ const referencia_montao_1 = require("./referencia-montao");
11
+ /**
12
+ * Converte um valor para `BigInt`, seguindo a mesma lógica usada por `longo()`
13
+ * e pela conversão de variáveis com tipo explícito `longo` (ver `converterValor`
14
+ * em `PilhaEscoposExecucao`). Não lança `ErroEmTempoDeExecucao` em caso de
15
+ * texto inválido, apenas deixa `BigInt` lançar seu próprio erro nativo.
16
+ * @param {any} valor O valor a ser convertido.
17
+ * @returns {bigint} O valor convertido para `BigInt`.
18
+ */
19
+ function converterParaLongo(valor) {
20
+ if (typeof valor === 'bigint')
21
+ return valor;
22
+ if (typeof valor === 'number')
23
+ return globalThis.BigInt(Math.floor(valor));
24
+ const strValue = String(valor).trim();
25
+ if (!strValue)
26
+ return globalThis.BigInt(0);
27
+ return globalThis.BigInt(strValue.split('.')[0]);
28
+ }
9
29
  /**
10
30
  * Qualquer função declarada em código é uma DeleguaFuncao.
11
31
  */
@@ -19,6 +39,18 @@ class DeleguaFuncao extends chamavel_1.Chamavel {
19
39
  this.instancia = instancia;
20
40
  this.eInicializador = eInicializador;
21
41
  }
42
+ /**
43
+ * Fotografa a pilha de escopos de execução corrente como o ambiente léxico desta função.
44
+ * Deve ser chamado uma única vez, no ponto em que a função é definida (expressão de função
45
+ * avaliada, declaração de função ou método processada) — nunca em `funcaoPorMetodoDeClasse`
46
+ * ou `funcaoPorExtensao`, que apenas revinculam `isto` e devem preservar o ambiente original.
47
+ * @param pilhaEscoposExecucao A pilha de escopos no momento da definição.
48
+ * @returns A própria instância, para uso encadeado: `new DeleguaFuncao(...).capturarEscopo(...)`.
49
+ */
50
+ capturarEscopo(pilhaEscoposExecucao) {
51
+ this.escoposCapturados = [...pilhaEscoposExecucao.pilha];
52
+ return this;
53
+ }
22
54
  aridade() {
23
55
  return this.declaracao?.parametros?.filter((p) => p.abrangencia !== 'multiplo').length || 0;
24
56
  }
@@ -101,7 +133,33 @@ class DeleguaFuncao extends chamavel_1.Chamavel {
101
133
  else {
102
134
  valorFinal = null;
103
135
  }
104
- ambiente.valores[nome] = valorFinal;
136
+ // Parâmetro anotado como `longo` deve receber o argumento como
137
+ // `BigInt`, senão a anotação de tipo é apenas decorativa e a
138
+ // aritmética dentro da função perde precisão (issue #1429).
139
+ if (parametro.tipoDado === 'longo' && valorFinal !== null) {
140
+ valorFinal = converterParaLongo(valorFinal);
141
+ }
142
+ if (parametro.fixo) {
143
+ // Vetores e dicionários vivem no montão; `valorFinal` é apenas
144
+ // o ponteiro (`ReferenciaMontao`). É preciso congelar o valor
145
+ // real armazenado no montão, não o ponteiro em si.
146
+ if (valorFinal instanceof referencia_montao_1.ReferenciaMontao) {
147
+ congelarProfundamente(visitante.resolverValor(valorFinal));
148
+ }
149
+ else {
150
+ valorFinal = congelarProfundamente(valorFinal);
151
+ }
152
+ }
153
+ if (parametro.imutavel || parametro.fixo) {
154
+ ambiente.valores[nome] = {
155
+ valor: valorFinal,
156
+ tipo: (0, inferenciador_1.inferirTipoVariavel)(valorFinal),
157
+ imutavel: true,
158
+ };
159
+ }
160
+ else {
161
+ ambiente.valores[nome] = valorFinal;
162
+ }
105
163
  // Se o argumento é `DeleguaFuncao`, para habilitar o recurso de _currying_,
106
164
  // copiamos seu valor para o escopo atual. Nem sempre podemos contar com a tipagem explícita aqui.
107
165
  if (valorFinal &&
@@ -114,36 +172,58 @@ class DeleguaFuncao extends chamavel_1.Chamavel {
114
172
  return ambiente;
115
173
  }
116
174
  async chamar(visitante, argumentos) {
117
- const ambiente = await this.resolverAmbiente(visitante, argumentos);
118
- if (this.instancia !== undefined) {
119
- ambiente.valores['isto'] = {
120
- valor: this.instancia,
121
- tipo: this.instancia instanceof objeto_delegua_classe_1.ObjetoDeleguaClasse
122
- ? 'objeto'
123
- : tipoDeDados(this.instancia),
124
- imutavel: false,
125
- };
126
- if (this.classeDefinidora) {
127
- ambiente.valores['classeExecutora'] = {
128
- valor: this.classeDefinidora,
129
- tipo: 'classe',
130
- imutavel: true,
131
- };
132
- }
133
- }
134
175
  const interpretador = visitante;
135
- interpretador.proximoEscopo = 'funcao';
136
- // Rastrear a classe atual em execução para verificação de acesso.
137
- const classeAnteriorEmExecucao = interpretador.classeAtualEmExecucao;
138
- if (this.instancia instanceof objeto_delegua_classe_1.ObjetoDeleguaClasse) {
139
- interpretador.classeAtualEmExecucao = this.instancia.classe;
140
- }
176
+ const pilhaEscoposExecucao = interpretador.pilhaEscoposExecucao;
177
+ const pilhaDeQuemChamou = pilhaEscoposExecucao.pilha;
178
+ let ambiente;
141
179
  let retornoBloco;
180
+ const classeAnteriorEmExecucao = interpretador.classeAtualEmExecucao;
142
181
  try {
182
+ // Fecho léxico (_closure_): enquanto os parâmetros são resolvidos (valores padrão
183
+ // podem referenciar variáveis do ambiente de definição) e o corpo é executado, a
184
+ // função enxerga a pilha de escopos tal como estava no momento em que foi DEFINIDA,
185
+ // não a pilha dinâmica de quem a está chamando agora. Sem isto, uma função devolvida
186
+ // por outra (ex.: fábrica de contador) perde acesso a tudo que capturou assim que a
187
+ // chamada que a criou retorna e desempilha seu escopo.
188
+ // `escoposCapturados` fica `undefined` para funções construídas fora de uma execução
189
+ // (ex.: alguns testes); nesse caso mantemos o comportamento anterior de executar
190
+ // sobre a pilha corrente.
191
+ // Em modo de depuração, este mecanismo é desligado: o depurador indexa a pilha por
192
+ // posição absoluta e por comprimento (passo a passo, pontos de parada) e depende
193
+ // dela ser um único histórico monotônico da execução real (ver `emModoDepuracao`).
194
+ if (this.escoposCapturados && !interpretador.emModoDepuracao) {
195
+ pilhaEscoposExecucao.pilha = [...this.escoposCapturados];
196
+ }
197
+ ambiente = await this.resolverAmbiente(visitante, argumentos);
198
+ if (this.instancia !== undefined) {
199
+ ambiente.valores['isto'] = {
200
+ valor: this.instancia,
201
+ tipo: this.instancia instanceof objeto_delegua_classe_1.ObjetoDeleguaClasse
202
+ ? 'objeto'
203
+ : tipoDeDados(this.instancia),
204
+ imutavel: false,
205
+ };
206
+ if (this.classeDefinidora) {
207
+ ambiente.valores['classeExecutora'] = {
208
+ valor: this.classeDefinidora,
209
+ tipo: 'classe',
210
+ imutavel: true,
211
+ };
212
+ }
213
+ }
214
+ interpretador.proximoEscopo = 'funcao';
215
+ // Rastrear a classe atual em execução para verificação de acesso.
216
+ if (this.instancia instanceof objeto_delegua_classe_1.ObjetoDeleguaClasse) {
217
+ interpretador.classeAtualEmExecucao = this.instancia.classe;
218
+ }
143
219
  retornoBloco = await interpretador.executarBloco(this.declaracao.corpo, ambiente);
144
220
  }
145
221
  finally {
146
222
  interpretador.classeAtualEmExecucao = classeAnteriorEmExecucao;
223
+ // Restaura a pilha de quem chamou ANTES de qualquer lógica abaixo (propagação de
224
+ // parâmetros de referência, valor de retorno): essas etapas devem enxergar o
225
+ // ambiente dinâmico de quem chamou, não o léxico capturado da função chamada.
226
+ pilhaEscoposExecucao.pilha = pilhaDeQuemChamou;
147
227
  }
148
228
  const referencias = this.declaracao.parametros
149
229
  .map((p, indice) => {
@@ -161,6 +241,11 @@ class DeleguaFuncao extends chamavel_1.Chamavel {
161
241
  pilha.definirVariavel(referencia.parametro.nome.lexema, argumentoReferencia.valor);
162
242
  }
163
243
  if (retornoBloco instanceof quebras_1.RetornoQuebra) {
244
+ // Tipo de retorno `longo` também deve coagir o valor devolvido,
245
+ // pelo mesmo motivo do parâmetro (issue #1429).
246
+ if (this.declaracao.tipo === 'longo' && retornoBloco.valor !== null) {
247
+ return converterParaLongo(retornoBloco.valor);
248
+ }
164
249
  return retornoBloco.valor;
165
250
  }
166
251
  if (this.eInicializador) {
@@ -172,15 +257,43 @@ class DeleguaFuncao extends chamavel_1.Chamavel {
172
257
  const funcao = new DeleguaFuncao(this.nome, this.declaracao, instancia, this.eInicializador);
173
258
  funcao.documentacao = this.documentacao;
174
259
  funcao.classeDefinidora = this.classeDefinidora;
260
+ // Revincula `isto`, mas a posição léxica da função continua sendo onde o método
261
+ // foi originalmente declarado — preserva o ambiente capturado, não recaptura.
262
+ funcao.escoposCapturados = this.escoposCapturados;
175
263
  return funcao;
176
264
  }
177
265
  funcaoPorExtensao(valor) {
178
266
  const funcao = new DeleguaFuncao(this.nome, this.declaracao, valor, false);
179
267
  funcao.documentacao = this.documentacao;
268
+ funcao.escoposCapturados = this.escoposCapturados;
180
269
  return funcao;
181
270
  }
182
271
  }
183
272
  exports.DeleguaFuncao = DeleguaFuncao;
273
+ /**
274
+ * Congela recursivamente vetores e objetos (dicionários), usados para
275
+ * implementar parâmetros `fixo`: qualquer tentativa de mutação do valor,
276
+ * mesmo através de um alias, deve resultar em erro em tempo de execução.
277
+ * Não congela instâncias de classe, funções ou outras estruturas de Delégua,
278
+ * pois isso quebraria comportamento esperado (ex.: métodos, `isto`).
279
+ */
280
+ function congelarProfundamente(valor) {
281
+ if (valor === null || typeof valor !== 'object') {
282
+ return valor;
283
+ }
284
+ if (!Array.isArray(valor) && valor.constructor !== Object) {
285
+ return valor;
286
+ }
287
+ if (Object.isFrozen(valor)) {
288
+ return valor;
289
+ }
290
+ Object.freeze(valor);
291
+ const valores = Array.isArray(valor) ? valor : Object.values(valor);
292
+ for (const item of valores) {
293
+ congelarProfundamente(item);
294
+ }
295
+ return valor;
296
+ }
184
297
  /**
185
298
  * Mapeia o tipo JS de um valor primitivo para o nome de tipo de Delégua.
186
299
  */
@@ -1 +1 @@
1
- {"version":3,"file":"delegua-funcao.js","sourceRoot":"","sources":["../../../fontes/interpretador/estruturas/delegua-funcao.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delegua-funcao.js","sourceRoot":"","sources":["../../../fontes/interpretador/estruturas/delegua-funcao.ts"],"names":[],"mappings":"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"}