@designliquido/delegua 0.58.0 → 0.59.1

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 (47) hide show
  1. package/avaliador-sintatico/avaliador-sintatico.d.ts.map +1 -1
  2. package/avaliador-sintatico/avaliador-sintatico.js +7 -2
  3. package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  4. package/bibliotecas/dialetos/pitugues/primitivas-texto.d.ts.map +1 -1
  5. package/bibliotecas/dialetos/pitugues/primitivas-texto.js +54 -0
  6. package/bibliotecas/dialetos/pitugues/primitivas-texto.js.map +1 -1
  7. package/bibliotecas/primitivas-texto.d.ts.map +1 -1
  8. package/bibliotecas/primitivas-texto.js +17 -0
  9. package/bibliotecas/primitivas-texto.js.map +1 -1
  10. package/bin/package.json +1 -1
  11. package/interfaces/interpretador-interface.d.ts +1 -1
  12. package/interfaces/interpretador-interface.d.ts.map +1 -1
  13. package/interfaces/primitiva-interface.d.ts +1 -0
  14. package/interfaces/primitiva-interface.d.ts.map +1 -1
  15. package/interfaces/retornos/index.d.ts +1 -0
  16. package/interfaces/retornos/index.d.ts.map +1 -1
  17. package/interfaces/retornos/index.js +1 -0
  18. package/interfaces/retornos/index.js.map +1 -1
  19. package/interpretador/dialetos/pitugues/comum.d.ts +16 -0
  20. package/interpretador/dialetos/pitugues/comum.d.ts.map +1 -0
  21. package/interpretador/dialetos/pitugues/comum.js +270 -0
  22. package/interpretador/dialetos/pitugues/comum.js.map +1 -0
  23. package/interpretador/dialetos/pitugues/index.d.ts +1 -0
  24. package/interpretador/dialetos/pitugues/index.d.ts.map +1 -1
  25. package/interpretador/dialetos/pitugues/index.js +1 -0
  26. package/interpretador/dialetos/pitugues/index.js.map +1 -1
  27. package/interpretador/dialetos/pitugues/interpretador-pitugues-com-depuracao.d.ts +8 -0
  28. package/interpretador/dialetos/pitugues/interpretador-pitugues-com-depuracao.d.ts.map +1 -0
  29. package/interpretador/dialetos/pitugues/interpretador-pitugues-com-depuracao.js +51 -0
  30. package/interpretador/dialetos/pitugues/interpretador-pitugues-com-depuracao.js.map +1 -0
  31. package/interpretador/dialetos/pitugues/interpretador-pitugues.d.ts +0 -9
  32. package/interpretador/dialetos/pitugues/interpretador-pitugues.d.ts.map +1 -1
  33. package/interpretador/dialetos/pitugues/interpretador-pitugues.js +37 -234
  34. package/interpretador/dialetos/pitugues/interpretador-pitugues.js.map +1 -1
  35. package/interpretador/interpretador-base.d.ts.map +1 -1
  36. package/interpretador/interpretador-base.js +4 -0
  37. package/interpretador/interpretador-base.js.map +1 -1
  38. package/lexador/micro-lexador-pitugues.d.ts +1 -0
  39. package/lexador/micro-lexador-pitugues.d.ts.map +1 -1
  40. package/lexador/micro-lexador-pitugues.js +5 -1
  41. package/lexador/micro-lexador-pitugues.js.map +1 -1
  42. package/package.json +1 -1
  43. package/umd/delegua.js +335 -304
  44. package/interpretador/interpretador-com-depuracao.d.ts +0 -182
  45. package/interpretador/interpretador-com-depuracao.d.ts.map +0 -1
  46. package/interpretador/interpretador-com-depuracao.js +0 -563
  47. package/interpretador/interpretador-com-depuracao.js.map +0 -1
package/bin/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@designliquido/delegua",
3
- "version": "0.57.2",
3
+ "version": "0.59.0",
4
4
  "description": "Linguagem de programação simples e moderna usando português estruturado.",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -18,7 +18,7 @@ export interface InterpretadorInterface extends VisitanteComumInterface {
18
18
  executarBloco(declaracoes: Declaracao[], ambiente?: EspacoMemoria): Promise<any>;
19
19
  paraTexto(objeto: any): any;
20
20
  executar(declaracao: Declaracao, mostrarResultado?: boolean): any;
21
- resolverValor(objeto: any): any;
21
+ resolverValor(objeto: any, referencia?: boolean): any;
22
22
  interpretar(declaracoes: Declaracao[], manterAmbiente?: boolean): Promise<RetornoInterpretadorInterface>;
23
23
  }
24
24
  //# sourceMappingURL=interpretador-interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interpretador-interface.d.ts","sourceRoot":"","sources":["../../fontes/interfaces/interpretador-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAEnF,OAAO,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,MAAM,WAAW,sBAAuB,SAAQ,uBAAuB;IACnE,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,aAAa,EAAE,GAAG,CAAC;IACnB,eAAe,EAAE,QAAQ,CAAC;IAC1B,oBAAoB,EAAE,6BAA6B,CAAC;IACpD,qBAAqB,EAAE,GAAG,CAAC;IAC3B,0BAA0B,EAAE,MAAM,CAAC;IACnC,oBAAoB,EAAE,MAAM,CAAC;IAE7B,WAAW,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC;IAClC,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,UAAU,GAAG,GAAG,CAAC;IAChD,aAAa,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACjF,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,CAAC,EAAE,OAAO,GAAG,GAAG,CAAC;IAClE,aAAa,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC;IAChC,WAAW,CACP,WAAW,EAAE,UAAU,EAAE,EACzB,cAAc,CAAC,EAAE,OAAO,GACzB,OAAO,CAAC,6BAA6B,CAAC,CAAC;CAC7C"}
1
+ {"version":3,"file":"interpretador-interface.d.ts","sourceRoot":"","sources":["../../fontes/interfaces/interpretador-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAEnF,OAAO,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,MAAM,WAAW,sBAAuB,SAAQ,uBAAuB;IACnE,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,aAAa,EAAE,GAAG,CAAC;IACnB,eAAe,EAAE,QAAQ,CAAC;IAC1B,oBAAoB,EAAE,6BAA6B,CAAC;IACpD,qBAAqB,EAAE,GAAG,CAAC;IAC3B,0BAA0B,EAAE,MAAM,CAAC;IACnC,oBAAoB,EAAE,MAAM,CAAC;IAE7B,WAAW,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC;IAClC,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,UAAU,GAAG,GAAG,CAAC;IAChD,aAAa,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACjF,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,CAAC,EAAE,OAAO,GAAG,GAAG,CAAC;IAClE,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,GAAG,CAAC;IACtD,WAAW,CACP,WAAW,EAAE,UAAU,EAAE,EACzB,cAAc,CAAC,EAAE,OAAO,GACzB,OAAO,CAAC,6BAA6B,CAAC,CAAC;CAC7C"}
@@ -6,5 +6,6 @@ export interface PrimitivaInterface {
6
6
  assinaturaFormato?: string;
7
7
  documentacao?: string;
8
8
  exemploCodigo?: string;
9
+ subtiposSuportados?: string[];
9
10
  }
10
11
  //# sourceMappingURL=primitiva-interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"primitiva-interface.d.ts","sourceRoot":"","sources":["../../fontes/interfaces/primitiva-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAE/E,MAAM,WAAW,kBAAkB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,2BAA2B,EAAE,CAAC;IAC1C,aAAa,EAAE,QAAQ,CAAC;IAIxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B"}
1
+ {"version":3,"file":"primitiva-interface.d.ts","sourceRoot":"","sources":["../../fontes/interfaces/primitiva-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAE/E,MAAM,WAAW,kBAAkB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,2BAA2B,EAAE,CAAC;IAC1C,aAAa,EAAE,QAAQ,CAAC;IAIxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC"}
@@ -1,3 +1,4 @@
1
+ export * from './retorno-analisador-semantico';
1
2
  export * from './retorno-avaliador-sintatico';
2
3
  export * from './retorno-execucao-interface';
3
4
  export * from './retorno-interpretador-interface';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../fontes/interfaces/retornos/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../fontes/interfaces/retornos/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,mBAAmB,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("./retorno-analisador-semantico"), exports);
17
18
  __exportStar(require("./retorno-avaliador-sintatico"), exports);
18
19
  __exportStar(require("./retorno-execucao-interface"), exports);
19
20
  __exportStar(require("./retorno-interpretador-interface"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/interfaces/retornos/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C;AAC9C,+DAA6C;AAC7C,oEAAkD;AAClD,oDAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/interfaces/retornos/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iEAA+C;AAC/C,gEAA8C;AAC9C,+DAA6C;AAC7C,oEAAkD;AAClD,oDAAkC"}
@@ -0,0 +1,16 @@
1
+ import { AcessoMetodo, AcessoMetodoOuPropriedade, AcessoPropriedade } from "../../../construtos";
2
+ import { InterpretadorInterface } from "../../../interfaces";
3
+ export declare function visitarExpressaoAcessoMetodo(interpretador: InterpretadorInterface, expressao: AcessoMetodo): Promise<any>;
4
+ /**
5
+ * Casos que ocorrem aqui:
6
+ *
7
+ * - Quando o método ou propriedade é ou 'qualquer', ou vetor
8
+ * de 'qualquer' ('qualquer[]'), e uma primitiva é usada.
9
+ * - Quando o objeto é uma classe definida em código.
10
+ * @param {AcessoMetodoOuPropriedade} expressao A expressão de acesso a método ou propriedade.
11
+ * @returns A primitiva encontrada.
12
+ */
13
+ export declare function visitarExpressaoAcessoMetodoOuPropriedade(interpretador: InterpretadorInterface, expressao: AcessoMetodoOuPropriedade): Promise<any>;
14
+ export declare function visitarExpressaoAcessoPropriedade(interpretador: InterpretadorInterface, expressao: AcessoPropriedade): Promise<any>;
15
+ export declare function resolverInterpolacoes(interpretador: InterpretadorInterface, textoOriginal: string, linha: number): Promise<any[]>;
16
+ //# sourceMappingURL=comum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comum.d.ts","sourceRoot":"","sources":["../../../../fontes/interpretador/dialetos/pitugues/comum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEjG,OAAO,EAAE,sBAAsB,EAAuC,MAAM,qBAAqB,CAAC;AAalG,wBAAsB,4BAA4B,CAC9C,aAAa,EAAE,sBAAsB,EACrC,SAAS,EAAE,YAAY,GACxB,OAAO,CAAC,GAAG,CAAC,CAiGd;AAED;;;;;;;;GAQG;AACH,wBAAsB,yCAAyC,CAC3D,aAAa,EAAE,sBAAsB,EACrC,SAAS,EAAE,yBAAyB,GACrC,OAAO,CAAC,GAAG,CAAC,CA0Id;AAED,wBAAsB,iCAAiC,CACnD,aAAa,EAAE,sBAAsB,EACrC,SAAS,EAAE,iBAAiB,GAC7B,OAAO,CAAC,GAAG,CAAC,CAkEd;AAED,wBAAsB,qBAAqB,CACvC,aAAa,EAAE,sBAAsB,EACrC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,EAAE,CAAC,CAgChB"}
@@ -0,0 +1,270 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.visitarExpressaoAcessoMetodo = visitarExpressaoAcessoMetodo;
7
+ exports.visitarExpressaoAcessoMetodoOuPropriedade = visitarExpressaoAcessoMetodoOuPropriedade;
8
+ exports.visitarExpressaoAcessoPropriedade = visitarExpressaoAcessoPropriedade;
9
+ exports.resolverInterpolacoes = resolverInterpolacoes;
10
+ const inferenciador_1 = require("../../../inferenciador");
11
+ const quebras_1 = require("../../../quebras");
12
+ const estruturas_1 = require("../../estruturas");
13
+ const primitivas_dicionario_1 = __importDefault(require("../../../bibliotecas/dialetos/pitugues/primitivas-dicionario"));
14
+ const primitivas_numero_1 = __importDefault(require("../../../bibliotecas/dialetos/pitugues/primitivas-numero"));
15
+ const primitivas_texto_1 = __importDefault(require("../../../bibliotecas/dialetos/pitugues/primitivas-texto"));
16
+ const primitivas_vetor_1 = __importDefault(require("../../../bibliotecas/dialetos/pitugues/primitivas-vetor"));
17
+ const primitivos_1 = __importDefault(require("../../../tipos-de-dados/primitivos"));
18
+ const pitugues_1 = __importDefault(require("../../../tipos-de-dados/dialetos/pitugues"));
19
+ const excecoes_1 = require("../../../excecoes");
20
+ async function visitarExpressaoAcessoMetodo(interpretador, expressao) {
21
+ const nomeObjeto = interpretador.resolverNomeObjectoAcessado(expressao.objeto);
22
+ let variavelObjeto = await interpretador.avaliar(expressao.objeto);
23
+ // Este caso acontece quando há encadeamento de métodos.
24
+ // Por exemplo, `objeto1.metodo1().metodo2()`.
25
+ // Como `RetornoQuebra` também possui `valor`, precisamos extrair o
26
+ // valor dele primeiro.
27
+ if (variavelObjeto.constructor && variavelObjeto.constructor === quebras_1.RetornoQuebra) {
28
+ variavelObjeto = variavelObjeto.valor;
29
+ }
30
+ const objeto = interpretador.resolverValor(variavelObjeto);
31
+ if (objeto.constructor && objeto.constructor.name === 'ObjetoDeleguaClasse') {
32
+ return objeto.obterMetodo(expressao.nomeMetodo) || null;
33
+ }
34
+ // Objeto simples do JavaScript, ou dicionário de Delégua.
35
+ if (objeto.constructor === Object) {
36
+ if (expressao.nomeMetodo in primitivas_dicionario_1.default) {
37
+ const metodoDePrimitivaDicionario = primitivas_dicionario_1.default[expressao.nomeMetodo].implementacao;
38
+ return new estruturas_1.MetodoPrimitiva(nomeObjeto, objeto, metodoDePrimitivaDicionario);
39
+ }
40
+ return objeto[expressao.nomeMetodo] || null;
41
+ }
42
+ // Casos em que o objeto possui algum outro tipo que não o de objeto simples.
43
+ // Normalmente executam quando uma biblioteca é importada, e estamos tentando
44
+ // obter alguma propriedade ou método desse objeto.
45
+ // Caso 1: Função tradicional do JavaScript.
46
+ if (typeof objeto[expressao.nomeMetodo] === primitivos_1.default.FUNCAO) {
47
+ return objeto[expressao.nomeMetodo];
48
+ }
49
+ // Caso 2: Objeto tradicional do JavaScript.
50
+ if (typeof objeto[expressao.nomeMetodo] === primitivos_1.default.OBJETO) {
51
+ return objeto[expressao.nomeMetodo];
52
+ }
53
+ // A partir daqui, presume-se que o objeto é uma das estruturas
54
+ // de Delégua.
55
+ if (objeto instanceof estruturas_1.DeleguaModulo) {
56
+ return objeto.componentes[expressao.nomeMetodo] || null;
57
+ }
58
+ let tipoObjeto = variavelObjeto.tipo;
59
+ if (tipoObjeto === null || tipoObjeto === undefined) {
60
+ tipoObjeto = (0, inferenciador_1.inferirTipoVariavel)(variavelObjeto);
61
+ }
62
+ // Como internamente um dicionário de Delégua é simplesmente um objeto de
63
+ // JavaScript, as primitivas de dicionário, especificamente, são tratadas
64
+ // mais acima.
65
+ switch (tipoObjeto) {
66
+ case pitugues_1.default.INTEIRO:
67
+ case pitugues_1.default.NUMERO:
68
+ case pitugues_1.default.NÚMERO:
69
+ const metodoDePrimitivaNumero = primitivas_numero_1.default[expressao.nomeMetodo].implementacao;
70
+ if (metodoDePrimitivaNumero) {
71
+ return new estruturas_1.MetodoPrimitiva(nomeObjeto, objeto, metodoDePrimitivaNumero);
72
+ }
73
+ break;
74
+ case pitugues_1.default.TEXTO:
75
+ const metodoDePrimitivaTexto = primitivas_texto_1.default[expressao.nomeMetodo].implementacao;
76
+ if (metodoDePrimitivaTexto) {
77
+ return new estruturas_1.MetodoPrimitiva(nomeObjeto, objeto, metodoDePrimitivaTexto);
78
+ }
79
+ break;
80
+ case pitugues_1.default.VETOR:
81
+ case pitugues_1.default.VETOR_NUMERO:
82
+ case pitugues_1.default.VETOR_NÚMERO:
83
+ case pitugues_1.default.VETOR_TEXTO:
84
+ const metodoDePrimitivaVetor = primitivas_vetor_1.default[expressao.nomeMetodo].implementacao;
85
+ if (metodoDePrimitivaVetor) {
86
+ return new estruturas_1.MetodoPrimitiva(nomeObjeto, objeto, metodoDePrimitivaVetor);
87
+ }
88
+ break;
89
+ }
90
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
91
+ hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
92
+ linha: interpretador.linhaDeclaracaoAtual,
93
+ }, `Método para objeto ou primitiva não encontrado: ${expressao.nomeMetodo}.`, expressao.linha));
94
+ }
95
+ /**
96
+ * Casos que ocorrem aqui:
97
+ *
98
+ * - Quando o método ou propriedade é ou 'qualquer', ou vetor
99
+ * de 'qualquer' ('qualquer[]'), e uma primitiva é usada.
100
+ * - Quando o objeto é uma classe definida em código.
101
+ * @param {AcessoMetodoOuPropriedade} expressao A expressão de acesso a método ou propriedade.
102
+ * @returns A primitiva encontrada.
103
+ */
104
+ async function visitarExpressaoAcessoMetodoOuPropriedade(interpretador, expressao) {
105
+ const nomeObjeto = interpretador.resolverNomeObjectoAcessado(expressao.objeto);
106
+ let variavelObjeto = await interpretador.avaliar(expressao.objeto);
107
+ // Este caso acontece quando há encadeamento de métodos.
108
+ // Por exemplo, `objeto1.metodo1().metodo2()`.
109
+ // Como `RetornoQuebra` também possui `valor`, precisamos extrair o
110
+ // valor dele primeiro.
111
+ if (variavelObjeto.constructor === quebras_1.RetornoQuebra) {
112
+ const retornoQuebra = variavelObjeto;
113
+ variavelObjeto = retornoQuebra.valor;
114
+ }
115
+ const objeto = interpretador.resolverValor(variavelObjeto, true);
116
+ if (objeto.constructor === estruturas_1.ObjetoDeleguaClasse) {
117
+ return objeto.obter(expressao.simbolo);
118
+ }
119
+ // Objeto simples do JavaScript, ou dicionário de Delégua.
120
+ if (objeto.constructor === Object) {
121
+ if (expressao.simbolo.lexema in primitivas_dicionario_1.default) {
122
+ if (!(expressao.simbolo.lexema in primitivas_numero_1.default)) {
123
+ throw new excecoes_1.ErroEmTempoDeExecucao(expressao.simbolo, `Método de primitiva '${expressao.simbolo.lexema}' não existe para o tipo dicionário.`);
124
+ }
125
+ const metodoDePrimitivaDicionario = primitivas_dicionario_1.default[expressao.simbolo.lexema].implementacao;
126
+ return new estruturas_1.MetodoPrimitiva(nomeObjeto, objeto, metodoDePrimitivaDicionario);
127
+ }
128
+ return objeto[expressao.simbolo.lexema];
129
+ }
130
+ // String do JavaScript, ou seja, primitiva de texto.
131
+ if (objeto.constructor === String) {
132
+ if (!(expressao.simbolo.lexema in primitivas_texto_1.default)) {
133
+ throw new excecoes_1.ErroEmTempoDeExecucao(expressao.simbolo, `Método de primitiva '${expressao.simbolo.lexema}' não existe para o tipo texto.`);
134
+ }
135
+ const metodoDePrimitivaTexto = primitivas_texto_1.default[expressao.simbolo.lexema].implementacao;
136
+ return new estruturas_1.MetodoPrimitiva(nomeObjeto, objeto, metodoDePrimitivaTexto);
137
+ }
138
+ // A partir daqui, presume-se que o objeto é uma das estruturas
139
+ // de Delégua.
140
+ if (objeto instanceof estruturas_1.DeleguaModulo) {
141
+ return objeto.componentes[expressao.simbolo.lexema] || null;
142
+ }
143
+ let tipoObjeto = variavelObjeto.tipo;
144
+ if (tipoObjeto === null || tipoObjeto === undefined) {
145
+ tipoObjeto = (0, inferenciador_1.inferirTipoVariavel)(variavelObjeto);
146
+ }
147
+ // Como internamente um dicionário de Delégua é simplesmente um objeto de
148
+ // JavaScript, as primitivas de dicionário, especificamente, são tratadas
149
+ // mais acima.
150
+ switch (tipoObjeto) {
151
+ case pitugues_1.default.INTEIRO:
152
+ case pitugues_1.default.NUMERO:
153
+ case pitugues_1.default.NÚMERO:
154
+ if (!(expressao.simbolo.lexema in primitivas_numero_1.default)) {
155
+ throw new excecoes_1.ErroEmTempoDeExecucao(expressao.simbolo, `Método de primitiva '${expressao.simbolo.lexema}' não existe para o tipo ${tipoObjeto}.`);
156
+ }
157
+ const metodoDePrimitivaNumero = primitivas_numero_1.default[expressao.simbolo.lexema].implementacao;
158
+ if (metodoDePrimitivaNumero) {
159
+ return new estruturas_1.MetodoPrimitiva(nomeObjeto, objeto, metodoDePrimitivaNumero);
160
+ }
161
+ break;
162
+ case pitugues_1.default.TEXTO:
163
+ if (!(expressao.simbolo.lexema in primitivas_texto_1.default)) {
164
+ throw new excecoes_1.ErroEmTempoDeExecucao(expressao.simbolo, `Método de primitiva '${expressao.simbolo.lexema}' não existe para o tipo ${tipoObjeto}.`);
165
+ }
166
+ const metodoDePrimitivaTexto = primitivas_texto_1.default[expressao.simbolo.lexema].implementacao;
167
+ if (metodoDePrimitivaTexto) {
168
+ return new estruturas_1.MetodoPrimitiva(nomeObjeto, objeto, metodoDePrimitivaTexto);
169
+ }
170
+ break;
171
+ case pitugues_1.default.VETOR:
172
+ case pitugues_1.default.VETOR_INTEIRO:
173
+ case pitugues_1.default.VETOR_LOGICO:
174
+ case pitugues_1.default.VETOR_LÓGICO:
175
+ case pitugues_1.default.VETOR_NUMERO:
176
+ case pitugues_1.default.VETOR_NÚMERO:
177
+ case pitugues_1.default.VETOR_QUALQUER:
178
+ case pitugues_1.default.VETOR_TEXTO:
179
+ if (!(expressao.simbolo.lexema in primitivas_vetor_1.default)) {
180
+ throw new excecoes_1.ErroEmTempoDeExecucao(expressao.simbolo, `Método de primitiva '${expressao.simbolo.lexema}' não existe para o tipo ${tipoObjeto}.`);
181
+ }
182
+ const metodoDePrimitivaVetor = primitivas_vetor_1.default[expressao.simbolo.lexema].implementacao;
183
+ if (metodoDePrimitivaVetor) {
184
+ return new estruturas_1.MetodoPrimitiva(nomeObjeto, objeto, metodoDePrimitivaVetor);
185
+ }
186
+ break;
187
+ }
188
+ // Objeto de uma classe JavaScript regular (ou seja, com construtor e propriedades)
189
+ // que possua a propriedade.
190
+ // Exemplos: classes de LinConEs, como `RetornoComando`, ou bibliotecas globais com objetos próprios.
191
+ if (objeto.hasOwnProperty && objeto.hasOwnProperty(expressao.simbolo.lexema)) {
192
+ return objeto[expressao.simbolo.lexema];
193
+ }
194
+ // Último caso: objeto simples, sem construtor, sem protótipo. Exemplo: {'a': 1, 'b': 2}
195
+ if (typeof objeto[expressao.simbolo.lexema] !== 'undefined') {
196
+ return objeto[expressao.simbolo.lexema];
197
+ }
198
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(null, `Método ou propriedade para objeto ou primitiva não encontrado: ${expressao.simbolo.lexema}.`, expressao.linha));
199
+ }
200
+ async function visitarExpressaoAcessoPropriedade(interpretador, expressao) {
201
+ const nomeObjeto = interpretador.resolverNomeObjectoAcessado(expressao.objeto);
202
+ let variavelObjeto = await interpretador.avaliar(expressao.objeto);
203
+ // Este caso acontece quando há encadeamento de métodos.
204
+ // Por exemplo, `objeto1.metodo1().metodo2()`.
205
+ // Como `RetornoQuebra` também possui `valor`, precisamos extrair o
206
+ // valor dele primeiro.
207
+ if (variavelObjeto.constructor && variavelObjeto.constructor === quebras_1.RetornoQuebra) {
208
+ variavelObjeto = variavelObjeto.valor;
209
+ }
210
+ const objeto = interpretador.resolverValor(variavelObjeto);
211
+ // Outro caso que `instanceof` simplesmente não funciona para casos em Liquido,
212
+ // então testamos também o nome do construtor.
213
+ if (objeto instanceof estruturas_1.ObjetoDeleguaClasse ||
214
+ (objeto.constructor && objeto.constructor.name === 'ObjetoDeleguaClasse')) {
215
+ return objeto.obterMetodo(expressao.nomePropriedade) || null;
216
+ }
217
+ // Objeto simples do JavaScript, ou dicionário de Delégua.
218
+ if (objeto.constructor === Object) {
219
+ if (expressao.nomePropriedade in primitivas_dicionario_1.default) {
220
+ const metodoDePrimitivaDicionario = primitivas_dicionario_1.default[expressao.nomePropriedade].implementacao;
221
+ return new estruturas_1.MetodoPrimitiva(nomeObjeto, objeto, metodoDePrimitivaDicionario);
222
+ }
223
+ return objeto[expressao.nomePropriedade] || null;
224
+ }
225
+ // Casos em que o objeto possui algum outro tipo que não o de objeto simples.
226
+ // Normalmente executam quando uma biblioteca é importada, e estamos tentando
227
+ // obter alguma propriedade ou método desse objeto.
228
+ // Caso 1: Função tradicional do JavaScript.
229
+ if (typeof objeto[expressao.nomePropriedade] === primitivos_1.default.FUNCAO) {
230
+ return objeto[expressao.nomePropriedade];
231
+ }
232
+ // Caso 2: Objeto tradicional do JavaScript.
233
+ if (typeof objeto[expressao.nomePropriedade] === primitivos_1.default.OBJETO) {
234
+ return objeto[expressao.nomePropriedade];
235
+ }
236
+ // A partir daqui, presume-se que o objeto é uma das estruturas
237
+ // de Delégua.
238
+ if (objeto instanceof estruturas_1.DeleguaModulo) {
239
+ return objeto.componentes[expressao.nomePropriedade] || null;
240
+ }
241
+ let tipoObjeto = variavelObjeto.tipo;
242
+ if (tipoObjeto === null || tipoObjeto === undefined) {
243
+ tipoObjeto = (0, inferenciador_1.inferirTipoVariavel)(variavelObjeto);
244
+ }
245
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(null, `Propriedade para objeto ou primitiva não encontrado: ${expressao.nomePropriedade}.`, expressao.linha));
246
+ }
247
+ async function resolverInterpolacoes(interpretador, textoOriginal, linha) {
248
+ const regexInterpolacao = /\$\{[a-zA-Z_][a-zA-Z0-9_]*\}/g;
249
+ const variaveis = textoOriginal.match(regexInterpolacao);
250
+ if (!variaveis)
251
+ return [];
252
+ const resultadosAvaliacaoSintatica = variaveis.map((s) => {
253
+ // s tem a forma "${identificador}" — removemos apenas os dois primeiros e o último caractere
254
+ const expressaoInterpolacao = s.slice(2, -1);
255
+ let microLexador = interpretador.microLexador.mapear(expressaoInterpolacao);
256
+ const resultadoMicroAvaliadorSintatico = interpretador.microAvaliadorSintatico.analisar(microLexador, linha);
257
+ return {
258
+ expressaoInterpolacao,
259
+ resultadoMicroAvaliadorSintatico,
260
+ };
261
+ });
262
+ const resolucoesPromises = await Promise.all(resultadosAvaliacaoSintatica
263
+ .flatMap((r) => r.resultadoMicroAvaliadorSintatico.declaracoes)
264
+ .map((d) => interpretador.avaliar(d)));
265
+ return resolucoesPromises.map((item, indice) => ({
266
+ expressaoInterpolacao: resultadosAvaliacaoSintatica[indice].expressaoInterpolacao,
267
+ valor: item,
268
+ }));
269
+ }
270
+ //# sourceMappingURL=comum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comum.js","sourceRoot":"","sources":["../../../../fontes/interpretador/dialetos/pitugues/comum.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export * from './interpretador-pitugues';
2
+ export * from './interpretador-pitugues-com-depuracao';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../fontes/interpretador/dialetos/pitugues/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../fontes/interpretador/dialetos/pitugues/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC"}
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./interpretador-pitugues"), exports);
18
+ __exportStar(require("./interpretador-pitugues-com-depuracao"), exports);
18
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../fontes/interpretador/dialetos/pitugues/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../fontes/interpretador/dialetos/pitugues/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,yEAAuD"}
@@ -0,0 +1,8 @@
1
+ import { AcessoMetodo, AcessoMetodoOuPropriedade, AcessoPropriedade } from "../../../construtos";
2
+ import { InterpretadorComDepuracao } from "../../depuracao";
3
+ export declare class InterpretadorPituguesComDepuracao extends InterpretadorComDepuracao {
4
+ visitarExpressaoAcessoMetodo(expressao: AcessoMetodo): Promise<any>;
5
+ visitarExpressaoAcessoMetodoOuPropriedade(expressao: AcessoMetodoOuPropriedade): Promise<any>;
6
+ visitarExpressaoAcessoPropriedade(expressao: AcessoPropriedade): Promise<any>;
7
+ }
8
+ //# sourceMappingURL=interpretador-pitugues-com-depuracao.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interpretador-pitugues-com-depuracao.d.ts","sourceRoot":"","sources":["../../../../fontes/interpretador/dialetos/pitugues/interpretador-pitugues-com-depuracao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAI5D,qBAAa,iCAAkC,SAAQ,yBAAyB;IAC7D,4BAA4B,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;IAInE,yCAAyC,CAAC,SAAS,EAAE,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC;IAI7F,iCAAiC,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC;CAG/F"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.InterpretadorPituguesComDepuracao = void 0;
37
+ const depuracao_1 = require("../../depuracao");
38
+ const comum = __importStar(require("./comum"));
39
+ class InterpretadorPituguesComDepuracao extends depuracao_1.InterpretadorComDepuracao {
40
+ async visitarExpressaoAcessoMetodo(expressao) {
41
+ return comum.visitarExpressaoAcessoMetodo(this, expressao);
42
+ }
43
+ async visitarExpressaoAcessoMetodoOuPropriedade(expressao) {
44
+ return comum.visitarExpressaoAcessoMetodoOuPropriedade(this, expressao);
45
+ }
46
+ async visitarExpressaoAcessoPropriedade(expressao) {
47
+ return comum.visitarExpressaoAcessoPropriedade(this, expressao);
48
+ }
49
+ }
50
+ exports.InterpretadorPituguesComDepuracao = InterpretadorPituguesComDepuracao;
51
+ //# sourceMappingURL=interpretador-pitugues-com-depuracao.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interpretador-pitugues-com-depuracao.js","sourceRoot":"","sources":["../../../../fontes/interpretador/dialetos/pitugues/interpretador-pitugues-com-depuracao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+CAA4D;AAE5D,+CAAiC;AAEjC,MAAa,iCAAkC,SAAQ,qCAAyB;IACnE,KAAK,CAAC,4BAA4B,CAAC,SAAuB;QAC/D,OAAO,KAAK,CAAC,4BAA4B,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC/D,CAAC;IAEQ,KAAK,CAAC,yCAAyC,CAAC,SAAoC;QACzF,OAAO,KAAK,CAAC,yCAAyC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC5E,CAAC;IAEQ,KAAK,CAAC,iCAAiC,CAAC,SAA4B;QACzE,OAAO,KAAK,CAAC,iCAAiC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACpE,CAAC;CACJ;AAZD,8EAYC"}
@@ -2,15 +2,6 @@ import { AcessoMetodo, AcessoMetodoOuPropriedade, AcessoPropriedade } from "../.
2
2
  import { Interpretador } from "../../interpretador";
3
3
  export declare class InterpretadorPitugues extends Interpretador {
4
4
  visitarExpressaoAcessoMetodo(expressao: AcessoMetodo): Promise<any>;
5
- /**
6
- * Casos que ocorrem aqui:
7
- *
8
- * - Quando o método ou propriedade é ou 'qualquer', ou vetor
9
- * de 'qualquer' ('qualquer[]'), e uma primitiva é usada.
10
- * - Quando o objeto é uma classe definida em código.
11
- * @param {AcessoMetodoOuPropriedade} expressao A expressão de acesso a método ou propriedade.
12
- * @returns A primitiva encontrada.
13
- */
14
5
  visitarExpressaoAcessoMetodoOuPropriedade(expressao: AcessoMetodoOuPropriedade): Promise<any>;
15
6
  visitarExpressaoAcessoPropriedade(expressao: AcessoPropriedade): Promise<any>;
16
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"interpretador-pitugues.d.ts","sourceRoot":"","sources":["../../../../fontes/interpretador/dialetos/pitugues/interpretador-pitugues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAMjG,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAUpD,qBAAa,qBAAsB,SAAQ,aAAa;IACrC,4BAA4B,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;IAmGlF;;;;;;;;OAQG;IACY,yCAAyC,CACpD,SAAS,EAAE,yBAAyB,GACrC,OAAO,CAAC,GAAG,CAAC;IA4IA,iCAAiC,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC;CAmE/F"}
1
+ {"version":3,"file":"interpretador-pitugues.d.ts","sourceRoot":"","sources":["../../../../fontes/interpretador/dialetos/pitugues/interpretador-pitugues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIpD,qBAAa,qBAAsB,SAAQ,aAAa;IACrC,4BAA4B,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;IAInE,yCAAyC,CAAC,SAAS,EAAE,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC;IAI7F,iCAAiC,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC;CAG/F"}