@designliquido/delegua 0.46.2 → 0.48.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 (140) hide show
  1. package/analisador-semantico/analisador-semantico.d.ts.map +1 -1
  2. package/analisador-semantico/analisador-semantico.js +2 -1
  3. package/analisador-semantico/analisador-semantico.js.map +1 -1
  4. package/avaliador-sintatico/avaliador-sintatico-base.js +1 -1
  5. package/avaliador-sintatico/avaliador-sintatico.d.ts +2 -0
  6. package/avaliador-sintatico/avaliador-sintatico.d.ts.map +1 -1
  7. package/avaliador-sintatico/avaliador-sintatico.js +49 -12
  8. package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  9. package/avaliador-sintatico/comum.d.ts +2 -2
  10. package/avaliador-sintatico/comum.d.ts.map +1 -1
  11. package/avaliador-sintatico/comum.js.map +1 -1
  12. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts.map +1 -1
  13. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js +1 -1
  14. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js.map +1 -1
  15. package/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.d.ts.map +1 -1
  16. package/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.js.map +1 -1
  17. package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.d.ts.map +1 -1
  18. package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.js +28 -20
  19. package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.js.map +1 -1
  20. package/bibliotecas/biblioteca-global.d.ts.map +1 -1
  21. package/bibliotecas/biblioteca-global.js.map +1 -1
  22. package/bibliotecas/primitivas-dicionario.d.ts.map +1 -1
  23. package/bibliotecas/primitivas-dicionario.js +33 -18
  24. package/bibliotecas/primitivas-dicionario.js.map +1 -1
  25. package/bibliotecas/primitivas-numero.d.ts.map +1 -1
  26. package/bibliotecas/primitivas-numero.js +27 -0
  27. package/bibliotecas/primitivas-numero.js.map +1 -1
  28. package/bibliotecas/primitivas-texto.d.ts.map +1 -1
  29. package/bibliotecas/primitivas-texto.js +125 -11
  30. package/bibliotecas/primitivas-texto.js.map +1 -1
  31. package/bibliotecas/primitivas-vetor.d.ts.map +1 -1
  32. package/bibliotecas/primitivas-vetor.js +173 -12
  33. package/bibliotecas/primitivas-vetor.js.map +1 -1
  34. package/bin/package.json +1 -1
  35. package/construtos/referencia-biblioteca-global.d.ts.map +1 -1
  36. package/construtos/referencia-biblioteca-global.js.map +1 -1
  37. package/declaracoes/para-cada.d.ts +3 -3
  38. package/declaracoes/para-cada.d.ts.map +1 -1
  39. package/declaracoes/para-cada.js +2 -2
  40. package/declaracoes/para-cada.js.map +1 -1
  41. package/formatadores/formatador-delegua.js +1 -1
  42. package/formatadores/formatador-delegua.js.map +1 -1
  43. package/informacao-variavel-ou-constante.d.ts +2 -2
  44. package/informacao-variavel-ou-constante.d.ts.map +1 -1
  45. package/informacao-variavel-ou-constante.js +2 -1
  46. package/informacao-variavel-ou-constante.js.map +1 -1
  47. package/interfaces/escopo-execucao.d.ts +2 -2
  48. package/interfaces/escopo-execucao.d.ts.map +1 -1
  49. package/interfaces/interpretador-interface.d.ts +2 -2
  50. package/interfaces/interpretador-interface.d.ts.map +1 -1
  51. package/interfaces/pilha-escopos-execucao-interface.d.ts +2 -0
  52. package/interfaces/pilha-escopos-execucao-interface.d.ts.map +1 -1
  53. package/interpretador/depuracao/comum.d.ts +13 -13
  54. package/interpretador/depuracao/comum.d.ts.map +1 -1
  55. package/interpretador/depuracao/comum.js +24 -24
  56. package/interpretador/depuracao/comum.js.map +1 -1
  57. package/interpretador/depuracao/interpretador-base-com-depuracao.d.ts +9 -9
  58. package/interpretador/depuracao/interpretador-base-com-depuracao.d.ts.map +1 -1
  59. package/interpretador/depuracao/interpretador-base-com-depuracao.js.map +1 -1
  60. package/interpretador/depuracao/interpretador-com-depuracao.d.ts +3 -3
  61. package/interpretador/depuracao/interpretador-com-depuracao.d.ts.map +1 -1
  62. package/interpretador/depuracao/interpretador-com-depuracao.js +3 -3
  63. package/interpretador/depuracao/interpretador-com-depuracao.js.map +1 -1
  64. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts +3 -2
  65. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts.map +1 -1
  66. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js +24 -70
  67. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js.map +1 -1
  68. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.d.ts +2 -2
  69. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.d.ts.map +1 -1
  70. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js.map +1 -1
  71. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.d.ts +3 -2
  72. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.d.ts.map +1 -1
  73. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js +18 -15
  74. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js.map +1 -1
  75. package/{espaco-variaveis.d.ts → interpretador/espaco-memoria.d.ts} +10 -7
  76. package/interpretador/espaco-memoria.d.ts.map +1 -0
  77. package/{espaco-variaveis.js → interpretador/espaco-memoria.js} +10 -7
  78. package/interpretador/espaco-memoria.js.map +1 -0
  79. package/interpretador/estruturas/delegua-funcao.d.ts +2 -2
  80. package/interpretador/estruturas/delegua-funcao.d.ts.map +1 -1
  81. package/interpretador/estruturas/delegua-funcao.js +2 -2
  82. package/interpretador/estruturas/delegua-funcao.js.map +1 -1
  83. package/interpretador/estruturas/descritor-tipo-classe.d.ts +1 -1
  84. package/interpretador/estruturas/descritor-tipo-classe.d.ts.map +1 -1
  85. package/interpretador/estruturas/index.d.ts +1 -0
  86. package/interpretador/estruturas/index.d.ts.map +1 -1
  87. package/interpretador/estruturas/index.js +1 -0
  88. package/interpretador/estruturas/index.js.map +1 -1
  89. package/interpretador/estruturas/referencia-montao.d.ts +15 -0
  90. package/interpretador/estruturas/referencia-montao.d.ts.map +1 -0
  91. package/interpretador/estruturas/referencia-montao.js +24 -0
  92. package/interpretador/estruturas/referencia-montao.js.map +1 -0
  93. package/interpretador/interpretador-base.d.ts +7 -4
  94. package/interpretador/interpretador-base.d.ts.map +1 -1
  95. package/interpretador/interpretador-base.js +68 -59
  96. package/interpretador/interpretador-base.js.map +1 -1
  97. package/interpretador/interpretador-com-depuracao.d.ts +191 -0
  98. package/interpretador/interpretador-com-depuracao.d.ts.map +1 -0
  99. package/interpretador/interpretador-com-depuracao.js +585 -0
  100. package/interpretador/interpretador-com-depuracao.js.map +1 -0
  101. package/interpretador/interpretador.d.ts +45 -2
  102. package/interpretador/interpretador.d.ts.map +1 -1
  103. package/interpretador/interpretador.js +365 -13
  104. package/interpretador/interpretador.js.map +1 -1
  105. package/interpretador/montao.d.ts +38 -0
  106. package/interpretador/montao.d.ts.map +1 -0
  107. package/interpretador/montao.js +56 -0
  108. package/interpretador/montao.js.map +1 -0
  109. package/interpretador/pilha-escopos-execucao.d.ts +2 -0
  110. package/interpretador/pilha-escopos-execucao.d.ts.map +1 -1
  111. package/interpretador/pilha-escopos-execucao.js +45 -26
  112. package/interpretador/pilha-escopos-execucao.js.map +1 -1
  113. package/lexador/dialetos/lexador-tenda.d.ts.map +1 -1
  114. package/lexador/dialetos/lexador-tenda.js +4 -2
  115. package/lexador/dialetos/lexador-tenda.js.map +1 -1
  116. package/lexador/dialetos/palavras-reservadas/tenda.js +1 -1
  117. package/package.json +1 -1
  118. package/tipos-de-simbolos/tenda.d.ts.map +1 -1
  119. package/tipos-de-simbolos/tenda.js.map +1 -1
  120. package/tradutores/tradutor-assemblyscript.js +1 -1
  121. package/tradutores/tradutor-assemblyscript.js.map +1 -1
  122. package/tradutores/tradutor-javascript.d.ts.map +1 -1
  123. package/tradutores/tradutor-javascript.js +2 -1
  124. package/tradutores/tradutor-javascript.js.map +1 -1
  125. package/tradutores/tradutor-mermaidjs.d.ts.map +1 -1
  126. package/tradutores/tradutor-mermaidjs.js +2 -1
  127. package/tradutores/tradutor-mermaidjs.js.map +1 -1
  128. package/tradutores/tradutor-portugol-ipt.d.ts +1 -1
  129. package/tradutores/tradutor-portugol-ipt.d.ts.map +1 -1
  130. package/tradutores/tradutor-portugol-ipt.js +5 -5
  131. package/tradutores/tradutor-portugol-ipt.js.map +1 -1
  132. package/tradutores/tradutor-python.d.ts.map +1 -1
  133. package/tradutores/tradutor-python.js +2 -1
  134. package/tradutores/tradutor-python.js.map +1 -1
  135. package/tradutores/tradutor-reverso-tenda.d.ts.map +1 -1
  136. package/tradutores/tradutor-reverso-tenda.js +17 -8
  137. package/tradutores/tradutor-reverso-tenda.js.map +1 -1
  138. package/umd/delegua.js +1376 -533
  139. package/espaco-variaveis.d.ts.map +0 -1
  140. package/espaco-variaveis.js.map +0 -1
@@ -1,12 +1,23 @@
1
- import { AcessoMetodo, AcessoMetodoOuPropriedade, AcessoPropriedade, ArgumentoReferenciaFuncao, ReferenciaFuncao, TipoDe } from '../construtos';
1
+ import { AcessoIndiceVariavel, AcessoMetodo, AcessoMetodoOuPropriedade, AcessoPropriedade, ArgumentoReferenciaFuncao, AtribuicaoPorIndice, Atribuir, Construto, DefinirValor, Dicionario, ReferenciaFuncao, TipoDe } from '../construtos';
2
+ import { ReferenciaMontao } from './estruturas';
3
+ import { RetornoInterpretador } from '../interfaces';
2
4
  import { InterpretadorBase } from './interpretador-base';
3
- import { FuncaoDeclaracao, Retorna } from '../declaracoes';
5
+ import { Const, ConstMultiplo, Declaracao, FuncaoDeclaracao, Retorna, Var, VarMultiplo } from '../declaracoes';
4
6
  import { RetornoQuebra } from '../quebras';
7
+ import { Montao } from './montao';
5
8
  /**
6
9
  * O interpretador de Delégua.
7
10
  */
8
11
  export declare class Interpretador extends InterpretadorBase {
12
+ montao: Montao;
13
+ constructor(diretorioBase: string, performance?: boolean, funcaoDeRetorno?: Function, funcaoDeRetornoMesmaLinha?: Function);
14
+ protected resolverReferenciaMontao(referenciaMontao: ReferenciaMontao): any;
15
+ resolverValor(objeto: any): any;
16
+ paraTexto(objeto: any): string;
17
+ avaliacaoDeclaracaoVarOuConst(declaracao: Const | ConstMultiplo | Var | VarMultiplo): Promise<any>;
18
+ avaliarArgumentosEscreva(argumentos: Construto[]): Promise<string>;
9
19
  visitarDeclaracaoDefinicaoFuncao(declaracao: FuncaoDeclaracao): void;
20
+ visitarExpressaoAcessoIndiceVariavel(expressao: AcessoIndiceVariavel): Promise<any>;
10
21
  visitarExpressaoAcessoMetodo(expressao: AcessoMetodo): Promise<any>;
11
22
  /**
12
23
  * Casos que ocorrem aqui:
@@ -20,8 +31,40 @@ export declare class Interpretador extends InterpretadorBase {
20
31
  visitarExpressaoAcessoMetodoOuPropriedade(expressao: AcessoMetodoOuPropriedade): Promise<any>;
21
32
  visitarExpressaoAcessoPropriedade(expressao: AcessoPropriedade): Promise<any>;
22
33
  visitarExpressaoArgumentoReferenciaFuncao(expressao: ArgumentoReferenciaFuncao): Promise<any>;
34
+ visitarExpressaoAtribuicaoPorIndice(expressao: AtribuicaoPorIndice): Promise<any>;
35
+ /**
36
+ * Execução de uma expressão de atribuição.
37
+ * @param expressao A expressão.
38
+ * @returns O valor atribuído.
39
+ */
40
+ visitarExpressaoDeAtribuicao(expressao: Atribuir): Promise<any>;
41
+ visitarExpressaoDefinirValor(expressao: DefinirValor): Promise<any>;
42
+ /**
43
+ * Dicionários em Delégua são passados por referência, portanto, são
44
+ * armazenados no montão.
45
+ */
46
+ visitarExpressaoDicionario(expressao: Dicionario): Promise<any>;
23
47
  visitarExpressaoReferenciaFuncao(expressao: ReferenciaFuncao): Promise<any>;
24
48
  visitarExpressaoRetornar(declaracao: Retorna): Promise<RetornoQuebra>;
25
49
  visitarExpressaoTipoDe(expressao: TipoDe): Promise<string>;
50
+ /**
51
+ * Executa o último escopo empilhado no topo na pilha de escopos do interpretador.
52
+ * Esse método pega exceções, mas apenas as devolve.
53
+ *
54
+ * O tratamento das exceções é feito de acordo com o bloco chamador.
55
+ * Por exemplo, em `tente ... pegue ... finalmente`, a exceção é capturada e tratada.
56
+ * Em outros blocos, pode ser desejável ter o erro em tela.
57
+ * @param manterAmbiente Se verdadeiro, ambiente do topo da pilha de escopo é copiado para o ambiente imediatamente abaixo.
58
+ * @returns O resultado da execução do escopo, se houver.
59
+ */
60
+ executarUltimoEscopo(manterAmbiente?: boolean): Promise<any>;
61
+ /**
62
+ * Método que efetivamente inicia o processo de interpretação.
63
+ * @param declaracoes Um vetor de declarações gerado pelo Avaliador Sintático.
64
+ * @param manterAmbiente Se ambiente de execução (variáveis, classes, etc.) deve ser mantido. Normalmente usado
65
+ * pelo modo REPL (LAIR).
66
+ * @returns Um objeto com o resultado da interpretação.
67
+ */
68
+ interpretar(declaracoes: Declaracao[], manterAmbiente?: boolean): Promise<RetornoInterpretador>;
26
69
  }
27
70
  //# sourceMappingURL=interpretador.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interpretador.d.ts","sourceRoot":"","sources":["../../fontes/interpretador/interpretador.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,yBAAyB,EACzB,iBAAiB,EACjB,yBAAyB,EAEzB,gBAAgB,EAChB,MAAM,EAET,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAU,gBAAgB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAU3C;;GAEG;AACH,qBAAa,aAAc,SAAQ,iBAAiB;IACvC,gCAAgC,CAAC,UAAU,EAAE,gBAAgB;IAOvD,4BAA4B,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;IAgGlF;;;;;;;;OAQG;IACY,yCAAyC,CACpD,SAAS,EAAE,yBAAyB,GACrC,OAAO,CAAC,GAAG,CAAC;IA4FA,iCAAiC,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC;IAqE7E,yCAAyC,CACpD,SAAS,EAAE,yBAAyB,GACrC,OAAO,CAAC,GAAG,CAAC;IAOA,gCAAgC,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC;IAK3E,wBAAwB,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAqBrE,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAwC5E"}
1
+ {"version":3,"file":"interpretador.d.ts","sourceRoot":"","sources":["../../fontes/interpretador/interpretador.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,oBAAoB,EACpB,YAAY,EACZ,yBAAyB,EACzB,iBAAiB,EACjB,yBAAyB,EACzB,mBAAmB,EACnB,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,UAAU,EAEV,gBAAgB,EAChB,MAAM,EAGT,MAAM,eAAe,CAAC;AACvB,OAAO,EAOH,gBAAgB,EACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAuC,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC/G,OAAO,EAAU,aAAa,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAUlC;;GAEG;AACH,qBAAa,aAAc,SAAQ,iBAAiB;IAChD,MAAM,EAAE,MAAM,CAAC;gBAGX,aAAa,EAAE,MAAM,EACrB,WAAW,UAAQ,EACnB,eAAe,GAAE,QAAe,EAChC,yBAAyB,GAAE,QAAe;IAM9C,SAAS,CAAC,wBAAwB,CAAC,gBAAgB,EAAE,gBAAgB;IAU5D,aAAa,CAAC,MAAM,EAAE,GAAG;IAoBzB,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM;IAgFxB,6BAA6B,CACxC,UAAU,EAAE,KAAK,GAAG,aAAa,GAAG,GAAG,GAAG,WAAW,GACtD,OAAO,CAAC,GAAG,CAAC;IAcA,wBAAwB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAYxE,gCAAgC,CAAC,UAAU,EAAE,gBAAgB;IAOvD,oCAAoC,CAC/C,SAAS,EAAE,oBAAoB,GAChC,OAAO,CAAC,GAAG,CAAC;IAmGA,4BAA4B,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;IAiGlF;;;;;;;;OAQG;IACY,yCAAyC,CACpD,SAAS,EAAE,yBAAyB,GACrC,OAAO,CAAC,GAAG,CAAC;IA6FA,iCAAiC,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC;IAmE7E,yCAAyC,CACpD,SAAS,EAAE,yBAAyB,GACrC,OAAO,CAAC,GAAG,CAAC;IAQA,mCAAmC,CAAC,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC;IAkEhG;;;;OAIG;IACY,4BAA4B,CAAC,SAAS,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IA0DxE,4BAA4B,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;IA0BzE;;;OAGG;IACY,0BAA0B,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAsB/D,gCAAgC,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC;IAK3E,wBAAwB,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAqBrE,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiDzE;;;;;;;;;OASG;IACY,oBAAoB,CAAC,cAAc,UAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IA2CzE;;;;;;OAMG;IACY,WAAW,CACtB,WAAW,EAAE,UAAU,EAAE,EACzB,cAAc,CAAC,EAAE,OAAO,GACzB,OAAO,CAAC,oBAAoB,CAAC;CAInC"}
@@ -4,11 +4,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Interpretador = void 0;
7
+ const construtos_1 = require("../construtos");
7
8
  const estruturas_1 = require("./estruturas");
8
9
  const interpretador_base_1 = require("./interpretador-base");
9
10
  const inferenciador_1 = require("../inferenciador");
10
11
  const excecoes_1 = require("../excecoes");
11
12
  const quebras_1 = require("../quebras");
13
+ const montao_1 = require("./montao");
12
14
  const primitivas_dicionario_1 = __importDefault(require("../bibliotecas/primitivas-dicionario"));
13
15
  const primitivas_numero_1 = __importDefault(require("../bibliotecas/primitivas-numero"));
14
16
  const primitivas_texto_1 = __importDefault(require("../bibliotecas/primitivas-texto"));
@@ -19,12 +21,177 @@ const delegua_1 = __importDefault(require("../tipos-de-dados/delegua"));
19
21
  * O interpretador de Delégua.
20
22
  */
21
23
  class Interpretador extends interpretador_base_1.InterpretadorBase {
24
+ constructor(diretorioBase, performance = false, funcaoDeRetorno = null, funcaoDeRetornoMesmaLinha = null) {
25
+ super(diretorioBase, performance, funcaoDeRetorno, funcaoDeRetornoMesmaLinha);
26
+ this.montao = new montao_1.Montao();
27
+ }
28
+ resolverReferenciaMontao(referenciaMontao) {
29
+ const valorMontao = this.montao.obterReferencia(this.hashArquivoDeclaracaoAtual, this.linhaDeclaracaoAtual, referenciaMontao.endereco);
30
+ return valorMontao;
31
+ }
32
+ resolverValor(objeto) {
33
+ if (objeto === null || objeto === undefined) {
34
+ return objeto;
35
+ }
36
+ if (objeto instanceof estruturas_1.ReferenciaMontao) {
37
+ return this.resolverReferenciaMontao(objeto);
38
+ }
39
+ if (objeto.hasOwnProperty('valor')) {
40
+ if (objeto.valor instanceof estruturas_1.ReferenciaMontao) {
41
+ return this.resolverReferenciaMontao(objeto.valor);
42
+ }
43
+ return objeto.valor;
44
+ }
45
+ return objeto;
46
+ }
47
+ paraTexto(objeto) {
48
+ if (objeto === null || objeto === undefined)
49
+ return delegua_1.default.NULO;
50
+ if (typeof objeto === primitivos_1.default.BOOLEANO) {
51
+ return objeto ? 'verdadeiro' : 'falso';
52
+ }
53
+ if (objeto.valor instanceof estruturas_1.ObjetoPadrao)
54
+ return objeto.valor.paraTexto();
55
+ if (objeto instanceof estruturas_1.ObjetoDeleguaClasse ||
56
+ objeto instanceof estruturas_1.DeleguaFuncao ||
57
+ typeof objeto.paraTexto === 'function')
58
+ return objeto.paraTexto();
59
+ if (objeto instanceof quebras_1.RetornoQuebra) {
60
+ if (typeof objeto.valor === 'boolean')
61
+ return objeto.valor ? 'verdadeiro' : 'falso';
62
+ }
63
+ if (objeto instanceof Date) {
64
+ const formato = Intl.DateTimeFormat('pt', {
65
+ dateStyle: 'full',
66
+ timeStyle: 'full',
67
+ });
68
+ return formato.format(objeto);
69
+ }
70
+ if (Array.isArray(objeto)) {
71
+ let retornoVetor = '[';
72
+ for (let elemento of objeto) {
73
+ if (typeof elemento === 'object') {
74
+ retornoVetor += `${JSON.stringify(elemento)}, `;
75
+ continue;
76
+ }
77
+ retornoVetor +=
78
+ typeof elemento === 'string'
79
+ ? `'${elemento}', `
80
+ : `${this.paraTexto(elemento)}, `;
81
+ }
82
+ if (retornoVetor.length > 1) {
83
+ retornoVetor = retornoVetor.slice(0, -2);
84
+ }
85
+ retornoVetor += ']';
86
+ return retornoVetor;
87
+ }
88
+ switch (objeto.constructor.name) {
89
+ case 'Object':
90
+ if ('tipo' in objeto) {
91
+ switch (objeto.tipo) {
92
+ case 'dicionário':
93
+ return JSON.stringify(objeto.valor);
94
+ default:
95
+ return objeto.valor;
96
+ }
97
+ }
98
+ }
99
+ if (typeof objeto === primitivos_1.default.OBJETO) {
100
+ const objetoEscrita = {};
101
+ for (const propriedade in objeto) {
102
+ let valor = objeto[propriedade];
103
+ if (typeof valor === primitivos_1.default.BOOLEANO) {
104
+ valor = valor ? 'verdadeiro' : 'falso';
105
+ }
106
+ if (valor instanceof estruturas_1.ReferenciaMontao) {
107
+ valor = this.resolverValor(valor);
108
+ }
109
+ objetoEscrita[propriedade] = valor;
110
+ }
111
+ return JSON.stringify(objetoEscrita);
112
+ }
113
+ return objeto.toString();
114
+ }
115
+ async avaliacaoDeclaracaoVarOuConst(declaracao) {
116
+ let valorOuOutraVariavel = null;
117
+ if (declaracao.inicializador !== null) {
118
+ valorOuOutraVariavel = await this.avaliar(declaracao.inicializador);
119
+ }
120
+ let valorFinal = null;
121
+ if (valorOuOutraVariavel !== null && valorOuOutraVariavel !== undefined) {
122
+ valorFinal = this.resolverValor(valorOuOutraVariavel);
123
+ }
124
+ return valorFinal;
125
+ }
126
+ async avaliarArgumentosEscreva(argumentos) {
127
+ let formatoTexto = '';
128
+ for (const argumento of argumentos) {
129
+ const resultadoAvaliacao = await this.avaliar(argumento);
130
+ let valor = this.resolverValor(resultadoAvaliacao);
131
+ formatoTexto += `${this.paraTexto(valor)} `;
132
+ }
133
+ return formatoTexto.trimEnd();
134
+ }
22
135
  visitarDeclaracaoDefinicaoFuncao(declaracao) {
23
136
  const funcao = new estruturas_1.DeleguaFuncao(declaracao.simbolo.lexema, declaracao.funcao);
24
137
  // TODO: Depreciar essa abordagem a favor do uso por referências.
25
138
  this.pilhaEscoposExecucao.definirVariavel(declaracao.simbolo.lexema, funcao);
26
139
  this.pilhaEscoposExecucao.registrarReferenciaFuncao(declaracao.id, funcao);
27
140
  }
141
+ async visitarExpressaoAcessoIndiceVariavel(expressao) {
142
+ const promises = await Promise.all([
143
+ this.avaliar(expressao.entidadeChamada),
144
+ this.avaliar(expressao.indice),
145
+ ]);
146
+ const variavelObjeto = promises[0];
147
+ const indice = promises[1];
148
+ const objeto = this.resolverValor(variavelObjeto);
149
+ let valorIndice = this.resolverValor(indice);
150
+ if (Array.isArray(objeto)) {
151
+ if (!Number.isInteger(valorIndice)) {
152
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(expressao.simboloFechamento, 'Somente inteiros podem ser usados para indexar um vetor.', expressao.linha));
153
+ }
154
+ if (valorIndice < 0 && objeto.length !== 0) {
155
+ while (valorIndice < 0) {
156
+ valorIndice += objeto.length;
157
+ }
158
+ }
159
+ if (valorIndice >= objeto.length) {
160
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(expressao.simboloFechamento, 'Índice do vetor fora do intervalo.', expressao.linha));
161
+ }
162
+ return objeto[valorIndice];
163
+ }
164
+ if (objeto instanceof construtos_1.Vetor) {
165
+ return objeto.valores[valorIndice];
166
+ }
167
+ if (objeto.constructor === Object ||
168
+ objeto instanceof estruturas_1.ObjetoDeleguaClasse ||
169
+ objeto instanceof estruturas_1.DeleguaFuncao ||
170
+ objeto instanceof estruturas_1.DescritorTipoClasse ||
171
+ objeto instanceof estruturas_1.DeleguaModulo) {
172
+ if (objeto[valorIndice] === 0)
173
+ return 0;
174
+ return objeto[valorIndice] || null;
175
+ }
176
+ if (typeof objeto === primitivos_1.default.TEXTO) {
177
+ if (!Number.isInteger(valorIndice)) {
178
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(expressao.simboloFechamento, 'Somente inteiros podem ser usados para indexar um vetor.', expressao.linha));
179
+ }
180
+ if (valorIndice < 0 && objeto.length !== 0) {
181
+ while (valorIndice < 0) {
182
+ valorIndice += objeto.length;
183
+ }
184
+ }
185
+ if (valorIndice >= objeto.length) {
186
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(expressao.simboloFechamento, 'Índice fora do tamanho.', expressao.linha));
187
+ }
188
+ return objeto.charAt(valorIndice);
189
+ }
190
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
191
+ hashArquivo: this.hashArquivoDeclaracaoAtual,
192
+ linha: this.linhaDeclaracaoAtual,
193
+ }, 'Somente listas, dicionários, classes e objetos podem ter seus valores indexados.', expressao.linha));
194
+ }
28
195
  async visitarExpressaoAcessoMetodo(expressao) {
29
196
  let variavelObjeto = await this.avaliar(expressao.objeto);
30
197
  // Este caso acontece quando há encadeamento de métodos.
@@ -34,9 +201,7 @@ class Interpretador extends interpretador_base_1.InterpretadorBase {
34
201
  if (variavelObjeto.constructor.name === 'RetornoQuebra') {
35
202
  variavelObjeto = variavelObjeto.valor;
36
203
  }
37
- const objeto = variavelObjeto.hasOwnProperty('valor')
38
- ? variavelObjeto.valor
39
- : variavelObjeto;
204
+ const objeto = this.resolverValor(variavelObjeto);
40
205
  if (objeto.constructor.name === 'ObjetoDeleguaClasse') {
41
206
  return objeto.obterMetodo(expressao.nomeMetodo) || null;
42
207
  }
@@ -96,7 +261,10 @@ class Interpretador extends interpretador_base_1.InterpretadorBase {
96
261
  }
97
262
  break;
98
263
  }
99
- return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(null, `Método para objeto ou primitiva não encontrado: ${expressao.nomeMetodo}.`, expressao.linha));
264
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
265
+ hashArquivo: this.hashArquivoDeclaracaoAtual,
266
+ linha: this.linhaDeclaracaoAtual,
267
+ }, `Método para objeto ou primitiva não encontrado: ${expressao.nomeMetodo}.`, expressao.linha));
100
268
  }
101
269
  /**
102
270
  * Casos que ocorrem aqui:
@@ -116,9 +284,7 @@ class Interpretador extends interpretador_base_1.InterpretadorBase {
116
284
  if (variavelObjeto.constructor.name === 'RetornoQuebra') {
117
285
  variavelObjeto = variavelObjeto.valor;
118
286
  }
119
- const objeto = variavelObjeto.hasOwnProperty('valor')
120
- ? variavelObjeto.valor
121
- : variavelObjeto;
287
+ const objeto = this.resolverValor(variavelObjeto);
122
288
  if (objeto.constructor.name === 'ObjetoDeleguaClasse') {
123
289
  return objeto.obter(expressao.simbolo);
124
290
  }
@@ -128,7 +294,7 @@ class Interpretador extends interpretador_base_1.InterpretadorBase {
128
294
  const metodoDePrimitivaDicionario = primitivas_dicionario_1.default[expressao.simbolo.lexema].implementacao;
129
295
  return new estruturas_1.MetodoPrimitiva(objeto, metodoDePrimitivaDicionario);
130
296
  }
131
- return objeto[expressao.simbolo.lexema] || null;
297
+ return objeto[expressao.simbolo.lexema];
132
298
  }
133
299
  // A partir daqui, presume-se que o objeto é uma das estruturas
134
300
  // de Delégua.
@@ -172,8 +338,9 @@ class Interpretador extends interpretador_base_1.InterpretadorBase {
172
338
  break;
173
339
  }
174
340
  // Último caso válido: objeto de uma classe JavaScript que possua a propriedade.
175
- // Exemplos: classes de LinConEs, como `RetornoComando, ou bibliotecas globais com objetos próprios`.
176
- if (objeto.hasOwnProperty(expressao.simbolo.lexema) || typeof objeto[expressao.simbolo.lexema] !== 'undefined') {
341
+ // Exemplos: classes de LinConEs, como `RetornoComando`, ou bibliotecas globais com objetos próprios.
342
+ if (objeto.hasOwnProperty(expressao.simbolo.lexema) ||
343
+ typeof objeto[expressao.simbolo.lexema] !== 'undefined') {
177
344
  return objeto[expressao.simbolo.lexema];
178
345
  }
179
346
  return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(null, `Método ou propriedade para objeto ou primitiva não encontrado: ${expressao.simbolo.lexema}.`, expressao.linha));
@@ -187,9 +354,7 @@ class Interpretador extends interpretador_base_1.InterpretadorBase {
187
354
  if (variavelObjeto.constructor.name === 'RetornoQuebra') {
188
355
  variavelObjeto = variavelObjeto.valor;
189
356
  }
190
- const objeto = variavelObjeto.hasOwnProperty('valor')
191
- ? variavelObjeto.valor
192
- : variavelObjeto;
357
+ const objeto = this.resolverValor(variavelObjeto);
193
358
  // Outro caso que `instanceof` simplesmente não funciona para casos em Liquido,
194
359
  // então testamos também o nome do construtor.
195
360
  if (objeto instanceof estruturas_1.ObjetoDeleguaClasse ||
@@ -230,6 +395,134 @@ class Interpretador extends interpretador_base_1.InterpretadorBase {
230
395
  const deleguaFuncao = this.pilhaEscoposExecucao.obterVariavelPorNome(expressao.simboloFuncao.lexema);
231
396
  return deleguaFuncao;
232
397
  }
398
+ async visitarExpressaoAtribuicaoPorIndice(expressao) {
399
+ const promises = await Promise.all([
400
+ this.avaliar(expressao.objeto),
401
+ this.avaliar(expressao.indice),
402
+ this.avaliar(expressao.valor),
403
+ ]);
404
+ let objeto = promises[0];
405
+ let indice = promises[1];
406
+ const valor = promises[2];
407
+ if (objeto.tipo === delegua_1.default.TUPLA) {
408
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(expressao.objeto.simbolo.lexema, 'Não é possível modificar uma tupla. As tuplas são estruturas de dados imutáveis.', expressao.linha));
409
+ }
410
+ objeto = this.resolverValor(objeto);
411
+ indice = this.resolverValor(indice);
412
+ // Se o valor é uma referência ao montão, e o índice que a recebe é
413
+ // de uma variável/constante que vive num escopo superior, a referência
414
+ // precisa ser transferida para o escopo correspondente.
415
+ if (valor instanceof estruturas_1.ReferenciaMontao) {
416
+ // TODO: Terminar
417
+ const nomeVariavel = expressao.objeto.simbolo.lexema;
418
+ if (this.pilhaEscoposExecucao.obterVariavelEm(1, nomeVariavel) === undefined) {
419
+ this.pilhaEscoposExecucao.migrarReferenciaMontaoParaEscopoDeVariavel(nomeVariavel, valor.endereco);
420
+ }
421
+ }
422
+ if (Array.isArray(objeto)) {
423
+ if (indice < 0 && objeto.length !== 0) {
424
+ while (indice < 0) {
425
+ indice += objeto.length;
426
+ }
427
+ }
428
+ while (objeto.length < indice) {
429
+ objeto.push(null);
430
+ }
431
+ objeto[indice] = valor;
432
+ }
433
+ else if (objeto.constructor === Object ||
434
+ objeto instanceof estruturas_1.ObjetoDeleguaClasse ||
435
+ objeto instanceof estruturas_1.DeleguaFuncao ||
436
+ objeto instanceof estruturas_1.DescritorTipoClasse ||
437
+ objeto instanceof estruturas_1.DeleguaModulo) {
438
+ objeto[indice] = valor;
439
+ }
440
+ else {
441
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(expressao.objeto.nome, 'Somente listas, dicionários, classes e objetos podem ser mudados por índice.', expressao.linha));
442
+ }
443
+ }
444
+ /**
445
+ * Execução de uma expressão de atribuição.
446
+ * @param expressao A expressão.
447
+ * @returns O valor atribuído.
448
+ */
449
+ async visitarExpressaoDeAtribuicao(expressao) {
450
+ const valor = await this.avaliar(expressao.valor);
451
+ const valorResolvido = this.resolverValor(valor);
452
+ let indice = null;
453
+ if (expressao.indice) {
454
+ indice = await this.avaliar(expressao.indice);
455
+ }
456
+ switch (expressao.alvo.constructor.name) {
457
+ case 'Variavel':
458
+ const alvoVariavel = expressao.alvo;
459
+ const variavelResolvida = this.pilhaEscoposExecucao.obterValorVariavel(alvoVariavel.simbolo);
460
+ if (variavelResolvida.valor instanceof estruturas_1.ReferenciaMontao) {
461
+ const referenciaMontao = this.montao.obterReferencia(this.hashArquivoDeclaracaoAtual, this.linhaDeclaracaoAtual, variavelResolvida.valor.endereco);
462
+ referenciaMontao[indice] = valorResolvido;
463
+ }
464
+ else {
465
+ this.pilhaEscoposExecucao.atribuirVariavel(alvoVariavel.simbolo, valorResolvido, indice);
466
+ }
467
+ break;
468
+ case 'AcessoMetodoOuPropriedade':
469
+ // Nunca será método aqui: apenas propriedade.
470
+ const alvoPropriedade = expressao.alvo;
471
+ const variavelObjeto = await this.avaliar(alvoPropriedade.objeto);
472
+ const objeto = this.resolverValor(variavelObjeto);
473
+ const valor = await this.avaliar(expressao.valor);
474
+ if (objeto.constructor.name === 'ObjetoDeleguaClasse') {
475
+ const objetoDeleguaClasse = objeto;
476
+ objetoDeleguaClasse.definir(alvoPropriedade.simbolo, valor);
477
+ }
478
+ else {
479
+ // Se cair aqui, provavelmente `objeto.constructor.name` é 'Object'.
480
+ objeto[alvoPropriedade.simbolo.lexema] = valor;
481
+ }
482
+ break;
483
+ default:
484
+ throw new excecoes_1.ErroEmTempoDeExecucao(null, `Atribuição com caso faltante: ${expressao.alvo.constructor.name}.`);
485
+ }
486
+ return valorResolvido;
487
+ }
488
+ async visitarExpressaoDefinirValor(expressao) {
489
+ const variavelObjeto = await this.avaliar(expressao.objeto);
490
+ const objeto = this.resolverValor(variavelObjeto);
491
+ if (objeto.constructor.name !== 'ObjetoDeleguaClasse' && objeto.constructor !== Object) {
492
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(expressao.nome, 'Somente instâncias e dicionários podem possuir campos.', expressao.linha));
493
+ }
494
+ const valor = await this.avaliar(expressao.valor);
495
+ const valorResolvido = this.resolverValor(valor);
496
+ if (objeto.constructor.name === 'ObjetoDeleguaClasse') {
497
+ objeto.definir(expressao.nome, valorResolvido);
498
+ return valorResolvido;
499
+ }
500
+ if (objeto.constructor === Object) {
501
+ objeto[expressao.nome.lexema] = valorResolvido;
502
+ }
503
+ }
504
+ /**
505
+ * Dicionários em Delégua são passados por referência, portanto, são
506
+ * armazenados no montão.
507
+ */
508
+ async visitarExpressaoDicionario(expressao) {
509
+ const dicionario = {};
510
+ for (let i = 0; i < expressao.chaves.length; i++) {
511
+ const promises = await Promise.all([
512
+ this.avaliar(expressao.chaves[i]),
513
+ this.avaliar(expressao.valores[i]),
514
+ ]);
515
+ if (typeof promises[0] === 'boolean') {
516
+ const chaveLogico = promises[0] === true ? 'verdadeiro' : 'falso';
517
+ dicionario[chaveLogico] = promises[1];
518
+ continue;
519
+ }
520
+ dicionario[promises[0]] = this.resolverValor(promises[1]);
521
+ }
522
+ const enderecoDicionarioMontao = this.montao.adicionarReferencia(dicionario);
523
+ this.pilhaEscoposExecucao.registrarReferenciaMontao(enderecoDicionarioMontao);
524
+ return new estruturas_1.ReferenciaMontao(enderecoDicionarioMontao);
525
+ }
233
526
  async visitarExpressaoReferenciaFuncao(expressao) {
234
527
  const deleguaFuncao = this.pilhaEscoposExecucao.obterReferenciaFuncao(expressao.idFuncao);
235
528
  return deleguaFuncao;
@@ -261,6 +554,9 @@ class Interpretador extends interpretador_base_1.InterpretadorBase {
261
554
  case 'Dicionario':
262
555
  case 'Unario':
263
556
  valorTipoDe = await this.avaliar(valorTipoDe);
557
+ if (valorTipoDe instanceof estruturas_1.ReferenciaMontao) {
558
+ valorTipoDe = this.montao.obterReferencia(this.hashArquivoDeclaracaoAtual, this.linhaDeclaracaoAtual, valorTipoDe.endereco);
559
+ }
264
560
  return valorTipoDe.tipo || (0, inferenciador_1.inferirTipoVariavel)(valorTipoDe);
265
561
  case 'AcessoMetodo':
266
562
  const acessoMetodo = valorTipoDe;
@@ -290,6 +586,62 @@ class Interpretador extends interpretador_base_1.InterpretadorBase {
290
586
  return (0, inferenciador_1.inferirTipoVariavel)(valorTipoDe);
291
587
  }
292
588
  }
589
+ /**
590
+ * Executa o último escopo empilhado no topo na pilha de escopos do interpretador.
591
+ * Esse método pega exceções, mas apenas as devolve.
592
+ *
593
+ * O tratamento das exceções é feito de acordo com o bloco chamador.
594
+ * Por exemplo, em `tente ... pegue ... finalmente`, a exceção é capturada e tratada.
595
+ * Em outros blocos, pode ser desejável ter o erro em tela.
596
+ * @param manterAmbiente Se verdadeiro, ambiente do topo da pilha de escopo é copiado para o ambiente imediatamente abaixo.
597
+ * @returns O resultado da execução do escopo, se houver.
598
+ */
599
+ async executarUltimoEscopo(manterAmbiente = false) {
600
+ const ultimoEscopo = this.pilhaEscoposExecucao.topoDaPilha();
601
+ let retornoExecucao;
602
+ try {
603
+ for (; !(retornoExecucao instanceof quebras_1.Quebra) &&
604
+ ultimoEscopo.declaracaoAtual < ultimoEscopo.declaracoes.length; ultimoEscopo.declaracaoAtual++) {
605
+ const declaracaoAtual = ultimoEscopo.declaracoes[ultimoEscopo.declaracaoAtual];
606
+ this.linhaDeclaracaoAtual = declaracaoAtual.linha;
607
+ this.hashArquivoDeclaracaoAtual = declaracaoAtual.hashArquivo;
608
+ retornoExecucao = await this.executar(declaracaoAtual);
609
+ }
610
+ return retornoExecucao;
611
+ }
612
+ catch (erro) {
613
+ const declaracaoAtual = ultimoEscopo.declaracoes[ultimoEscopo.declaracaoAtual];
614
+ if (!this.emDeclaracaoTente) {
615
+ this.erros.push({
616
+ erroInterno: erro,
617
+ linha: declaracaoAtual.linha,
618
+ hashArquivo: declaracaoAtual.hashArquivo,
619
+ });
620
+ }
621
+ else {
622
+ return Promise.reject(erro);
623
+ }
624
+ }
625
+ finally {
626
+ const escopoFinalizado = this.pilhaEscoposExecucao.removerUltimo();
627
+ const escopoAnterior = this.pilhaEscoposExecucao.topoDaPilha();
628
+ this.montao.excluirReferencias(...escopoFinalizado.espacoMemoria.enderecosMontao);
629
+ if (manterAmbiente || (retornoExecucao && retornoExecucao.preservarEscopo === true)) {
630
+ escopoAnterior.espacoMemoria.valores = Object.assign(escopoAnterior.espacoMemoria.valores, ultimoEscopo.espacoMemoria.valores);
631
+ }
632
+ }
633
+ }
634
+ /**
635
+ * Método que efetivamente inicia o processo de interpretação.
636
+ * @param declaracoes Um vetor de declarações gerado pelo Avaliador Sintático.
637
+ * @param manterAmbiente Se ambiente de execução (variáveis, classes, etc.) deve ser mantido. Normalmente usado
638
+ * pelo modo REPL (LAIR).
639
+ * @returns Um objeto com o resultado da interpretação.
640
+ */
641
+ async interpretar(declaracoes, manterAmbiente) {
642
+ this.montao = new montao_1.Montao();
643
+ return super.interpretar(declaracoes, manterAmbiente);
644
+ }
293
645
  }
294
646
  exports.Interpretador = Interpretador;
295
647
  //# sourceMappingURL=interpretador.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interpretador.js","sourceRoot":"","sources":["../../fontes/interpretador/interpretador.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interpretador.js","sourceRoot":"","sources":["../../fontes/interpretador/interpretador.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * O montão, conhecido em inglês, como _heap_, guarda todas as estruturas de dados
3
+ * não primitivas durante a execução.
4
+ * Inicialmente trabalha apenas com dicionários, mas a ideia mais futuramente é
5
+ * trabalhar com toda e qualquer estrutura de dados mais complexa.
6
+ *
7
+ * Diferentemente da pilha de escopos de execução, o montão trabalha entre escopos.
8
+ * Por exemplo, se quisermos ter uma funcionalidade do interpretador em que uma
9
+ * referência é preservada entre escopos, podemos apagar o escopo e transferir facilmente
10
+ * a referência do montão para outro escopo.
11
+ */
12
+ export declare class Montao {
13
+ referencias: {
14
+ [endereco: string]: any;
15
+ };
16
+ constructor();
17
+ /**
18
+ * Adiciona uma nova referência ao montão, retornando seu endereço.
19
+ * @param {any} objeto Qualquer objeto que pertença ao montão.
20
+ * @returns {string} O endereço onde a referência foi registrada.
21
+ */
22
+ adicionarReferencia(objeto: any): string;
23
+ /**
24
+ * Exclui referências do montão, normalmente por finalização de um
25
+ * escopo de execução.
26
+ * @param enderecos
27
+ */
28
+ excluirReferencias(...enderecos: string[]): void;
29
+ /**
30
+ * Obtém uma referência com base no símbolo executado e endereço da referência.
31
+ * @param {number} hashArquivo O _hash_ correspondente ao caminho do arquivo em execução.
32
+ * @param {number} linha A linha correspondente à declaração sendo executada.
33
+ * @param {string} endereco O endereço da referência.
34
+ * @returns {any} O objeto armazenado no endereço.
35
+ */
36
+ obterReferencia(hashArquivo: number, linha: number, endereco: string): any;
37
+ }
38
+ //# sourceMappingURL=montao.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"montao.d.ts","sourceRoot":"","sources":["../../fontes/interpretador/montao.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AACH,qBAAa,MAAM;IACf,WAAW,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;;IAMzC;;;;OAIG;IACH,mBAAmB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM;IAMxC;;;;OAIG;IACH,kBAAkB,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAMhD;;;;;;OAMG;IACH,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG;CAU7E"}