@designliquido/delegua-node 1.7.8 → 1.9.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 (29) hide show
  1. package/avaliador-sintatico/avaliador-sintatico-com-importacao.d.ts +22 -0
  2. package/avaliador-sintatico/avaliador-sintatico-com-importacao.d.ts.map +1 -1
  3. package/avaliador-sintatico/avaliador-sintatico-com-importacao.js +272 -17
  4. package/avaliador-sintatico/avaliador-sintatico-com-importacao.js.map +1 -1
  5. package/bin/package.json +8 -7
  6. package/interpretador/comum.d.ts +20 -9
  7. package/interpretador/comum.d.ts.map +1 -1
  8. package/interpretador/comum.js +140 -6
  9. package/interpretador/comum.js.map +1 -1
  10. package/interpretador/estruturas/classe-de-modulo.d.ts +22 -0
  11. package/interpretador/estruturas/classe-de-modulo.d.ts.map +1 -0
  12. package/interpretador/estruturas/classe-de-modulo.js +20 -0
  13. package/interpretador/estruturas/classe-de-modulo.js.map +1 -0
  14. package/interpretador/estruturas/index.d.ts +2 -0
  15. package/interpretador/estruturas/index.d.ts.map +1 -0
  16. package/interpretador/estruturas/index.js +18 -0
  17. package/interpretador/estruturas/index.js.map +1 -0
  18. package/interpretador/interpretador-com-depuracao-importacao.d.ts +5 -8
  19. package/interpretador/interpretador-com-depuracao-importacao.d.ts.map +1 -1
  20. package/interpretador/interpretador-com-depuracao-importacao.js +7 -0
  21. package/interpretador/interpretador-com-depuracao-importacao.js.map +1 -1
  22. package/interpretador/interpretador-com-importacao.d.ts +5 -8
  23. package/interpretador/interpretador-com-importacao.d.ts.map +1 -1
  24. package/interpretador/interpretador-com-importacao.js +7 -0
  25. package/interpretador/interpretador-com-importacao.js.map +1 -1
  26. package/mecanismo-importacao-bibliotecas/index.d.ts.map +1 -1
  27. package/mecanismo-importacao-bibliotecas/index.js +36 -14
  28. package/mecanismo-importacao-bibliotecas/index.js.map +1 -1
  29. package/package.json +8 -7
@@ -1,13 +1,35 @@
1
1
  import { AvaliadorSintatico, Chamada, Construto, Declaracao, Literal, RetornoAvaliadorSintatico, RetornoLexador, SimboloInterface } from "@designliquido/delegua";
2
+ import { InformacaoElementoSintatico } from "@designliquido/delegua/informacao-elemento-sintatico";
2
3
  import { ImportadorInterface } from "../interfaces";
4
+ import { ModuloDeclaracoes } from "../declaracoes";
3
5
  import { ImportarBiblioteca } from "../construtos";
6
+ import { ClasseDeModulo } from "../interpretador/estruturas";
4
7
  export declare class AvaliadorSintaticoComImportacao extends AvaliadorSintatico {
8
+ tiposDefinidosPorBibliotecas: {
9
+ [nomeTipo: string]: ClasseDeModulo;
10
+ };
5
11
  importador: ImportadorInterface<SimboloInterface>;
6
12
  arquivosImportados: string[];
7
13
  modoLair: boolean;
8
14
  constructor(importador: ImportadorInterface<SimboloInterface>);
9
15
  finalizarChamada(entidadeChamada: Construto, tipoPrimitiva?: string | undefined): Chamada;
16
+ protected importarFuncaoPadraoComoComponente(dadosComponente: any, nomeComponente: string): InformacaoElementoSintatico;
17
+ protected criarComponenteDeClasse(nomeModulo: string, nome: string, classe: any): InformacaoElementoSintatico;
10
18
  protected importarBibliotecaNode(literalCaminho: Literal): ImportarBiblioteca;
19
+ logicaComumInferenciaTiposVariaveisEConstantes(inicializador: Construto, tipo: string): string;
20
+ protected logicaComumImportacaoModulo(literalCaminho: Literal, simboloReferencia: SimboloInterface): ModuloDeclaracoes;
21
+ /**
22
+ * Quando válida, devolve a resolução do módulo como construto.
23
+ * Normalmente usada na importação dinâmica, ou seja, `var algumaCoisa = importar('caminho')`.
24
+ */
25
+ protected construtoImportar(): any;
26
+ protected localizarDeclaracaoPorNomeEmModulo(moduloDeclaracoes: ModuloDeclaracoes, nome: string, simboloReferencia: SimboloInterface): [string, Declaracao];
27
+ /**
28
+ * Quando válida, devolve a resolução do módulo como declaração de constante.
29
+ * Normalmente usada na importação estruturada, ou seja, `importar tudo de 'caminho'`,
30
+ * ou então `importar { algo, outro } de 'caminho'`.
31
+ * @returns
32
+ */
11
33
  declaracaoImportar(): any;
12
34
  /**
13
35
  * No modo LAIR, a pilha de escopos não deve ser reinicializada a cada execução.
@@ -1 +1 @@
1
- {"version":3,"file":"avaliador-sintatico-com-importacao.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico-com-importacao.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,kBAAkB,EAClB,OAAO,EAEP,SAAS,EACT,UAAU,EACV,OAAO,EACP,yBAAyB,EACzB,cAAc,EACd,gBAAgB,EACnB,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGnD,qBAAa,+BAAgC,SAAQ,kBAAkB;IACnE,UAAU,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAClD,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,EAAE,OAAO,CAAC;gBAEN,UAAU,EAAE,mBAAmB,CAAC,gBAAgB,CAAC;IAMpD,gBAAgB,CAAC,eAAe,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAiBlG,SAAS,CAAC,sBAAsB,CAAC,cAAc,EAAE,OAAO,GAAG,kBAAkB;IAgCpE,kBAAkB,IAAI,GAAG;IAmElC;;;OAGG;cACgB,uBAAuB,IAAI,IAAI;IAQzC,QAAQ,CACb,cAAc,EAAE,cAAc,CAAC,gBAAgB,CAAC,EAChD,WAAW,EAAE,MAAM,EACnB,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAC9B,yBAAyB,CAAC,UAAU,CAAC;CAI3C"}
1
+ {"version":3,"file":"avaliador-sintatico-com-importacao.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico-com-importacao.ts"],"names":[],"mappings":"AAAA,OAAO,EAMH,kBAAkB,EAClB,OAAO,EAKP,SAAS,EAET,UAAU,EAOV,OAAO,EAMP,yBAAyB,EACzB,cAAc,EAGd,gBAAgB,EAKnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,2BAA2B,EAAE,MAAM,sDAAsD,CAAC;AAMnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,qBAAa,+BAAgC,SAAQ,kBAAkB;IACnE,4BAA4B,EAAE;QAC1B,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAAC;KACtC,CAAC;IACF,UAAU,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAClD,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,EAAE,OAAO,CAAC;gBAEN,UAAU,EAAE,mBAAmB,CAAC,gBAAgB,CAAC;IAOpD,gBAAgB,CAAC,eAAe,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAmBlG,SAAS,CAAC,kCAAkC,CAAC,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM;IAiBzF,SAAS,CAAC,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,2BAA2B;IA4D7G,SAAS,CAAC,sBAAsB,CAAC,cAAc,EAAE,OAAO,GAAG,kBAAkB;IAwCpE,8CAA8C,CACnD,aAAa,EAAE,SAAS,EACxB,IAAI,EAAE,MAAM,GACb,MAAM;IAgIT,SAAS,CAAC,2BAA2B,CAAC,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,GAAG,iBAAiB;IAgFtH;;;OAGG;cACgB,iBAAiB,IAAI,GAAG;IAoB3C,SAAS,CAAC,kCAAkC,CACxC,iBAAiB,EAAE,iBAAiB,EACpC,IAAI,EAAE,MAAM,EACZ,iBAAiB,EACjB,gBAAgB,GACjB,CAAC,MAAM,EAAE,UAAU,CAAC;IAyCvB;;;;;OAKG;IACM,kBAAkB,IAAI,GAAG;IAiFlC;;;OAGG;cACgB,uBAAuB,IAAI,IAAI;IAQzC,QAAQ,CACb,cAAc,EAAE,cAAc,CAAC,gBAAgB,CAAC,EAChD,WAAW,EAAE,MAAM,EACnB,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAC9B,yBAAyB,CAAC,UAAU,CAAC;CAI3C"}
@@ -6,13 +6,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.AvaliadorSintaticoComImportacao = void 0;
7
7
  const delegua_1 = require("@designliquido/delegua");
8
8
  const informacao_elemento_sintatico_1 = require("@designliquido/delegua/informacao-elemento-sintatico");
9
+ const estruturas_1 = require("@designliquido/delegua/interpretador/estruturas");
9
10
  const delegua_2 = __importDefault(require("@designliquido/delegua/tipos-de-simbolos/delegua"));
11
+ const delegua_3 = __importDefault(require("@designliquido/delegua/tipos-de-dados/delegua"));
10
12
  const declaracoes_1 = require("../declaracoes");
11
13
  const construtos_1 = require("../construtos");
12
14
  const mecanismo_importacao_bibliotecas_1 = require("../mecanismo-importacao-bibliotecas");
15
+ const estruturas_2 = require("../interpretador/estruturas");
13
16
  class AvaliadorSintaticoComImportacao extends delegua_1.AvaliadorSintatico {
14
17
  constructor(importador) {
15
18
  super();
19
+ this.tiposDefinidosPorBibliotecas = {};
16
20
  this.arquivosImportados = [];
17
21
  this.importador = importador;
18
22
  }
@@ -25,12 +29,69 @@ class AvaliadorSintaticoComImportacao extends delegua_1.AvaliadorSintatico {
25
29
  if (objetoEntidadeChamada && objetoEntidadeChamada.simbolo.lexema in this.primitivasConhecidas) {
26
30
  const moduloCorrespondente = this.primitivasConhecidas[objetoEntidadeChamada.simbolo.lexema];
27
31
  if (entidadeChamadaResolvida.nomeMetodo in moduloCorrespondente) {
28
- chamadaResolvida.tipo = moduloCorrespondente[entidadeChamadaResolvida.nomeMetodo].tipo;
32
+ const tipoResolvido = moduloCorrespondente[entidadeChamadaResolvida.nomeMetodo].tipo;
33
+ entidadeChamadaResolvida.tipoRetornoMetodo = tipoResolvido;
34
+ chamadaResolvida.tipo = tipoResolvido;
29
35
  }
30
36
  }
31
37
  }
32
38
  return chamadaResolvida;
33
39
  }
40
+ importarFuncaoPadraoComoComponente(dadosComponente, nomeComponente) {
41
+ const dadosComponenteResolvido = dadosComponente;
42
+ const componente = new informacao_elemento_sintatico_1.InformacaoElementoSintatico(nomeComponente, dadosComponenteResolvido.tipoRetorno, true, []);
43
+ for (const argumento of dadosComponenteResolvido.argumentos) {
44
+ const elemento = new informacao_elemento_sintatico_1.InformacaoElementoSintatico(argumento.nome, argumento.tipo);
45
+ componente.subElementos.push(elemento);
46
+ }
47
+ return componente;
48
+ }
49
+ criarComponenteDeClasse(nomeModulo, nome, classe) {
50
+ const componente = new informacao_elemento_sintatico_1.InformacaoElementoSintatico(nome, 'classe', false, []);
51
+ // Processar métodos
52
+ if (classe.metodos) {
53
+ for (const [nomeMetodo, dadosMetodo] of Object.entries(classe.metodos)) {
54
+ if (dadosMetodo instanceof estruturas_1.FuncaoPadrao) {
55
+ const metodo = dadosMetodo;
56
+ const elemMetodo = new informacao_elemento_sintatico_1.InformacaoElementoSintatico(nomeMetodo, metodo.tipoRetorno, true, []);
57
+ for (const arg of metodo.argumentos) {
58
+ const argElem = new informacao_elemento_sintatico_1.InformacaoElementoSintatico(arg.nome, arg.tipo);
59
+ elemMetodo.subElementos.push(argElem);
60
+ }
61
+ componente.subElementos.push(elemMetodo);
62
+ }
63
+ else if (dadosMetodo instanceof estruturas_2.ClasseDeModulo) {
64
+ // Método que retorna/é uma classe de módulo: recursão
65
+ const componenteDeClasseDerivado = this.criarComponenteDeClasse(nomeModulo, nomeMetodo, dadosMetodo);
66
+ this.primitivasConhecidas[nomeModulo][nomeMetodo] = componenteDeClasseDerivado;
67
+ componente.subElementos.push(componenteDeClasseDerivado);
68
+ }
69
+ else {
70
+ // Caso genérico: tentar inferir tipo
71
+ const tipoMetodo = (dadosMetodo && dadosMetodo.tipoRetorno) || 'qualquer';
72
+ componente.subElementos.push(new informacao_elemento_sintatico_1.InformacaoElementoSintatico(nomeMetodo, tipoMetodo, true, []));
73
+ }
74
+ }
75
+ }
76
+ // Processar propriedades
77
+ if (classe.propriedades) {
78
+ for (const [nomeProp, dadosProp] of Object.entries(classe.propriedades)) {
79
+ if (dadosProp instanceof estruturas_2.ClasseDeModulo) {
80
+ const nested = this.criarComponenteDeClasse(nomeModulo, nomeProp, dadosProp);
81
+ // Registrar a classe interna também nas primitivas do módulo
82
+ this.primitivasConhecidas[nomeModulo][nomeProp] = nested;
83
+ componente.subElementos.push(nested);
84
+ }
85
+ else {
86
+ // Se for um descriptor simples ou tipo primitivo
87
+ const tipoProp = (dadosProp && dadosProp.tipo) || (typeof dadosProp === 'string' ? dadosProp : 'qualquer');
88
+ componente.subElementos.push(new informacao_elemento_sintatico_1.InformacaoElementoSintatico(nomeProp, tipoProp, false, []));
89
+ }
90
+ }
91
+ }
92
+ return componente;
93
+ }
94
+ ;
34
95
  importarBibliotecaNode(literalCaminho) {
35
96
  const bibliotecaResolvida = (0, mecanismo_importacao_bibliotecas_1.verificarModulosDelegua)(literalCaminho.valor);
36
97
  if (bibliotecaResolvida) {
@@ -38,31 +99,128 @@ class AvaliadorSintaticoComImportacao extends delegua_1.AvaliadorSintatico {
38
99
  this.primitivasConhecidas[literalCaminho.valor] = {};
39
100
  for (const [nomeComponente, dadosComponente] of Object.entries(moduloResolvido.componentes)) {
40
101
  // TODO: Verificar se sempre é o caso de ser função padrão.
41
- const dadosComponenteResolvido = dadosComponente;
42
- const componente = new informacao_elemento_sintatico_1.InformacaoElementoSintatico(nomeComponente, dadosComponenteResolvido.tipoRetorno, true, []);
43
- for (const argumento of dadosComponenteResolvido.argumentos) {
44
- const elemento = new informacao_elemento_sintatico_1.InformacaoElementoSintatico(argumento.nome, argumento.tipo);
45
- componente.subElementos.push(elemento);
102
+ let componente;
103
+ if (dadosComponente instanceof estruturas_1.FuncaoPadrao) {
104
+ componente = this.importarFuncaoPadraoComoComponente(dadosComponente, nomeComponente);
105
+ }
106
+ else if (dadosComponente instanceof estruturas_2.ClasseDeModulo) {
107
+ const classeModulo = dadosComponente;
108
+ componente = this.criarComponenteDeClasse(literalCaminho.valor, nomeComponente, classeModulo);
109
+ // Registrar também a própria classe (a atribuição ao mapa acontece mais adiante,
110
+ // mas garantir que exista agora caso recursão precise dela)
111
+ this.primitivasConhecidas[literalCaminho.valor] = this.primitivasConhecidas[literalCaminho.valor] || {};
112
+ this.primitivasConhecidas[literalCaminho.valor][nomeComponente] = componente;
113
+ this.tiposDefinidosPorBibliotecas[nomeComponente] = classeModulo;
114
+ }
115
+ else {
116
+ throw this.erro({
117
+ hashArquivo: literalCaminho.hashArquivo, linha: literalCaminho.linha
118
+ }, `Tipo de importação inválida: ${JSON.stringify(dadosComponente)}.`);
46
119
  }
47
120
  this.primitivasConhecidas[literalCaminho.valor][nomeComponente] = componente;
48
121
  }
49
122
  }
50
123
  return new construtos_1.ImportarBiblioteca(literalCaminho.hashArquivo, literalCaminho.linha, literalCaminho.valor);
51
124
  }
52
- declaracaoImportar() {
53
- this.consumir(delegua_2.default.PARENTESE_ESQUERDO, "Esperado '(' após declaração.");
54
- const caminho = this.expressao();
55
- const simboloFechamento = this.consumir(delegua_2.default.PARENTESE_DIREITO, "Esperado ')' após declaração.");
56
- // Chegando aqui sem erros, a importação é sintaticamente válida.
57
- const literalCaminho = caminho;
58
- if (!literalCaminho.valor.endsWith('.delegua')) {
59
- return this.importarBibliotecaNode(literalCaminho);
125
+ // TODO: Apagar na próxima versão do núcleo.
126
+ logicaComumInferenciaTiposVariaveisEConstantes(inicializador, tipo) {
127
+ if (tipo !== 'qualquer') {
128
+ return tipo;
129
+ }
130
+ switch (inicializador.constructor) {
131
+ case delegua_1.AcessoIndiceVariavel:
132
+ const entidadeChamadaAcessoIndiceVariavel = inicializador
133
+ .entidadeChamada;
134
+ // Este condicional ocorre com chamadas aninhadas. Por exemplo, `vetor[1][2]`.
135
+ if (entidadeChamadaAcessoIndiceVariavel.constructor === delegua_1.AcessoIndiceVariavel) {
136
+ return this.logicaComumInferenciaTiposVariaveisEConstantes(entidadeChamadaAcessoIndiceVariavel, tipo);
137
+ }
138
+ if (entidadeChamadaAcessoIndiceVariavel.tipo.endsWith('[]')) {
139
+ return entidadeChamadaAcessoIndiceVariavel.tipo.slice(0, -2);
140
+ }
141
+ // Normalmente, `entidadeChamadaAcessoIndiceVariavel.tipo` aqui será 'vetor'.
142
+ return 'qualquer';
143
+ case delegua_1.Chamada:
144
+ const entidadeChamadaChamada = inicializador.entidadeChamada;
145
+ switch (entidadeChamadaChamada.constructor) {
146
+ case delegua_1.AcessoMetodo:
147
+ const entidadeChamadaAcessoMetodo = entidadeChamadaChamada;
148
+ const tipoRetornoAcessoMetodoResolvido = entidadeChamadaAcessoMetodo.tipoRetornoMetodo.replace('<T>', entidadeChamadaAcessoMetodo.objeto.tipo);
149
+ return tipoRetornoAcessoMetodoResolvido;
150
+ case delegua_1.AcessoMetodoOuPropriedade:
151
+ const entidadeChamadaAcessoMetodoOuPropriedade = entidadeChamadaChamada;
152
+ // Algumas coisas podem acontecer aqui.
153
+ // Uma delas é a variável/constante ser uma classe padrão.
154
+ // Isso ocorre quando a importação é feita de uma biblioteca Node.js.
155
+ // Nesse caso, o tipo de `entidadeChamadaAcessoMetodoOuPropriedade.objeto` começa com uma letra maiúscula.
156
+ if (entidadeChamadaAcessoMetodoOuPropriedade.objeto.tipo.match(/^[A-Z]/)) {
157
+ const tipoCorrespondente = this.tiposDefinidosPorBibliotecas[entidadeChamadaAcessoMetodoOuPropriedade.objeto.tipo];
158
+ if (!tipoCorrespondente) {
159
+ throw new delegua_1.ErroAvaliadorSintatico(entidadeChamadaAcessoMetodoOuPropriedade.simbolo, `Tipo '${entidadeChamadaAcessoMetodoOuPropriedade.objeto.tipo}' não foi encontrado entre os tipos definidos por bibliotecas.`);
160
+ }
161
+ if (!(entidadeChamadaAcessoMetodoOuPropriedade.simbolo.lexema in tipoCorrespondente.metodos) &&
162
+ !(entidadeChamadaAcessoMetodoOuPropriedade.simbolo.lexema in tipoCorrespondente.propriedades)) {
163
+ throw new delegua_1.ErroAvaliadorSintatico(entidadeChamadaAcessoMetodoOuPropriedade.simbolo, `Membro '${entidadeChamadaAcessoMetodoOuPropriedade.simbolo.lexema}' não existe no tipo '${entidadeChamadaAcessoMetodoOuPropriedade.objeto.tipo}'.`);
164
+ }
165
+ if (entidadeChamadaAcessoMetodoOuPropriedade.simbolo.lexema in tipoCorrespondente.metodos) {
166
+ return tipoCorrespondente.metodos[entidadeChamadaAcessoMetodoOuPropriedade.simbolo.lexema].tipo;
167
+ }
168
+ return tipoCorrespondente.propriedades[entidadeChamadaAcessoMetodoOuPropriedade.simbolo.lexema].tipo;
169
+ }
170
+ // Este caso ocorre quando a variável/constante é do tipo 'qualquer',
171
+ // e a chamada normalmente é feita para uma primitiva.
172
+ // A inferência, portanto, ocorre pelo uso da primitiva.
173
+ for (const primitiva in this.primitivasConhecidas) {
174
+ if (this.primitivasConhecidas[primitiva].hasOwnProperty(entidadeChamadaAcessoMetodoOuPropriedade.simbolo.lexema)) {
175
+ return this.primitivasConhecidas[primitiva][entidadeChamadaAcessoMetodoOuPropriedade.simbolo.lexema].tipo;
176
+ }
177
+ }
178
+ throw new delegua_1.ErroAvaliadorSintatico(entidadeChamadaAcessoMetodoOuPropriedade.simbolo, `Primitiva '${entidadeChamadaAcessoMetodoOuPropriedade.simbolo.lexema}' não existe.`);
179
+ case delegua_1.AcessoPropriedade:
180
+ const entidadeChamadaAcessoPropriedade = entidadeChamadaChamada;
181
+ return entidadeChamadaAcessoPropriedade.tipoRetornoPropriedade;
182
+ case delegua_1.ArgumentoReferenciaFuncao:
183
+ // TODO: Voltar aqui se necessário.
184
+ return 'qualquer';
185
+ case delegua_1.ReferenciaFuncao:
186
+ const entidadeChamadaReferenciaFuncao = entidadeChamadaChamada;
187
+ return entidadeChamadaReferenciaFuncao.tipo;
188
+ case delegua_1.Variavel:
189
+ const entidadeChamadaVariavel = entidadeChamadaChamada;
190
+ return entidadeChamadaVariavel.tipo;
191
+ }
192
+ break;
193
+ case delegua_1.FuncaoConstruto:
194
+ const funcaoConstruto = inicializador;
195
+ return `função<${funcaoConstruto.tipo}>`;
196
+ case delegua_1.Leia:
197
+ return 'texto';
198
+ case delegua_1.Dupla:
199
+ case delegua_1.Trio:
200
+ case delegua_1.Quarteto:
201
+ case delegua_1.Quinteto:
202
+ case delegua_1.Sexteto:
203
+ case delegua_1.Septeto:
204
+ case delegua_1.Octeto:
205
+ case delegua_1.Noneto:
206
+ case delegua_1.Deceto:
207
+ return delegua_3.default.TUPLA;
208
+ default:
209
+ // Construtos mapeados em `delegua-node`.
210
+ switch (inicializador.constructor.name) {
211
+ case 'ImportarBiblioteca':
212
+ case 'ModuloDeclaracoes':
213
+ return 'módulo';
214
+ }
215
+ return inicializador.tipo;
60
216
  }
61
- const resultadoImportacao = this.importador.importar(literalCaminho.valor, caminho.hashArquivo);
217
+ }
218
+ logicaComumImportacaoModulo(literalCaminho, simboloReferencia) {
219
+ const resultadoImportacao = this.importador.importar(literalCaminho.valor, literalCaminho.hashArquivo);
62
220
  // Havendo erros no lexador, levantamos um erro de avaliação sintática na
63
221
  // importação.
64
222
  if (resultadoImportacao.retornoLexador.erros.length > 0) {
65
- throw this.erro(simboloFechamento, `Erros encontrados ao importar o arquivo ${literalCaminho.valor}: ${resultadoImportacao.retornoLexador.erros.reduce((acumulado, proximo) => (acumulado += proximo.mensagem + "; "), "")}`);
223
+ throw this.erro(simboloReferencia, `Erros encontrados ao importar o arquivo ${literalCaminho.valor}: ${resultadoImportacao.retornoLexador.erros.reduce((acumulado, proximo) => (acumulado += proximo.mensagem + "; "), "")}`);
66
224
  }
67
225
  const avaliadorSintaticoModulo = new AvaliadorSintaticoComImportacao(this.importador);
68
226
  const resultadoAvaliacaoSintaticaModulo = avaliadorSintaticoModulo.analisar(resultadoImportacao.retornoLexador, resultadoImportacao.hashArquivo, this.arquivosImportados);
@@ -72,7 +230,104 @@ class AvaliadorSintaticoComImportacao extends delegua_1.AvaliadorSintatico {
72
230
  this.tiposDefinidosEmCodigo[definicaoClasse.simbolo.lexema] =
73
231
  definicaoClasse;
74
232
  }
75
- return new declaracoes_1.ModuloDeclaracoes(simboloFechamento.linha, simboloFechamento.hashArquivo, [], resultadoAvaliacaoSintaticaModulo.declaracoes);
233
+ // Referências de funções registradas no avaliador sintático do módulo importado
234
+ // precisam ser registradas também no avaliador sintático atual.
235
+ for (const elementoPilha of avaliadorSintaticoModulo.pilhaEscopos.pilha) {
236
+ for (const referenciaFuncao of Object.entries(elementoPilha.referenciasFuncoes)) {
237
+ this.pilhaEscopos.registrarReferenciaFuncao(referenciaFuncao[0], referenciaFuncao[1]);
238
+ const variavelCorrespondente = elementoPilha.elementosSintaticos[referenciaFuncao[0]];
239
+ if (!variavelCorrespondente) {
240
+ throw this.erro(simboloReferencia, `Erro interno na importação do módulo '${literalCaminho.valor}': a função '${referenciaFuncao[0]}' não foi encontrada entre as variáveis do escopo.`);
241
+ }
242
+ this.pilhaEscopos.definirInformacoesVariavel(referenciaFuncao[0], new informacao_elemento_sintatico_1.InformacaoElementoSintatico(referenciaFuncao[0], variavelCorrespondente.tipo, true, []));
243
+ }
244
+ }
245
+ return new declaracoes_1.ModuloDeclaracoes(simboloReferencia.linha, simboloReferencia.hashArquivo, [], resultadoAvaliacaoSintaticaModulo.declaracoes);
246
+ }
247
+ /**
248
+ * Quando válida, devolve a resolução do módulo como construto.
249
+ * Normalmente usada na importação dinâmica, ou seja, `var algumaCoisa = importar('caminho')`.
250
+ */
251
+ construtoImportar() {
252
+ const simboloAbertura = this.consumir(delegua_2.default.PARENTESE_ESQUERDO, "Esperado '(' após declaração.");
253
+ const caminho = this.expressao();
254
+ this.consumir(delegua_2.default.PARENTESE_DIREITO, "Esperado ')' após declaração.");
255
+ // Chegando aqui sem erros, a importação é sintaticamente válida.
256
+ const literalCaminho = caminho;
257
+ if (!literalCaminho.valor.endsWith('.delegua')) {
258
+ return this.importarBibliotecaNode(literalCaminho);
259
+ }
260
+ return this.logicaComumImportacaoModulo(literalCaminho, simboloAbertura);
261
+ }
262
+ localizarDeclaracaoPorNomeEmModulo(moduloDeclaracoes, nome, simboloReferencia) {
263
+ for (const declaracao of moduloDeclaracoes.declaracoes) {
264
+ switch (declaracao.constructor) {
265
+ case delegua_1.Classe:
266
+ const declaracaoClasse = declaracao;
267
+ if (declaracaoClasse.simbolo.lexema === nome) {
268
+ return [declaracaoClasse.simbolo.lexema, declaracaoClasse];
269
+ }
270
+ break;
271
+ case delegua_1.Comentario:
272
+ continue;
273
+ case delegua_1.Const:
274
+ const declaracaoConst = declaracao;
275
+ if (declaracaoConst.simbolo.lexema === nome) {
276
+ return [declaracaoConst.tipo, declaracaoConst];
277
+ }
278
+ break;
279
+ case delegua_1.FuncaoDeclaracao:
280
+ const declaracaoFuncao = declaracao;
281
+ if (declaracaoFuncao.simbolo.lexema === nome) {
282
+ return [declaracaoFuncao.tipo, declaracaoFuncao];
283
+ }
284
+ break;
285
+ case delegua_1.Var:
286
+ const declaracaoVar = declaracao;
287
+ if (declaracaoVar.simbolo.lexema === nome) {
288
+ return [declaracaoVar.tipo, declaracaoVar];
289
+ }
290
+ break;
291
+ default:
292
+ console.warn(`Declaração de tipo desconhecido na importação estruturada: ${declaracao.constructor.name}.`);
293
+ break;
294
+ }
295
+ }
296
+ throw this.erro(simboloReferencia, `O elemento '${nome}' não foi encontrado no módulo importado.`);
297
+ }
298
+ /**
299
+ * Quando válida, devolve a resolução do módulo como declaração de constante.
300
+ * Normalmente usada na importação estruturada, ou seja, `importar tudo de 'caminho'`,
301
+ * ou então `importar { algo, outro } de 'caminho'`.
302
+ * @returns
303
+ */
304
+ declaracaoImportar() {
305
+ const declaracaoResolvida = super.declaracaoImportar();
306
+ const literalCaminho = declaracaoResolvida.caminho;
307
+ if (declaracaoResolvida.simboloTudo !== null && declaracaoResolvida.simboloTudo !== undefined) {
308
+ if (!literalCaminho.valor.endsWith('.delegua')) {
309
+ return this.importarBibliotecaNode(literalCaminho);
310
+ }
311
+ const moduloDeclaracoes = this.logicaComumImportacaoModulo(literalCaminho, declaracaoResolvida.simboloTudo);
312
+ this.pilhaEscopos.definirInformacoesVariavel(declaracaoResolvida.simboloTudo.lexema, new informacao_elemento_sintatico_1.InformacaoElementoSintatico(declaracaoResolvida.simboloTudo.lexema, 'módulo'));
313
+ return new delegua_1.Const(declaracaoResolvida.simboloTudo, moduloDeclaracoes, 'módulo', true, declaracaoResolvida.decoradores);
314
+ }
315
+ if (declaracaoResolvida.elementosImportacao.length === 0) {
316
+ throw this.erro({ hashArquivo: literalCaminho.hashArquivo, linha: literalCaminho.linha }, "Erro interno na importação estruturada: nenhum elemento para importar.");
317
+ }
318
+ // No caso da desestruturação de valores de módulo, criamos um nome provisório para o módulo
319
+ // e uma declaração de constante para cada nome mencionado na desestruturação.
320
+ const moduloDeclaracoes = this.logicaComumImportacaoModulo(literalCaminho, declaracaoResolvida.elementosImportacao[0]);
321
+ const constantesImportadas = [];
322
+ const nomeReservadoModulo = `${literalCaminho.hashArquivo}_${literalCaminho.linha}_modulo`;
323
+ const simboloReservadoModulo = { lexema: nomeReservadoModulo, hashArquivo: literalCaminho.hashArquivo, linha: literalCaminho.linha };
324
+ constantesImportadas.push(new delegua_1.Const(simboloReservadoModulo, moduloDeclaracoes, 'módulo', true, declaracaoResolvida.decoradores));
325
+ for (const simboloImportacao of declaracaoResolvida.elementosImportacao) {
326
+ const declaracaoCorrespondente = this.localizarDeclaracaoPorNomeEmModulo(moduloDeclaracoes, simboloImportacao.lexema, simboloImportacao);
327
+ this.pilhaEscopos.definirInformacoesVariavel(simboloImportacao.lexema, new informacao_elemento_sintatico_1.InformacaoElementoSintatico(simboloImportacao.lexema, declaracaoCorrespondente[0]));
328
+ constantesImportadas.push(new delegua_1.Const(simboloImportacao, new delegua_1.AcessoMetodo(simboloImportacao.hashArquivo, new delegua_1.Variavel(simboloImportacao.hashArquivo, simboloReservadoModulo, 'módulo'), simboloImportacao.lexema), declaracaoCorrespondente[0], true, []));
329
+ }
330
+ return constantesImportadas;
76
331
  }
77
332
  /**
78
333
  * No modo LAIR, a pilha de escopos não deve ser reinicializada a cada execução.
@@ -1 +1 @@
1
- {"version":3,"file":"avaliador-sintatico-com-importacao.js","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico-com-importacao.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"avaliador-sintatico-com-importacao.js","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico-com-importacao.ts"],"names":[],"mappings":"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"}
package/bin/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@designliquido/delegua-node",
3
- "version": "1.7.7",
3
+ "version": "1.8.0",
4
4
  "description": "Linguagem Delégua com capacidades para ecossistema Node.js.",
5
5
  "scripts": {
6
6
  "empacotar": "yarn rimraf ./dist && tsc && yarn copyfiles -V ./bin/delegua ./bin/delegua.cmd ./dist && yarn copyfiles -V ./package.json ./dist/bin && yarn copyfiles -V ./README.md ./dist && yarn copyfiles -V ./LICENSE ./dist",
@@ -12,17 +12,18 @@
12
12
  "testes:servidor-depuracao": "yarn ts-node ./fontes/depuracao/servidor-depuracao.ts"
13
13
  },
14
14
  "dependencies": {
15
- "@designliquido/birl": "^0.2.5",
16
- "@designliquido/delegua": "^0.54.3",
17
- "@designliquido/mapler": "^0.2.5",
18
- "@designliquido/portugol-studio": "^0.5.5",
19
- "@designliquido/potigol": "^0.4.5",
20
- "@designliquido/visualg": "^0.4.5",
15
+ "@designliquido/birl": "^0.2.9",
16
+ "@designliquido/delegua": "^0.56.0",
17
+ "@designliquido/mapler": "^0.2.10",
18
+ "@designliquido/portugol-studio": "^0.5.9",
19
+ "@designliquido/potigol": "^0.4.10",
20
+ "@designliquido/visualg": "^0.4.10",
21
21
  "chalk": "4.1.2",
22
22
  "commander": "^14.0.0",
23
23
  "json-colorizer": "^3.0.1"
24
24
  },
25
25
  "devDependencies": {
26
+ "@designliquido/delegua-arquivos": "^0.0.3",
26
27
  "@designliquido/delegua-estatistica": "^0.1.0",
27
28
  "@designliquido/delegua-fisica": "^0.1.0",
28
29
  "@designliquido/delegua-http": "^0.1.2",
@@ -1,15 +1,26 @@
1
1
  import { DeleguaModulo } from "@designliquido/delegua/interpretador/estruturas";
2
- import { FuncaoDeclaracao } from "@designliquido/delegua/declaracoes";
2
+ import { Const, FuncaoDeclaracao } from "@designliquido/delegua/declaracoes";
3
+ import { AcessoMetodoOuPropriedade } from "@designliquido/delegua/construtos";
3
4
  import { ImportarBiblioteca } from "../construtos";
4
5
  import { ModuloDeclaracoes } from "../declaracoes";
5
6
  import { InterpretadorComImportacaoInterface } from "../interfaces/interpretador-com-importacao-interface";
6
- export declare function visitarConstrutoImportarBiblioteca(_: InterpretadorComImportacaoInterface, importarBiblioteca: ImportarBiblioteca): Promise<DeleguaModulo>;
7
- export declare function visitarDeclaracaoDefinicaoFuncao(interpretador: InterpretadorComImportacaoInterface, funcaoDeclaracao: FuncaoDeclaracao): {
8
- id: string;
9
- nome: string;
10
- operacao: string;
11
- tipo: string;
12
- tipoExplicito: boolean;
13
- };
7
+ export declare function visitarConstrutoImportarBiblioteca(interpretador: InterpretadorComImportacaoInterface, importarBiblioteca: ImportarBiblioteca): Promise<DeleguaModulo>;
8
+ /**
9
+ * Executa expressão de definição de constante.
10
+ * @param declaracao A declaração `Const`.
11
+ * @returns Um descritor de informações importantes para o retorno externo.
12
+ */
13
+ export declare function visitarDeclaracaoConst(interpretador: InterpretadorComImportacaoInterface, declaracao: Const): Promise<any>;
14
+ export declare function visitarDeclaracaoDefinicaoFuncao(interpretador: InterpretadorComImportacaoInterface, funcaoDeclaracao: FuncaoDeclaracao): Promise<any>;
14
15
  export declare function visitarDeclaracaoModuloDeclaracoes(interpretador: InterpretadorComImportacaoInterface, declaracao: ModuloDeclaracoes): Promise<DeleguaModulo>;
16
+ /**
17
+ * Casos que ocorrem aqui:
18
+ *
19
+ * - Quando o método ou propriedade é ou 'qualquer', ou vetor
20
+ * de 'qualquer' ('qualquer[]'), e uma primitiva é usada.
21
+ * - Quando o objeto é uma classe definida em código.
22
+ * @param {AcessoMetodoOuPropriedade} expressao A expressão de acesso a método ou propriedade.
23
+ * @returns A primitiva encontrada.
24
+ */
25
+ export declare function visitarExpressaoAcessoMetodoOuPropriedade(interpretador: InterpretadorComImportacaoInterface, expressao: AcessoMetodoOuPropriedade): Promise<any>;
15
26
  //# sourceMappingURL=comum.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"comum.d.ts","sourceRoot":"","sources":["../../fontes/interpretador/comum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,mCAAmC,EAAE,MAAM,sDAAsD,CAAC;AAI3G,wBAAsB,kCAAkC,CACpD,CAAC,EAAE,mCAAmC,EACtC,kBAAkB,EAAE,kBAAkB,0BAQzC;AAED,wBAAgB,gCAAgC,CAC5C,aAAa,EAAE,mCAAmC,EAClD,gBAAgB,EAAE,gBAAgB;;;;;;EAarC;AAED,wBAAsB,kCAAkC,CACpD,aAAa,EAAE,mCAAmC,EAClD,UAAU,EAAE,iBAAiB,0BA0BhC"}
1
+ {"version":3,"file":"comum.d.ts","sourceRoot":"","sources":["../../fontes/interpretador/comum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,aAAa,EAAwC,MAAM,iDAAiD,CAAC;AACrI,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAa9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,mCAAmC,EAAE,MAAM,sDAAsD,CAAC;AAI3G,wBAAsB,kCAAkC,CACpD,aAAa,EAAE,mCAAmC,EAClD,kBAAkB,EAAE,kBAAkB,0BAQzC;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CACxC,aAAa,EAAE,mCAAmC,EAClD,UAAU,EAAE,KAAK,GAClB,OAAO,CAAC,GAAG,CAAC,CAoBd;AAED,wBAAsB,gCAAgC,CAClD,aAAa,EAAE,mCAAmC,EAClD,gBAAgB,EAAE,gBAAgB,GACnC,OAAO,CAAC,GAAG,CAAC,CAcd;AAED,wBAAsB,kCAAkC,CACpD,aAAa,EAAE,mCAAmC,EAClD,UAAU,EAAE,iBAAiB,0BA0BhC;AAED;;;;;;;;GAQG;AACH,wBAAsB,yCAAyC,CAC3D,aAAa,EAAE,mCAAmC,EAClD,SAAS,EAAE,yBAAyB,GACrC,OAAO,CAAC,GAAG,CAAC,CA2Hd"}
@@ -4,31 +4,60 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.visitarConstrutoImportarBiblioteca = visitarConstrutoImportarBiblioteca;
7
+ exports.visitarDeclaracaoConst = visitarDeclaracaoConst;
7
8
  exports.visitarDeclaracaoDefinicaoFuncao = visitarDeclaracaoDefinicaoFuncao;
8
9
  exports.visitarDeclaracaoModuloDeclaracoes = visitarDeclaracaoModuloDeclaracoes;
10
+ exports.visitarExpressaoAcessoMetodoOuPropriedade = visitarExpressaoAcessoMetodoOuPropriedade;
9
11
  const estruturas_1 = require("@designliquido/delegua/interpretador/estruturas");
12
+ const quebras_1 = require("@designliquido/delegua/quebras");
13
+ const excecoes_1 = require("@designliquido/delegua/excecoes");
14
+ const inferenciador_1 = require("@designliquido/delegua/inferenciador");
15
+ const primitivas_dicionario_1 = __importDefault(require("@designliquido/delegua/bibliotecas/primitivas-dicionario"));
16
+ const primitivas_numero_1 = __importDefault(require("@designliquido/delegua/bibliotecas/primitivas-numero"));
17
+ const primitivas_texto_1 = __importDefault(require("@designliquido/delegua/bibliotecas/primitivas-texto"));
18
+ const primitivas_vetor_1 = __importDefault(require("@designliquido/delegua/bibliotecas/primitivas-vetor"));
19
+ const delegua_1 = __importDefault(require("@designliquido/delegua/tipos-de-dados/delegua"));
10
20
  const mecanismo_importacao_bibliotecas_1 = __importDefault(require("../mecanismo-importacao-bibliotecas"));
11
- async function visitarConstrutoImportarBiblioteca(_, importarBiblioteca) {
21
+ async function visitarConstrutoImportarBiblioteca(interpretador, importarBiblioteca) {
12
22
  try {
13
23
  return await (0, mecanismo_importacao_bibliotecas_1.default)(importarBiblioteca.nomeBiblioteca);
14
24
  }
15
25
  catch (erro) {
16
- this.erros.push(erro);
26
+ interpretador.erros.push(erro);
17
27
  return null;
18
28
  }
19
29
  }
20
- function visitarDeclaracaoDefinicaoFuncao(interpretador, funcaoDeclaracao) {
30
+ /**
31
+ * Executa expressão de definição de constante.
32
+ * @param declaracao A declaração `Const`.
33
+ * @returns Um descritor de informações importantes para o retorno externo.
34
+ */
35
+ async function visitarDeclaracaoConst(interpretador, declaracao) {
36
+ const valorFinal = await interpretador.avaliacaoDeclaracaoVarOuConst(declaracao);
37
+ if (valorFinal && valorFinal.hasOwnProperty('operacao') && valorFinal.operacao === 'DefinicaoFuncao') {
38
+ interpretador.pilhaEscoposExecucao.definirConstante(declaracao.simbolo.lexema, valorFinal.declaracao, declaracao.tipo);
39
+ }
40
+ else {
41
+ interpretador.pilhaEscoposExecucao.definirConstante(declaracao.simbolo.lexema, valorFinal, declaracao.tipo);
42
+ }
43
+ return {
44
+ tipo: declaracao.tipo,
45
+ tipoExplicito: declaracao.tipoExplicito,
46
+ };
47
+ }
48
+ async function visitarDeclaracaoDefinicaoFuncao(interpretador, funcaoDeclaracao) {
21
49
  const funcao = new estruturas_1.DeleguaFuncao(funcaoDeclaracao.simbolo.lexema, funcaoDeclaracao.funcao);
22
- // TODO: Depreciar essa abordagem a favor do uso por referências.
50
+ // TODO: Depreciar essa abordagem a favor do uso por referências?
23
51
  interpretador.pilhaEscoposExecucao.definirVariavel(funcaoDeclaracao.simbolo.lexema, funcao);
24
52
  interpretador.pilhaEscoposExecucao.registrarReferenciaFuncao(funcaoDeclaracao.id, funcao);
25
- return {
53
+ return Promise.resolve({
26
54
  id: funcaoDeclaracao.id,
27
55
  nome: funcaoDeclaracao.simbolo.lexema,
28
56
  operacao: 'DefinicaoFuncao',
29
57
  tipo: `função<${funcao.declaracao.tipo || 'qualquer'}>`,
30
58
  tipoExplicito: funcao.declaracao.tipoExplicito,
31
- };
59
+ declaracao: funcao
60
+ });
32
61
  }
33
62
  async function visitarDeclaracaoModuloDeclaracoes(interpretador, declaracao) {
34
63
  // TODO: Colocar nome em `ModuloDeclaracoes`.
@@ -54,4 +83,109 @@ async function visitarDeclaracaoModuloDeclaracoes(interpretador, declaracao) {
54
83
  }
55
84
  return modulo;
56
85
  }
86
+ /**
87
+ * Casos que ocorrem aqui:
88
+ *
89
+ * - Quando o método ou propriedade é ou 'qualquer', ou vetor
90
+ * de 'qualquer' ('qualquer[]'), e uma primitiva é usada.
91
+ * - Quando o objeto é uma classe definida em código.
92
+ * @param {AcessoMetodoOuPropriedade} expressao A expressão de acesso a método ou propriedade.
93
+ * @returns A primitiva encontrada.
94
+ */
95
+ async function visitarExpressaoAcessoMetodoOuPropriedade(interpretador, expressao) {
96
+ const nomeObjeto = interpretador.resolverNomeObjectoAcessado(expressao.objeto);
97
+ let variavelObjeto = await interpretador.avaliar(expressao.objeto);
98
+ // Este caso acontece quando há encadeamento de métodos.
99
+ // Por exemplo, `objeto1.metodo1().metodo2()`.
100
+ // Como `RetornoQuebra` também possui `valor`, precisamos extrair o
101
+ // valor dele primeiro.
102
+ if (variavelObjeto.constructor === quebras_1.RetornoQuebra) {
103
+ const retornoQuebra = variavelObjeto;
104
+ variavelObjeto = retornoQuebra.valor;
105
+ }
106
+ const objeto = interpretador.resolverValor(variavelObjeto, true);
107
+ if (objeto.constructor === estruturas_1.ObjetoDeleguaClasse) {
108
+ return objeto.obter(expressao.simbolo);
109
+ }
110
+ // Objeto simples do JavaScript, ou dicionário de Delégua.
111
+ if (objeto.constructor === Object) {
112
+ if (expressao.simbolo.lexema in primitivas_dicionario_1.default) {
113
+ if (!(expressao.simbolo.lexema in primitivas_numero_1.default)) {
114
+ throw new excecoes_1.ErroEmTempoDeExecucao(expressao.simbolo, `Método de primitiva '${expressao.simbolo.lexema}' não existe para o tipo dicionário.`);
115
+ }
116
+ const metodoDePrimitivaDicionario = primitivas_dicionario_1.default[expressao.simbolo.lexema].implementacao;
117
+ return new estruturas_1.MetodoPrimitiva(nomeObjeto, objeto, metodoDePrimitivaDicionario);
118
+ }
119
+ return objeto[expressao.simbolo.lexema];
120
+ }
121
+ // String do JavaScript, ou seja, primitiva de texto.
122
+ if (objeto.constructor === String) {
123
+ if (!(expressao.simbolo.lexema in primitivas_texto_1.default)) {
124
+ throw new excecoes_1.ErroEmTempoDeExecucao(expressao.simbolo, `Método de primitiva '${expressao.simbolo.lexema}' não existe para o tipo texto.`);
125
+ }
126
+ const metodoDePrimitivaTexto = primitivas_texto_1.default[expressao.simbolo.lexema].implementacao;
127
+ return new estruturas_1.MetodoPrimitiva(nomeObjeto, objeto, metodoDePrimitivaTexto);
128
+ }
129
+ // A partir daqui, presume-se que o objeto é uma das estruturas
130
+ // de Delégua.
131
+ if (objeto instanceof estruturas_1.DeleguaModulo) {
132
+ return objeto.componentes[expressao.simbolo.lexema] || null;
133
+ }
134
+ let tipoObjeto = variavelObjeto.tipo;
135
+ if (tipoObjeto === null || tipoObjeto === undefined) {
136
+ tipoObjeto = (0, inferenciador_1.inferirTipoVariavel)(variavelObjeto);
137
+ }
138
+ // Como internamente um dicionário de Delégua é simplesmente um objeto de
139
+ // JavaScript, as primitivas de dicionário, especificamente, são tratadas
140
+ // mais acima.
141
+ switch (tipoObjeto) {
142
+ case delegua_1.default.INTEIRO:
143
+ case delegua_1.default.NUMERO:
144
+ case delegua_1.default.NÚMERO:
145
+ if (!(expressao.simbolo.lexema in primitivas_numero_1.default)) {
146
+ throw new excecoes_1.ErroEmTempoDeExecucao(expressao.simbolo, `Método de primitiva '${expressao.simbolo.lexema}' não existe para o tipo ${tipoObjeto}.`);
147
+ }
148
+ const metodoDePrimitivaNumero = primitivas_numero_1.default[expressao.simbolo.lexema].implementacao;
149
+ if (metodoDePrimitivaNumero) {
150
+ return new estruturas_1.MetodoPrimitiva(nomeObjeto, objeto, metodoDePrimitivaNumero);
151
+ }
152
+ break;
153
+ case delegua_1.default.TEXTO:
154
+ if (!(expressao.simbolo.lexema in primitivas_texto_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 metodoDePrimitivaTexto = primitivas_texto_1.default[expressao.simbolo.lexema].implementacao;
158
+ if (metodoDePrimitivaTexto) {
159
+ return new estruturas_1.MetodoPrimitiva(nomeObjeto, objeto, metodoDePrimitivaTexto);
160
+ }
161
+ break;
162
+ case delegua_1.default.VETOR:
163
+ case delegua_1.default.VETOR_INTEIRO:
164
+ case delegua_1.default.VETOR_LOGICO:
165
+ case delegua_1.default.VETOR_LÓGICO:
166
+ case delegua_1.default.VETOR_NUMERO:
167
+ case delegua_1.default.VETOR_NÚMERO:
168
+ case delegua_1.default.VETOR_QUALQUER:
169
+ case delegua_1.default.VETOR_TEXTO:
170
+ if (!(expressao.simbolo.lexema in primitivas_vetor_1.default)) {
171
+ throw new excecoes_1.ErroEmTempoDeExecucao(expressao.simbolo, `Método de primitiva '${expressao.simbolo.lexema}' não existe para o tipo ${tipoObjeto}.`);
172
+ }
173
+ const metodoDePrimitivaVetor = primitivas_vetor_1.default[expressao.simbolo.lexema].implementacao;
174
+ if (metodoDePrimitivaVetor) {
175
+ return new estruturas_1.MetodoPrimitiva(nomeObjeto, objeto, metodoDePrimitivaVetor);
176
+ }
177
+ break;
178
+ }
179
+ // Objeto de uma classe JavaScript regular (ou seja, com construtor e propriedades)
180
+ // que possua a propriedade.
181
+ // Exemplos: classes de LinConEs, como `RetornoComando`, ou bibliotecas globais com objetos próprios.
182
+ if (objeto.hasOwnProperty && objeto.hasOwnProperty(expressao.simbolo.lexema)) {
183
+ return objeto[expressao.simbolo.lexema];
184
+ }
185
+ // Último caso: objeto simples, sem construtor, sem protótipo. Exemplo: {'a': 1, 'b': 2}
186
+ if (typeof objeto[expressao.simbolo.lexema] !== 'undefined') {
187
+ return objeto[expressao.simbolo.lexema];
188
+ }
189
+ return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(null, `Método ou propriedade para objeto ou primitiva não encontrado: ${expressao.simbolo.lexema}.`, expressao.linha));
190
+ }
57
191
  //# sourceMappingURL=comum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"comum.js","sourceRoot":"","sources":["../../fontes/interpretador/comum.ts"],"names":[],"mappings":";;;;;AASA,gFAUC;AAED,4EAeC;AAED,gFA4BC;AAlED,gFAA+F;AAO/F,2GAAyE;AAElE,KAAK,UAAU,kCAAkC,CACpD,CAAsC,EACtC,kBAAsC;IAEtC,IAAI,CAAC;QACD,OAAO,MAAM,IAAA,0CAAsB,EAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAC3E,CAAC;IAAC,OAAO,IAAS,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC;AAED,SAAgB,gCAAgC,CAC5C,aAAkD,EAClD,gBAAkC;IAElC,MAAM,MAAM,GAAG,IAAI,0BAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC3F,iEAAiE;IACjE,aAAa,CAAC,oBAAoB,CAAC,eAAe,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5F,aAAa,CAAC,oBAAoB,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC1F,OAAO;QACH,EAAE,EAAE,gBAAgB,CAAC,EAAE;QACvB,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,MAAM;QACrC,QAAQ,EAAE,iBAAiB;QAC3B,IAAI,EAAE,UAAU,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,UAAU,GAAG;QACvD,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,aAAa;KACjD,CAAC;AACN,CAAC;AAEM,KAAK,UAAU,kCAAkC,CACpD,aAAkD,EAClD,UAA6B;IAE7B,6CAA6C;IAC7C,8CAA8C;IAC9C,+BAA+B;IAC/B,MAAM,MAAM,GAAG,IAAI,0BAAa,EAAE,CAAC;IACnC,KAAK,MAAM,aAAa,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;QACjD,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC9D,IAAI,UAAU,EAAE,CAAC;YACb,IAAI,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;gBACxC,QAAQ,UAAU,CAAC,QAAQ,EAAE,CAAC;oBAC1B,KAAK,iBAAiB;wBAClB,MAAM,6BAA6B,GAAkB,aAAa,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;wBAC7H,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,6BAA6B,CAAC;wBACpE,MAAM;oBACV;wBACI,OAAO,CAAC,IAAI,CAAC,6CAA6C,EAAE,UAAU,CAAC,CAAC;wBACxE,MAAM;gBACd,CAAC;YACL,CAAC;YAED,+EAA+E;QACnF,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"comum.js","sourceRoot":"","sources":["../../fontes/interpretador/comum.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { Chamavel } from "@designliquido/delegua/interpretador/estruturas";
2
+ /**
3
+ * Uma classe de módulo não é muito diferente de uma `ClassePadrao`, com o adicional
4
+ * de ter documentações extras para métodos e propriedades.
5
+ */
6
+ export declare class ClasseDeModulo extends Chamavel {
7
+ nome: string;
8
+ modulo: string;
9
+ implementacao: any;
10
+ metodos: {
11
+ [nome: string]: any;
12
+ };
13
+ propriedades: {
14
+ [nome: string]: any;
15
+ };
16
+ constructor(nome: string, modulo: string, implementacao: any, metodos: {
17
+ [nome: string]: any;
18
+ }, propriedades: {
19
+ [nome: string]: any;
20
+ });
21
+ }
22
+ //# sourceMappingURL=classe-de-modulo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classe-de-modulo.d.ts","sourceRoot":"","sources":["../../../fontes/interpretador/estruturas/classe-de-modulo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iDAAiD,CAAC;AAE3E;;;GAGG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,GAAG,CAAC;IACnB,OAAO,EAAE;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;IAC/B,YAAY,EAAE;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;gBAGhC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,GAAG,EAClB,OAAO,EAAE;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,EAC9B,YAAY,EAAE;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC;CAS1C"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClasseDeModulo = void 0;
4
+ const estruturas_1 = require("@designliquido/delegua/interpretador/estruturas");
5
+ /**
6
+ * Uma classe de módulo não é muito diferente de uma `ClassePadrao`, com o adicional
7
+ * de ter documentações extras para métodos e propriedades.
8
+ */
9
+ class ClasseDeModulo extends estruturas_1.Chamavel {
10
+ constructor(nome, modulo, implementacao, metodos, propriedades) {
11
+ super();
12
+ this.nome = nome;
13
+ this.modulo = modulo;
14
+ this.implementacao = implementacao;
15
+ this.metodos = metodos;
16
+ this.propriedades = propriedades;
17
+ }
18
+ }
19
+ exports.ClasseDeModulo = ClasseDeModulo;
20
+ //# sourceMappingURL=classe-de-modulo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classe-de-modulo.js","sourceRoot":"","sources":["../../../fontes/interpretador/estruturas/classe-de-modulo.ts"],"names":[],"mappings":";;;AAAA,gFAA2E;AAE3E;;;GAGG;AACH,MAAa,cAAe,SAAQ,qBAAQ;IAOxC,YACI,IAAY,EACZ,MAAc,EACd,aAAkB,EAClB,OAA8B,EAC9B,YAAmC;QAEnC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;CACJ;AArBD,wCAqBC"}
@@ -0,0 +1,2 @@
1
+ export * from './classe-de-modulo';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../fontes/interpretador/estruturas/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,18 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./classe-de-modulo"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/interpretador/estruturas/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC"}
@@ -1,10 +1,11 @@
1
1
  import { InterpretadorComDepuracao } from "@designliquido/delegua/interpretador/depuracao";
2
2
  import { ResultadoParcialInterpretadorInterface, SimboloInterface } from '@designliquido/delegua/interfaces';
3
- import { Declaracao, FuncaoDeclaracao } from "@designliquido/delegua/declaracoes";
3
+ import { Const, Declaracao, FuncaoDeclaracao } from "@designliquido/delegua/declaracoes";
4
4
  import { ImportadorInterface } from "../interfaces";
5
5
  import { ModuloDeclaracoes } from '../declaracoes';
6
6
  import { InterpretadorComImportacaoInterface } from '../interfaces/interpretador-com-importacao-interface';
7
7
  import { ImportarBiblioteca } from '../construtos';
8
+ import { AcessoMetodoOuPropriedade } from "@designliquido/delegua/construtos";
8
9
  export declare class InterpretadorComDepuracaoImportacao extends InterpretadorComDepuracao implements InterpretadorComImportacaoInterface {
9
10
  importador: ImportadorInterface<SimboloInterface>;
10
11
  constructor(importador: ImportadorInterface<SimboloInterface>, diretorioBase: string, funcaoDeRetorno: Function, funcaoDeRetornoMesmaLinha: Function);
@@ -20,13 +21,9 @@ export declare class InterpretadorComDepuracaoImportacao extends InterpretadorCo
20
21
  */
21
22
  executar(declaracao: Declaracao): Promise<ResultadoParcialInterpretadorInterface>;
22
23
  visitarConstrutoImportarBiblioteca(importarBiblioteca: ImportarBiblioteca): Promise<import("@designliquido/delegua/interpretador/estruturas").DeleguaModulo>;
23
- visitarDeclaracaoDefinicaoFuncao(funcaoDeclaracao: FuncaoDeclaracao): {
24
- id: string;
25
- nome: string;
26
- operacao: string;
27
- tipo: string;
28
- tipoExplicito: boolean;
29
- };
24
+ visitarDeclaracaoConst(declaracao: Const): Promise<any>;
25
+ visitarDeclaracaoDefinicaoFuncao(funcaoDeclaracao: FuncaoDeclaracao): Promise<any>;
30
26
  visitarDeclaracaoModuloDeclaracoes(declaracao: ModuloDeclaracoes): Promise<import("@designliquido/delegua/interpretador/estruturas").DeleguaModulo>;
27
+ visitarExpressaoAcessoMetodoOuPropriedade(expressao: AcessoMetodoOuPropriedade): Promise<any>;
31
28
  }
32
29
  //# sourceMappingURL=interpretador-com-depuracao-importacao.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interpretador-com-depuracao-importacao.d.ts","sourceRoot":"","sources":["../../fontes/interpretador/interpretador-com-depuracao-importacao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,EAAE,sCAAsC,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC7G,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAIlF,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,mCAAmC,EAAE,MAAM,sDAAsD,CAAC;AAC3G,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAInD,qBAAa,mCACT,SAAQ,yBACR,YAAW,mCAAmC;IAE9C,UAAU,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;gBAG9C,UAAU,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,EACjD,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,QAAQ,EACzB,yBAAyB,EAAE,QAAQ;IAMvC;;;;;;;;;OASG;IACY,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,sCAAsC,CAAC;IAkC1F,kCAAkC,CAAC,kBAAkB,EAAE,kBAAkB;IAItE,gCAAgC,CAAC,gBAAgB,EAAE,gBAAgB;;;;;;;IAItE,kCAAkC,CAAC,UAAU,EAAE,iBAAiB;CAGzE"}
1
+ {"version":3,"file":"interpretador-com-depuracao-importacao.d.ts","sourceRoot":"","sources":["../../fontes/interpretador/interpretador-com-depuracao-importacao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,EAAE,sCAAsC,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC7G,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAIzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,mCAAmC,EAAE,MAAM,sDAAsD,CAAC;AAC3G,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,qBAAa,mCACT,SAAQ,yBACR,YAAW,mCAAmC;IAE9C,UAAU,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;gBAG9C,UAAU,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,EACjD,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,QAAQ,EACzB,yBAAyB,EAAE,QAAQ;IAMvC;;;;;;;;;OASG;IACY,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,sCAAsC,CAAC;IAkC1F,kCAAkC,CAAC,kBAAkB,EAAE,kBAAkB;IAItE,sBAAsB,CAAC,UAAU,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;IAIvD,gCAAgC,CAAC,gBAAgB,EAAE,gBAAgB;IAItE,kCAAkC,CAAC,UAAU,EAAE,iBAAiB;IAKvD,yCAAyC,CAAC,SAAS,EAAE,yBAAyB;CAGhG"}
@@ -85,12 +85,19 @@ class InterpretadorComDepuracaoImportacao extends depuracao_1.InterpretadorComDe
85
85
  async visitarConstrutoImportarBiblioteca(importarBiblioteca) {
86
86
  return comum.visitarConstrutoImportarBiblioteca(this, importarBiblioteca);
87
87
  }
88
+ visitarDeclaracaoConst(declaracao) {
89
+ return comum.visitarDeclaracaoConst(this, declaracao);
90
+ }
88
91
  visitarDeclaracaoDefinicaoFuncao(funcaoDeclaracao) {
89
92
  return comum.visitarDeclaracaoDefinicaoFuncao(this, funcaoDeclaracao);
90
93
  }
91
94
  async visitarDeclaracaoModuloDeclaracoes(declaracao) {
92
95
  return comum.visitarDeclaracaoModuloDeclaracoes(this, declaracao);
93
96
  }
97
+ // TODO: Passar lógica para o núcleo e apagar.
98
+ async visitarExpressaoAcessoMetodoOuPropriedade(expressao) {
99
+ return comum.visitarExpressaoAcessoMetodoOuPropriedade(this, expressao);
100
+ }
94
101
  }
95
102
  exports.InterpretadorComDepuracaoImportacao = InterpretadorComDepuracaoImportacao;
96
103
  //# sourceMappingURL=interpretador-com-depuracao-importacao.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interpretador-com-depuracao-importacao.js","sourceRoot":"","sources":["../../fontes/interpretador/interpretador-com-depuracao-importacao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAA2F;AAG3F,gFAAsF;AACtF,wEAA2E;AAO3E,+CAAiC;AAEjC,MAAa,mCACT,SAAQ,qCAAyB;IAKjC,YACI,UAAiD,EACjD,aAAqB,EACrB,eAAyB,EACzB,yBAAmC;QAEnC,KAAK,CAAC,aAAa,EAAE,eAAe,EAAE,yBAAyB,CAAC,CAAC;QACjE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;IAED;;;;;;;;;OASG;IACM,KAAK,CAAC,QAAQ,CAAC,UAAsB;QAC1C,MAAM,SAAS,GAAQ,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEtD,6EAA6E;QAC7E,iDAAiD;QACjD,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAChD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,0EAA0E;QAC1E,IAAI,SAAS,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC7C,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,IAAI,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC;QACnC,QAAQ,SAAS,CAAC,WAAW,EAAE,CAAC;YAC5B,KAAK,gCAAmB;gBACpB,aAAa,GAAG,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC;gBACjD,MAAM;YACV;gBACI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,aAAa,GAAG,IAAA,mCAAmB,EAAC,SAAS,CAAC,CAAC;gBACnD,CAAC;gBACD,MAAM;QACd,CAAC;QAED,OAAO;YACH,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,cAAc,EAAE,SAAS;YACzB,IAAI,EAAE,aAAa;SACoB,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,kCAAkC,CAAC,kBAAsC;QAC3E,OAAO,KAAK,CAAC,kCAAkC,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAC9E,CAAC;IAEQ,gCAAgC,CAAC,gBAAkC;QACxE,OAAO,KAAK,CAAC,gCAAgC,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,kCAAkC,CAAC,UAA6B;QAClE,OAAO,KAAK,CAAC,kCAAkC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACtE,CAAC;CACJ;AAvED,kFAuEC"}
1
+ {"version":3,"file":"interpretador-com-depuracao-importacao.js","sourceRoot":"","sources":["../../fontes/interpretador/interpretador-com-depuracao-importacao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAA2F;AAG3F,gFAAsF;AACtF,wEAA2E;AAO3E,+CAAiC;AAGjC,MAAa,mCACT,SAAQ,qCAAyB;IAKjC,YACI,UAAiD,EACjD,aAAqB,EACrB,eAAyB,EACzB,yBAAmC;QAEnC,KAAK,CAAC,aAAa,EAAE,eAAe,EAAE,yBAAyB,CAAC,CAAC;QACjE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;IAED;;;;;;;;;OASG;IACM,KAAK,CAAC,QAAQ,CAAC,UAAsB;QAC1C,MAAM,SAAS,GAAQ,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEtD,6EAA6E;QAC7E,iDAAiD;QACjD,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAChD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,0EAA0E;QAC1E,IAAI,SAAS,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC7C,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,IAAI,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC;QACnC,QAAQ,SAAS,CAAC,WAAW,EAAE,CAAC;YAC5B,KAAK,gCAAmB;gBACpB,aAAa,GAAG,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC;gBACjD,MAAM;YACV;gBACI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,aAAa,GAAG,IAAA,mCAAmB,EAAC,SAAS,CAAC,CAAC;gBACnD,CAAC;gBACD,MAAM;QACd,CAAC;QAED,OAAO;YACH,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,cAAc,EAAE,SAAS;YACzB,IAAI,EAAE,aAAa;SACoB,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,kCAAkC,CAAC,kBAAsC;QAC3E,OAAO,KAAK,CAAC,kCAAkC,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAC9E,CAAC;IAEQ,sBAAsB,CAAC,UAAiB;QAC7C,OAAO,KAAK,CAAC,sBAAsB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC;IAEQ,gCAAgC,CAAC,gBAAkC;QACxE,OAAO,KAAK,CAAC,gCAAgC,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,kCAAkC,CAAC,UAA6B;QAClE,OAAO,KAAK,CAAC,kCAAkC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACtE,CAAC;IAED,8CAA8C;IACrC,KAAK,CAAC,yCAAyC,CAAC,SAAoC;QACzF,OAAO,KAAK,CAAC,yCAAyC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC5E,CAAC;CACJ;AAhFD,kFAgFC"}
@@ -1,10 +1,11 @@
1
- import { Declaracao, FuncaoDeclaracao } from '@designliquido/delegua/declaracoes';
1
+ import { Const, Declaracao, FuncaoDeclaracao } from '@designliquido/delegua/declaracoes';
2
2
  import { SimboloInterface } from '@designliquido/delegua/interfaces';
3
3
  import { Interpretador } from '@designliquido/delegua/interpretador';
4
4
  import { InterpretadorComImportacaoInterface } from '../interfaces/interpretador-com-importacao-interface';
5
5
  import { ImportadorInterface } from '../interfaces/importador-interface';
6
6
  import { ModuloDeclaracoes } from '../declaracoes';
7
7
  import { ImportarBiblioteca } from '../construtos';
8
+ import { AcessoMetodoOuPropriedade } from '@designliquido/delegua/construtos';
8
9
  /**
9
10
  * O Interpretador visita todos os elementos complexos gerados pelo avaliador sintático (_parser_),
10
11
  * e de fato executa a lógica de programação descrita no código.
@@ -14,13 +15,9 @@ export declare class InterpretadorComImportacao extends Interpretador implements
14
15
  constructor(importador: ImportadorInterface<SimboloInterface>, diretorioBase: string, performance?: boolean, funcaoDeRetorno?: Function, funcaoDeRetornoMesmaLinha?: Function);
15
16
  executar(declaracao: Declaracao, mostrarResultado?: boolean): Promise<any>;
16
17
  visitarConstrutoImportarBiblioteca(importarBiblioteca: ImportarBiblioteca): Promise<import("@designliquido/delegua/interpretador/estruturas").DeleguaModulo>;
17
- visitarDeclaracaoDefinicaoFuncao(funcaoDeclaracao: FuncaoDeclaracao): {
18
- id: string;
19
- nome: string;
20
- operacao: string;
21
- tipo: string;
22
- tipoExplicito: boolean;
23
- };
18
+ visitarDeclaracaoConst(declaracao: Const): Promise<any>;
19
+ visitarDeclaracaoDefinicaoFuncao(funcaoDeclaracao: FuncaoDeclaracao): Promise<any>;
24
20
  visitarDeclaracaoModuloDeclaracoes(declaracao: ModuloDeclaracoes): Promise<import("@designliquido/delegua/interpretador/estruturas").DeleguaModulo>;
21
+ visitarExpressaoAcessoMetodoOuPropriedade(expressao: AcessoMetodoOuPropriedade): Promise<any>;
25
22
  }
26
23
  //# sourceMappingURL=interpretador-com-importacao.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interpretador-com-importacao.d.ts","sourceRoot":"","sources":["../../fontes/interpretador/interpretador-com-importacao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAIrE,OAAO,EAAE,mCAAmC,EAAE,MAAM,sDAAsD,CAAC;AAC3G,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAInD;;;GAGG;AACH,qBAAa,0BACT,SAAQ,aACR,YAAW,mCAAmC;IAE9C,UAAU,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;gBAG9C,UAAU,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,EACjD,aAAa,EAAE,MAAM,EACrB,WAAW,UAAQ,EACnB,eAAe,GAAE,QAAe,EAChC,yBAAyB,GAAE,QAAe;IAM/B,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,UAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAcjF,kCAAkC,CAAC,kBAAkB,EAAE,kBAAkB;IAItE,gCAAgC,CAAC,gBAAgB,EAAE,gBAAgB;;;;;;;IAItE,kCAAkC,CAAC,UAAU,EAAE,iBAAiB;CAGzE"}
1
+ {"version":3,"file":"interpretador-com-importacao.d.ts","sourceRoot":"","sources":["../../fontes/interpretador/interpretador-com-importacao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAIrE,OAAO,EAAE,mCAAmC,EAAE,MAAM,sDAAsD,CAAC;AAC3G,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAE9E;;;GAGG;AACH,qBAAa,0BACT,SAAQ,aACR,YAAW,mCAAmC;IAE9C,UAAU,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;gBAG9C,UAAU,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,EACjD,aAAa,EAAE,MAAM,EACrB,WAAW,UAAQ,EACnB,eAAe,GAAE,QAAe,EAChC,yBAAyB,GAAE,QAAe;IAM/B,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,UAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAcjF,kCAAkC,CAAC,kBAAkB,EAAE,kBAAkB;IAItE,sBAAsB,CAAC,UAAU,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;IAIvD,gCAAgC,CAAC,gBAAgB,EAAE,gBAAgB;IAItE,kCAAkC,CAAC,UAAU,EAAE,iBAAiB;IAKvD,yCAAyC,CAAC,SAAS,EAAE,yBAAyB;CAGhG"}
@@ -62,12 +62,19 @@ class InterpretadorComImportacao extends interpretador_1.Interpretador {
62
62
  async visitarConstrutoImportarBiblioteca(importarBiblioteca) {
63
63
  return comum.visitarConstrutoImportarBiblioteca(this, importarBiblioteca);
64
64
  }
65
+ visitarDeclaracaoConst(declaracao) {
66
+ return comum.visitarDeclaracaoConst(this, declaracao);
67
+ }
65
68
  visitarDeclaracaoDefinicaoFuncao(funcaoDeclaracao) {
66
69
  return comum.visitarDeclaracaoDefinicaoFuncao(this, funcaoDeclaracao);
67
70
  }
68
71
  async visitarDeclaracaoModuloDeclaracoes(declaracao) {
69
72
  return comum.visitarDeclaracaoModuloDeclaracoes(this, declaracao);
70
73
  }
74
+ // TODO: Passar lógica para o núcleo e apagar.
75
+ async visitarExpressaoAcessoMetodoOuPropriedade(expressao) {
76
+ return comum.visitarExpressaoAcessoMetodoOuPropriedade(this, expressao);
77
+ }
71
78
  }
72
79
  exports.InterpretadorComImportacao = InterpretadorComImportacao;
73
80
  //# sourceMappingURL=interpretador-com-importacao.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interpretador-com-importacao.js","sourceRoot":"","sources":["../../fontes/interpretador/interpretador-com-importacao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wEAAqE;AAErE,kGAAqF;AAOrF,+CAAiC;AAEjC;;;GAGG;AACH,MAAa,0BACT,SAAQ,6BAAa;IAKrB,YACI,UAAiD,EACjD,aAAqB,EACrB,WAAW,GAAG,KAAK,EACnB,kBAA4B,IAAI,EAChC,4BAAsC,IAAI;QAE1C,KAAK,CAAC,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,yBAAyB,CAAC,CAAC;QAC9E,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;IAEQ,KAAK,CAAC,QAAQ,CAAC,UAAsB,EAAE,gBAAgB,GAAG,KAAK;QACpE,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAEnD,IAAI,gBAAgB,EAAE,CAAC;YACnB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,SAAS,IAAI,OAAO,SAAS,KAAK,oBAAqB,CAAC,QAAQ,EAAE,CAAC;YACnE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,kCAAkC,CAAC,kBAAsC;QAC3E,OAAO,KAAK,CAAC,kCAAkC,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAC9E,CAAC;IAEQ,gCAAgC,CAAC,gBAAkC;QACxE,OAAO,KAAK,CAAC,gCAAgC,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,kCAAkC,CAAC,UAA6B;QAClE,OAAO,KAAK,CAAC,kCAAkC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACtE,CAAC;CACJ;AA1CD,gEA0CC"}
1
+ {"version":3,"file":"interpretador-com-importacao.js","sourceRoot":"","sources":["../../fontes/interpretador/interpretador-com-importacao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wEAAqE;AAErE,kGAAqF;AAOrF,+CAAiC;AAGjC;;;GAGG;AACH,MAAa,0BACT,SAAQ,6BAAa;IAKrB,YACI,UAAiD,EACjD,aAAqB,EACrB,WAAW,GAAG,KAAK,EACnB,kBAA4B,IAAI,EAChC,4BAAsC,IAAI;QAE1C,KAAK,CAAC,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,yBAAyB,CAAC,CAAC;QAC9E,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;IAEQ,KAAK,CAAC,QAAQ,CAAC,UAAsB,EAAE,gBAAgB,GAAG,KAAK;QACpE,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAEnD,IAAI,gBAAgB,EAAE,CAAC;YACnB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,SAAS,IAAI,OAAO,SAAS,KAAK,oBAAqB,CAAC,QAAQ,EAAE,CAAC;YACnE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,kCAAkC,CAAC,kBAAsC;QAC3E,OAAO,KAAK,CAAC,kCAAkC,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAC9E,CAAC;IAEQ,sBAAsB,CAAC,UAAiB;QAC7C,OAAO,KAAK,CAAC,sBAAsB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC;IAEQ,gCAAgC,CAAC,gBAAkC;QACxE,OAAO,KAAK,CAAC,gCAAgC,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,kCAAkC,CAAC,UAA6B;QAClE,OAAO,KAAK,CAAC,kCAAkC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACtE,CAAC;IAED,8CAA8C;IACrC,KAAK,CAAC,yCAAyC,CAAC,SAAoC;QACzF,OAAO,KAAK,CAAC,yCAAyC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC5E,CAAC;CACJ;AAnDD,gEAmDC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../fontes/mecanismo-importacao-bibliotecas/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAA8B,MAAM,iDAAiD,CAAC;AAE5G,eAAO,MAAM,yBAAyB,GAAI,MAAM,MAAM,kBAcrD,CAAC;AAqGF,eAAO,MAAM,uBAAuB,GAAI,MAAM,MAAM,KAAG,MAAM,GAAG,OAkB/D,CAAC;AAEF,yBAA+B,IAAI,EAAE,MAAM,0BAK1C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../fontes/mecanismo-importacao-bibliotecas/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAA8B,MAAM,iDAAiD,CAAC;AAI5G,eAAO,MAAM,yBAAyB,GAAI,MAAM,MAAM,kBAcrD,CAAC;AAiJF,eAAO,MAAM,uBAAuB,GAAI,MAAM,MAAM,KAAG,MAAM,GAAG,OAmB/D,CAAC;AAEF,yBAA+B,IAAI,EAAE,MAAM,0BAK1C"}
@@ -40,6 +40,7 @@ const caminho = __importStar(require("path"));
40
40
  const sistemaArquivos = __importStar(require("fs"));
41
41
  const excecoes_1 = require("@designliquido/delegua/excecoes");
42
42
  const estruturas_1 = require("@designliquido/delegua/interpretador/estruturas");
43
+ const estruturas_2 = require("../interpretador/estruturas");
43
44
  const carregarBibliotecaDelegua = (nome) => {
44
45
  try {
45
46
  const dadosDoManifesto = require(nome + '/delegua-modulo');
@@ -58,6 +59,38 @@ const carregarBibliotecaDelegua = (nome) => {
58
59
  }
59
60
  };
60
61
  exports.carregarBibliotecaDelegua = carregarBibliotecaDelegua;
62
+ const montarFuncaoPadraoDeManifesto = (dadosMetodo) => {
63
+ const funcaoPadrao = new estruturas_1.FuncaoPadrao(dadosMetodo.argumentos.length, dadosMetodo.funcao);
64
+ funcaoPadrao.descartarPrimeiroArgumento = false;
65
+ funcaoPadrao.argumentos = dadosMetodo.argumentos;
66
+ funcaoPadrao.tipoRetorno = dadosMetodo.tipoRetorno;
67
+ // funcaoPadrao.documentacao = dadosMetodo.documentacao;
68
+ return funcaoPadrao;
69
+ };
70
+ const modularizarBibliotecaPorManifesto = (manifestoModulo, nome) => {
71
+ const novoModulo = new estruturas_1.DeleguaModulo(nome);
72
+ for (const [metodoOuClasse, dadosMetodoOuClasse] of Object.entries(manifestoModulo)) {
73
+ if ('funcao' in dadosMetodoOuClasse && typeof dadosMetodoOuClasse.funcao === 'function') {
74
+ const funcaoPadrao = montarFuncaoPadraoDeManifesto(dadosMetodoOuClasse);
75
+ novoModulo.componentes[metodoOuClasse] = funcaoPadrao;
76
+ continue;
77
+ }
78
+ if ('implementacao' in dadosMetodoOuClasse) {
79
+ const implementacao = dadosMetodoOuClasse.implementacao;
80
+ if (typeof implementacao === 'function' &&
81
+ String(implementacao).startsWith('class')) {
82
+ const metadados = dadosMetodoOuClasse;
83
+ // TODO: Deixar isso melhor.
84
+ const nomeCurtoModulo = novoModulo.nome.replace(/@designliquido\/delegua-/, '');
85
+ const classeDeModulo = new estruturas_2.ClasseDeModulo(metodoOuClasse, nomeCurtoModulo, metadados.implementacao, metadados.metodos, metadados.propriedades);
86
+ novoModulo.componentes[metodoOuClasse] = classeDeModulo;
87
+ continue;
88
+ }
89
+ }
90
+ // TODO: Levantar erro aqui?
91
+ }
92
+ return novoModulo;
93
+ };
61
94
  const carregarBiblioteca = async (nomeDaBiblioteca, caminhoDaBiblioteca) => {
62
95
  let dadosDoModulo;
63
96
  try {
@@ -73,18 +106,6 @@ const carregarBiblioteca = async (nomeDaBiblioteca, caminhoDaBiblioteca) => {
73
106
  }
74
107
  return modularizarBibliotecaNpmPadrao(dadosDoModulo, nomeDaBiblioteca);
75
108
  };
76
- const modularizarBibliotecaPorManifesto = (manifestoModulo, nome) => {
77
- const novoModulo = new estruturas_1.DeleguaModulo(nome);
78
- for (const [metodo, dadosMetodo] of Object.entries(manifestoModulo)) {
79
- const funcaoPadrao = new estruturas_1.FuncaoPadrao(dadosMetodo.argumentos.length, dadosMetodo.funcao);
80
- funcaoPadrao.descartarPrimeiroArgumento = false;
81
- funcaoPadrao.argumentos = dadosMetodo.argumentos;
82
- funcaoPadrao.tipoRetorno = dadosMetodo.tipoRetorno;
83
- // funcaoPadrao.documentacao = dadosMetodo.documentacao;
84
- novoModulo.componentes[metodo] = funcaoPadrao;
85
- }
86
- return novoModulo;
87
- };
88
109
  const modularizarBibliotecaNpmPadrao = (dadosDoModulo, nome) => {
89
110
  const novoModulo = new estruturas_1.DeleguaModulo(nome);
90
111
  const chaves = Object.keys(dadosDoModulo);
@@ -93,9 +114,9 @@ const modularizarBibliotecaNpmPadrao = (dadosDoModulo, nome) => {
93
114
  if (typeof moduloAtual === 'function') {
94
115
  // Por definição, funções tradicionais e classes são identificadas em JavaScript como "functions".
95
116
  // A primeira heurística era verificando a propriedade `prototype`, mas isso não funciona bem
96
- // porque classes e funções avulsas todas possuem prototype.
117
+ // porque classes e funções avulsas todas possuem `prototype`.
97
118
  // Uma heurística nova é converter `moduloAtual` para `string` e verificar se a declaração começa com `class`.
98
- // Se sim, podemos dizer que a "function" é uma classe padrão.
119
+ // Se sim, podemos dizer que a `function` é uma classe padrão.
99
120
  // Caso contrário, é uma função (`FuncaoPadrao`).
100
121
  if (String(moduloAtual).startsWith('class')) {
101
122
  const classePadrao = new estruturas_1.ClassePadrao(chaves[i], moduloAtual);
@@ -132,6 +153,7 @@ const importarPacoteExternoCompleto = async (nome) => {
132
153
  };
133
154
  const verificarModulosDelegua = (nome) => {
134
155
  const modulos = {
156
+ arquivos: '@designliquido/delegua-arquivos',
135
157
  estatistica: '@designliquido/delegua-estatistica',
136
158
  estatística: '@designliquido/delegua-estatistica',
137
159
  fisica: '@designliquido/delegua-fisica',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../fontes/mecanismo-importacao-bibliotecas/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../fontes/mecanismo-importacao-bibliotecas/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@designliquido/delegua-node",
3
- "version": "1.7.8",
3
+ "version": "1.9.0",
4
4
  "description": "Linguagem Delégua com capacidades para ecossistema Node.js.",
5
5
  "scripts": {
6
6
  "empacotar": "yarn rimraf ./dist && tsc && yarn copyfiles -V ./bin/delegua ./bin/delegua.cmd ./dist && yarn copyfiles -V ./package.json ./dist/bin && yarn copyfiles -V ./README.md ./dist && yarn copyfiles -V ./LICENSE ./dist",
@@ -12,17 +12,18 @@
12
12
  "testes:servidor-depuracao": "yarn ts-node ./fontes/depuracao/servidor-depuracao.ts"
13
13
  },
14
14
  "dependencies": {
15
- "@designliquido/birl": "^0.2.5",
16
- "@designliquido/delegua": "^0.54.3",
17
- "@designliquido/mapler": "^0.2.5",
18
- "@designliquido/portugol-studio": "^0.5.5",
19
- "@designliquido/potigol": "^0.4.5",
20
- "@designliquido/visualg": "^0.4.5",
15
+ "@designliquido/birl": "^0.2.9",
16
+ "@designliquido/delegua": "^0.56.0",
17
+ "@designliquido/mapler": "^0.2.10",
18
+ "@designliquido/portugol-studio": "^0.5.9",
19
+ "@designliquido/potigol": "^0.4.10",
20
+ "@designliquido/visualg": "^0.4.10",
21
21
  "chalk": "4.1.2",
22
22
  "commander": "^14.0.0",
23
23
  "json-colorizer": "^3.0.1"
24
24
  },
25
25
  "devDependencies": {
26
+ "@designliquido/delegua-arquivos": "^0.0.3",
26
27
  "@designliquido/delegua-estatistica": "^0.1.0",
27
28
  "@designliquido/delegua-fisica": "^0.1.0",
28
29
  "@designliquido/delegua-http": "^0.1.2",