@designliquido/delegua 0.53.1 → 0.54.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 (100) hide show
  1. package/avaliador-sintatico/avaliador-sintatico.d.ts +17 -8
  2. package/avaliador-sintatico/avaliador-sintatico.d.ts.map +1 -1
  3. package/avaliador-sintatico/avaliador-sintatico.js +187 -130
  4. package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  5. package/avaliador-sintatico/comum.d.ts +2 -2
  6. package/avaliador-sintatico/comum.d.ts.map +1 -1
  7. package/avaliador-sintatico/comum.js +2 -2
  8. package/avaliador-sintatico/comum.js.map +1 -1
  9. package/avaliador-sintatico/dialetos/avaliador-sintatico-calango.js +2 -2
  10. package/avaliador-sintatico/dialetos/avaliador-sintatico-calango.js.map +1 -1
  11. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts +3 -4
  12. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts.map +1 -1
  13. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js +67 -113
  14. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js.map +1 -1
  15. package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.d.ts +3 -3
  16. package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.d.ts.map +1 -1
  17. package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.js +19 -19
  18. package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.js.map +1 -1
  19. package/avaliador-sintatico/elemento-montao-tipos.d.ts +11 -0
  20. package/avaliador-sintatico/elemento-montao-tipos.d.ts.map +1 -0
  21. package/avaliador-sintatico/elemento-montao-tipos.js +11 -0
  22. package/avaliador-sintatico/elemento-montao-tipos.js.map +1 -0
  23. package/avaliador-sintatico/informacao-escopo.d.ts +4 -3
  24. package/avaliador-sintatico/informacao-escopo.d.ts.map +1 -1
  25. package/avaliador-sintatico/informacao-escopo.js +1 -1
  26. package/avaliador-sintatico/informacao-escopo.js.map +1 -1
  27. package/avaliador-sintatico/montao-tipos.d.ts +33 -0
  28. package/avaliador-sintatico/montao-tipos.d.ts.map +1 -0
  29. package/avaliador-sintatico/montao-tipos.js +50 -0
  30. package/avaliador-sintatico/montao-tipos.js.map +1 -0
  31. package/avaliador-sintatico/pilha-escopos.d.ts +5 -3
  32. package/avaliador-sintatico/pilha-escopos.d.ts.map +1 -1
  33. package/avaliador-sintatico/pilha-escopos.js +18 -4
  34. package/avaliador-sintatico/pilha-escopos.js.map +1 -1
  35. package/bibliotecas/primitivas-dicionario.js +3 -3
  36. package/bibliotecas/primitivas-dicionario.js.map +1 -1
  37. package/bibliotecas/primitivas-numero.js +2 -2
  38. package/bibliotecas/primitivas-numero.js.map +1 -1
  39. package/bibliotecas/primitivas-texto.js +11 -11
  40. package/bibliotecas/primitivas-texto.js.map +1 -1
  41. package/bibliotecas/primitivas-vetor.d.ts.map +1 -1
  42. package/bibliotecas/primitivas-vetor.js +19 -18
  43. package/bibliotecas/primitivas-vetor.js.map +1 -1
  44. package/bin/package.json +1 -1
  45. package/construtos/acesso-metodo-ou-propriedade.js +1 -1
  46. package/construtos/acesso-metodo-ou-propriedade.js.map +1 -1
  47. package/construtos/dicionario.d.ts +2 -2
  48. package/construtos/dicionario.d.ts.map +1 -1
  49. package/construtos/dicionario.js.map +1 -1
  50. package/depuracao/index.d.ts +0 -1
  51. package/depuracao/index.d.ts.map +1 -1
  52. package/depuracao/index.js +0 -6
  53. package/depuracao/index.js.map +1 -1
  54. package/geracao-identificadores/index.d.ts +9 -0
  55. package/geracao-identificadores/index.d.ts.map +1 -1
  56. package/geracao-identificadores/index.js +20 -0
  57. package/geracao-identificadores/index.js.map +1 -1
  58. package/index.d.ts +2 -1
  59. package/index.d.ts.map +1 -1
  60. package/index.js +1 -3
  61. package/index.js.map +1 -1
  62. package/informacao-elemento-sintatico.d.ts +11 -0
  63. package/informacao-elemento-sintatico.d.ts.map +1 -0
  64. package/informacao-elemento-sintatico.js +18 -0
  65. package/informacao-elemento-sintatico.js.map +1 -0
  66. package/interfaces/primitiva-interface.d.ts +2 -2
  67. package/interfaces/primitiva-interface.d.ts.map +1 -1
  68. package/interpretador/interpretador-base.d.ts +2 -2
  69. package/interpretador/interpretador-base.d.ts.map +1 -1
  70. package/interpretador/interpretador-base.js +3 -3
  71. package/interpretador/interpretador-base.js.map +1 -1
  72. package/interpretador/interpretador-com-depuracao.d.ts +0 -8
  73. package/interpretador/interpretador-com-depuracao.d.ts.map +1 -1
  74. package/interpretador/interpretador-com-depuracao.js +0 -10
  75. package/interpretador/interpretador-com-depuracao.js.map +1 -1
  76. package/interpretador/interpretador.d.ts +1 -1
  77. package/interpretador/interpretador.d.ts.map +1 -1
  78. package/interpretador/interpretador.js +34 -15
  79. package/interpretador/interpretador.js.map +1 -1
  80. package/lexador/dialetos/palavras-reservadas/pitugues.d.ts +0 -4
  81. package/lexador/dialetos/palavras-reservadas/pitugues.d.ts.map +1 -1
  82. package/lexador/dialetos/palavras-reservadas/pitugues.js +0 -4
  83. package/lexador/dialetos/palavras-reservadas/pitugues.js.map +1 -1
  84. package/package.json +1 -1
  85. package/tipos-de-simbolos/pitugues.d.ts +0 -2
  86. package/tipos-de-simbolos/pitugues.d.ts.map +1 -1
  87. package/tipos-de-simbolos/pitugues.js +0 -2
  88. package/tipos-de-simbolos/pitugues.js.map +1 -1
  89. package/tradutores/tradutor-javascript.d.ts.map +1 -1
  90. package/tradutores/tradutor-javascript.js +4 -2
  91. package/tradutores/tradutor-javascript.js.map +1 -1
  92. package/umd/delegua.js +873 -804
  93. package/depuracao/cyrb53.d.ts +0 -10
  94. package/depuracao/cyrb53.d.ts.map +0 -1
  95. package/depuracao/cyrb53.js +0 -23
  96. package/depuracao/cyrb53.js.map +0 -1
  97. package/informacao-variavel-ou-constante.d.ts +0 -10
  98. package/informacao-variavel-ou-constante.d.ts.map +0 -1
  99. package/informacao-variavel-ou-constante.js +0 -18
  100. package/informacao-variavel-ou-constante.js.map +0 -1
@@ -13,7 +13,7 @@ const avaliador_sintatico_base_1 = require("../avaliador-sintatico-base");
13
13
  const inferenciador_1 = require("../../inferenciador");
14
14
  const pilha_escopos_1 = require("./../pilha-escopos");
15
15
  const informacao_escopo_1 = require("./../informacao-escopo");
16
- const informacao_variavel_ou_constante_1 = require("../../informacao-variavel-ou-constante");
16
+ const informacao_elemento_sintatico_1 = require("../../informacao-elemento-sintatico");
17
17
  const simbolo_1 = require("../../lexador/simbolo");
18
18
  const delegua_1 = __importDefault(require("../../tipos-de-dados/delegua"));
19
19
  const tenda_1 = __importDefault(require("../../tipos-de-simbolos/tenda"));
@@ -40,22 +40,22 @@ class AvaliadorSintaticoTenda extends avaliador_sintatico_base_1.AvaliadorSintat
40
40
  this.tiposDeFerramentasExternas = {};
41
41
  this.primitivasConhecidas = {};
42
42
  for (const [nomePrimitivaDicionario, dadosPrimitiva] of Object.entries(primitivas_dicionario_1.default)) {
43
- this.primitivasConhecidas[nomePrimitivaDicionario] = new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante(nomePrimitivaDicionario, 'dicionário', true, dadosPrimitiva.argumentos);
43
+ this.primitivasConhecidas[nomePrimitivaDicionario] = new informacao_elemento_sintatico_1.InformacaoElementoSintatico(nomePrimitivaDicionario, 'dicionário', true, dadosPrimitiva.argumentos);
44
44
  }
45
45
  for (const [nomePrimitivaNumero, dadosPrimitiva] of Object.entries(primitivas_numero_1.default)) {
46
- this.primitivasConhecidas[nomePrimitivaNumero] = new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante(nomePrimitivaNumero, 'número', true, dadosPrimitiva.argumentos);
46
+ this.primitivasConhecidas[nomePrimitivaNumero] = new informacao_elemento_sintatico_1.InformacaoElementoSintatico(nomePrimitivaNumero, 'número', true, dadosPrimitiva.argumentos);
47
47
  }
48
48
  for (const [nomePrimitivaTexto, dadosPrimitiva] of Object.entries(primitivas_texto_1.default)) {
49
- this.primitivasConhecidas[nomePrimitivaTexto] = new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante(nomePrimitivaTexto, 'texto', true, dadosPrimitiva.argumentos);
49
+ this.primitivasConhecidas[nomePrimitivaTexto] = new informacao_elemento_sintatico_1.InformacaoElementoSintatico(nomePrimitivaTexto, 'texto', true, dadosPrimitiva.argumentos);
50
50
  }
51
51
  for (const [nomePrimitivaVetor, dadosPrimitiva] of Object.entries(primitivas_vetor_1.default)) {
52
- this.primitivasConhecidas[nomePrimitivaVetor] = new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante(nomePrimitivaVetor, 'vetor', true, dadosPrimitiva.argumentos);
52
+ this.primitivasConhecidas[nomePrimitivaVetor] = new informacao_elemento_sintatico_1.InformacaoElementoSintatico(nomePrimitivaVetor, 'vetor', true, dadosPrimitiva.argumentos);
53
53
  }
54
54
  // TODO: Por enquanto não há necessidade de validar argumentos aqui, mas isso pode mudar no futuro.
55
- this.primitivasConhecidas['inteiro'] = new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('inteiro', 'inteiro');
56
- this.primitivasConhecidas['numero'] = new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('numero', 'número');
57
- this.primitivasConhecidas['número'] = new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('número', 'número');
58
- this.primitivasConhecidas['texto'] = new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('texto', 'texto');
55
+ this.primitivasConhecidas['inteiro'] = new informacao_elemento_sintatico_1.InformacaoElementoSintatico('inteiro', 'inteiro');
56
+ this.primitivasConhecidas['numero'] = new informacao_elemento_sintatico_1.InformacaoElementoSintatico('numero', 'número');
57
+ this.primitivasConhecidas['número'] = new informacao_elemento_sintatico_1.InformacaoElementoSintatico('número', 'número');
58
+ this.primitivasConhecidas['texto'] = new informacao_elemento_sintatico_1.InformacaoElementoSintatico('texto', 'texto');
59
59
  this.pilhaEscopos = new pilha_escopos_1.PilhaEscopos();
60
60
  }
61
61
  verificarDefinicaoTipoAtual() {
@@ -195,7 +195,7 @@ class AvaliadorSintaticoTenda extends avaliador_sintatico_base_1.AvaliadorSintat
195
195
  // espera que esse parêntese esquerdo já foi consumido.
196
196
  this.consumir(tenda_1.default.PARENTESE_ESQUERDO, "Esperado parêntese esquerdo após palavra reservada 'função'.");
197
197
  const corpoDaFuncao = this.corpoDaFuncao(simboloFuncao.lexema);
198
- this.pilhaEscopos.definirInformacoesVariavel(simboloFuncao.lexema, new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante(simboloFuncao.lexema, 'função'));
198
+ this.pilhaEscopos.definirInformacoesVariavel(simboloFuncao.lexema, new informacao_elemento_sintatico_1.InformacaoElementoSintatico(simboloFuncao.lexema, 'função'));
199
199
  return corpoDaFuncao;
200
200
  case tenda_1.default.IDENTIFICADOR:
201
201
  const simboloIdentificador = this.avancarEDevolverAnterior();
@@ -357,7 +357,7 @@ class AvaliadorSintaticoTenda extends avaliador_sintatico_base_1.AvaliadorSintat
357
357
  // Provavelmente uma chamada a alguma função da biblioteca global.
358
358
  const informacoesPossivelFuncaoBibliotecaGlobal = this.pilhaEscopos.obterBibliotecaGlobal(entidadeChamadaResolvidaVariavel.simbolo.lexema);
359
359
  if (informacoesPossivelFuncaoBibliotecaGlobal !== undefined) {
360
- const erros = this.validarArgumentosEntidadeChamada(informacoesPossivelFuncaoBibliotecaGlobal.argumentos, argumentos);
360
+ const erros = this.validarArgumentosEntidadeChamada(informacoesPossivelFuncaoBibliotecaGlobal.subElementos, argumentos);
361
361
  if (erros.length > 0) {
362
362
  throw new erro_avaliador_sintatico_1.ErroAvaliadorSintatico(entidadeChamadaResolvidaVariavel.simbolo, `Erros ao resolver argumentos de chamada a ${entidadeChamadaResolvidaVariavel.simbolo.lexema}: \n${erros.reduce((mensagem, erro) => (mensagem += `${erro}\n`), '')}`);
363
363
  }
@@ -367,7 +367,7 @@ class AvaliadorSintaticoTenda extends avaliador_sintatico_base_1.AvaliadorSintat
367
367
  if (tipoPrimitiva !== undefined &&
368
368
  this.primitivasConhecidas.hasOwnProperty(entidadeChamadaResolvidaVariavel.simbolo.lexema)) {
369
369
  var informacoesPrimitiva = this.primitivasConhecidas[entidadeChamadaResolvidaVariavel.simbolo.lexema];
370
- const erros = this.validarArgumentosEntidadeChamada(informacoesPrimitiva.argumentos, argumentos);
370
+ const erros = this.validarArgumentosEntidadeChamada(informacoesPrimitiva.subElementos, argumentos);
371
371
  if (erros.length > 0) {
372
372
  throw new erro_avaliador_sintatico_1.ErroAvaliadorSintatico(entidadeChamadaResolvidaVariavel.simbolo, `Erros ao resolver argumentos de chamada a ${entidadeChamadaResolvidaVariavel.simbolo.lexema}: \n${erros.reduce((mensagem, erro) => (mensagem += `${erro}\n`), '')}`);
373
373
  }
@@ -390,9 +390,9 @@ class AvaliadorSintaticoTenda extends avaliador_sintatico_base_1.AvaliadorSintat
390
390
  declaracaoDeFuncao(identificador) {
391
391
  // Se houver chamadas recursivas à função, precisamos definir um tipo
392
392
  // para ela. Vai ser atualizado após avaliação do corpo da função.
393
- this.pilhaEscopos.definirInformacoesVariavel(identificador.lexema, new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante(identificador.lexema, 'qualquer'));
393
+ this.pilhaEscopos.definirInformacoesVariavel(identificador.lexema, new informacao_elemento_sintatico_1.InformacaoElementoSintatico(identificador.lexema, 'qualquer'));
394
394
  const corpoDaFuncao = this.corpoDaFuncao('implícita');
395
- this.pilhaEscopos.definirInformacoesVariavel(identificador.lexema, new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante(identificador.lexema, corpoDaFuncao.tipo));
395
+ this.pilhaEscopos.definirInformacoesVariavel(identificador.lexema, new informacao_elemento_sintatico_1.InformacaoElementoSintatico(identificador.lexema, corpoDaFuncao.tipo));
396
396
  const funcaoDeclaracao = new declaracoes_1.FuncaoDeclaracao(identificador, corpoDaFuncao, corpoDaFuncao.tipo);
397
397
  this.pilhaEscopos.registrarReferenciaFuncao(identificador.lexema, funcaoDeclaracao);
398
398
  return funcaoDeclaracao;
@@ -651,7 +651,7 @@ class AvaliadorSintaticoTenda extends avaliador_sintatico_base_1.AvaliadorSintat
651
651
  if (tipoVetor.endsWith('[]')) {
652
652
  tipoVariavelIteracao = tipoVetor.slice(0, -2);
653
653
  }
654
- this.pilhaEscopos.definirInformacoesVariavel(simboloVariavelIteracao.lexema, new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante(simboloVariavelIteracao.lexema, tipoVariavelIteracao));
654
+ this.pilhaEscopos.definirInformacoesVariavel(simboloVariavelIteracao.lexema, new informacao_elemento_sintatico_1.InformacaoElementoSintatico(simboloVariavelIteracao.lexema, tipoVariavelIteracao));
655
655
  this.consumir(tenda_1.default.FAÇA, "Esperado palavra reservada 'faça' após literal ou variável de iteração em declaração 'para cada'.");
656
656
  const corpo = this.blocoEscopo();
657
657
  return new declaracoes_1.ParaCada(this.hashArquivo, Number(simboloParaCada.linha), new construtos_1.Variavel(this.hashArquivo, simboloVariavelIteracao), literalOuVariavelIteravel, new declaracoes_1.Bloco(simboloParaCada.hashArquivo, simboloParaCada.linha, corpo));
@@ -662,7 +662,7 @@ class AvaliadorSintaticoTenda extends avaliador_sintatico_base_1.AvaliadorSintat
662
662
  this.consumir(tenda_1.default.FAÇA, "Esperado palavra reservada 'faça' após literal ou variável de passo final em declaração 'para cada'.");
663
663
  // A variável de iteração precisa ser definida aqui, para que o corpo de `para cada` (um escopo)
664
664
  // seja capaz de reconhecer a variável e seu tipo.
665
- this.pilhaEscopos.definirInformacoesVariavel(simboloVariavelIteracao.lexema, new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante(simboloVariavelIteracao.lexema, 'inteiro'));
665
+ this.pilhaEscopos.definirInformacoesVariavel(simboloVariavelIteracao.lexema, new informacao_elemento_sintatico_1.InformacaoElementoSintatico(simboloVariavelIteracao.lexema, 'inteiro'));
666
666
  const corpo = this.blocoEscopo();
667
667
  // `variavelIteracao <= valorFinal`
668
668
  let operadorCondicao = new simbolo_1.Simbolo(tenda_1.default.MENOR_IGUAL, '<=', null, Number(simboloPara.linha), this.hashArquivo);
@@ -845,7 +845,7 @@ class AvaliadorSintaticoTenda extends avaliador_sintatico_base_1.AvaliadorSintat
845
845
  this.consumir(tenda_1.default.IGUAL, "Esperado símbolo de igual após nome de identificador em declaração 'seja'.");
846
846
  const inicializador = this.expressao();
847
847
  const tipo = this.logicaComumInferenciaTiposVariaveis(inicializador);
848
- this.pilhaEscopos.definirInformacoesVariavel(identificador.lexema, new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante(identificador.lexema, tipo));
848
+ this.pilhaEscopos.definirInformacoesVariavel(identificador.lexema, new informacao_elemento_sintatico_1.InformacaoElementoSintatico(identificador.lexema, tipo));
849
849
  return new declaracoes_1.Var(identificador, inicializador, tipo);
850
850
  }
851
851
  logicaComumParametros() {
@@ -862,7 +862,7 @@ class AvaliadorSintaticoTenda extends avaliador_sintatico_base_1.AvaliadorSintat
862
862
  parametro.tipoDado = tipoDadoParametro;
863
863
  this.avancarEDevolverAnterior();
864
864
  }
865
- this.pilhaEscopos.definirInformacoesVariavel(parametro.nome.lexema, new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante(parametro.nome.lexema, parametro.tipoDado || 'qualquer'));
865
+ this.pilhaEscopos.definirInformacoesVariavel(parametro.nome.lexema, new informacao_elemento_sintatico_1.InformacaoElementoSintatico(parametro.nome.lexema, parametro.tipoDado || 'qualquer'));
866
866
  parametros.push(parametro);
867
867
  if (parametro.abrangencia === 'multiplo')
868
868
  break;
@@ -949,7 +949,7 @@ class AvaliadorSintaticoTenda extends avaliador_sintatico_base_1.AvaliadorSintat
949
949
  // TODO: Escrever algum tipo de validação aqui.
950
950
  for (const tipos of Object.values(this.tiposDeFerramentasExternas)) {
951
951
  for (const [nomeTipo, tipo] of Object.entries(tipos)) {
952
- this.pilhaEscopos.definirInformacoesVariavel(nomeTipo, new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante(nomeTipo, tipo));
952
+ this.pilhaEscopos.definirInformacoesVariavel(nomeTipo, new informacao_elemento_sintatico_1.InformacaoElementoSintatico(nomeTipo, tipo));
953
953
  }
954
954
  }
955
955
  }
@@ -1 +1 @@
1
- {"version":3,"file":"avaliador-sintatico-tenda.js","sourceRoot":"","sources":["../../../fontes/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"avaliador-sintatico-tenda.js","sourceRoot":"","sources":["../../../fontes/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export declare class ElementoMontaoTipos {
2
+ tipo: string;
3
+ endereco?: string;
4
+ subElementos: {
5
+ [nome: string]: ElementoMontaoTipos;
6
+ };
7
+ constructor(tipo: string, subElementos?: {
8
+ [nome: string]: ElementoMontaoTipos;
9
+ });
10
+ }
11
+ //# sourceMappingURL=elemento-montao-tipos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elemento-montao-tipos.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/elemento-montao-tipos.ts"],"names":[],"mappings":"AAAA,qBAAa,mBAAmB;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAAA;KAAC,CAAA;gBAEvC,IAAI,EAAE,MAAM,EAAE,YAAY,GAAE;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAAA;KAAM;CAIrF"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ElementoMontaoTipos = void 0;
4
+ class ElementoMontaoTipos {
5
+ constructor(tipo, subElementos = {}) {
6
+ this.tipo = tipo;
7
+ this.subElementos = subElementos;
8
+ }
9
+ }
10
+ exports.ElementoMontaoTipos = ElementoMontaoTipos;
11
+ //# sourceMappingURL=elemento-montao-tipos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elemento-montao-tipos.js","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/elemento-montao-tipos.ts"],"names":[],"mappings":";;;AAAA,MAAa,mBAAmB;IAK5B,YAAY,IAAY,EAAE,eAAsD,EAAE;QAC9E,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;CACJ;AATD,kDASC"}
@@ -1,8 +1,9 @@
1
1
  import { FuncaoDeclaracao } from '../declaracoes';
2
- import { InformacaoVariavelOuConstante } from '../informacao-variavel-ou-constante';
2
+ import { InformacaoElementoSintatico } from '../informacao-elemento-sintatico';
3
+ import { ElementoMontaoTipos } from './elemento-montao-tipos';
3
4
  export declare class InformacaoEscopo {
4
- variaveisEConstantes: {
5
- [nome: string]: InformacaoVariavelOuConstante;
5
+ elementosSintaticos: {
6
+ [nome: string]: InformacaoElementoSintatico | ElementoMontaoTipos;
6
7
  };
7
8
  referenciasFuncoes: {
8
9
  [nome: string]: FuncaoDeclaracao;
@@ -1 +1 @@
1
- {"version":3,"file":"informacao-escopo.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/informacao-escopo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AAEpF,qBAAa,gBAAgB;IACzB,oBAAoB,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,6BAA6B,CAAA;KAAE,CAAC;IACxE,kBAAkB,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAAC;;CAM5D"}
1
+ {"version":3,"file":"informacao-escopo.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/informacao-escopo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,qBAAa,gBAAgB;IACzB,mBAAmB,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,2BAA2B,GAAG,mBAAmB,CAAA;KAAE,CAAC;IAC3F,kBAAkB,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAAC;;CAM5D"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InformacaoEscopo = void 0;
4
4
  class InformacaoEscopo {
5
5
  constructor() {
6
- this.variaveisEConstantes = {};
6
+ this.elementosSintaticos = {};
7
7
  this.referenciasFuncoes = {};
8
8
  }
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"informacao-escopo.js","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/informacao-escopo.ts"],"names":[],"mappings":";;;AAGA,MAAa,gBAAgB;IAIzB;QACI,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;IACjC,CAAC;CACJ;AARD,4CAQC"}
1
+ {"version":3,"file":"informacao-escopo.js","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/informacao-escopo.ts"],"names":[],"mappings":";;;AAIA,MAAa,gBAAgB;IAIzB;QACI,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;IACjC,CAAC;CACJ;AARD,4CAQC"}
@@ -0,0 +1,33 @@
1
+ import { InformacaoElementoSintatico } from "../informacao-elemento-sintatico";
2
+ /**
3
+ * O montão de tipos é muito semelhante ao montão original do interpretador, mas
4
+ * sua função é apenas armazenas informações de tipos de estruturas de dados
5
+ * com N níveis de profundidade, como dicionários e objetos em Delégua.
6
+ */
7
+ export declare class MontaoTipos {
8
+ referencias: {
9
+ [endereco: string]: InformacaoElementoSintatico;
10
+ };
11
+ constructor();
12
+ /**
13
+ * Adiciona uma nova referência ao montão de tipos, retornando seu endereço.
14
+ * @param {any} objeto Qualquer objeto que pertença ao montão de tipos.
15
+ * @returns {string} O endereço onde a referência foi registrada.
16
+ */
17
+ adicionarReferencia(objeto: any): string;
18
+ /**
19
+ * Exclui referências do montão de tipos, normalmente por finalização de um
20
+ * escopo de execução.
21
+ * @param enderecos
22
+ */
23
+ excluirReferencias(...enderecos: string[]): void;
24
+ /**
25
+ * Obtém uma referência com base no símbolo executado e endereço da referência.
26
+ * @param {number} hashArquivo O _hash_ correspondente ao caminho do arquivo em execução.
27
+ * @param {number} linha A linha correspondente à declaração sendo executada.
28
+ * @param {string} endereco O endereço da referência.
29
+ * @returns {any} O objeto armazenado no endereço.
30
+ */
31
+ obterReferencia(hashArquivo: number, linha: number, endereco: string): InformacaoElementoSintatico;
32
+ }
33
+ //# sourceMappingURL=montao-tipos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"montao-tipos.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/montao-tipos.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAI/E;;;;GAIG;AACH,qBAAa,WAAW;IACpB,WAAW,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,2BAA2B,CAAA;KAAE,CAAC;;IAMjE;;;;OAIG;IACH,mBAAmB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM;IAMxC;;;;OAIG;IACH,kBAAkB,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAMhD;;;;;;OAMG;IACH,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,2BAA2B;CAUrG"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MontaoTipos = void 0;
4
+ const geracao_identificadores_1 = require("../geracao-identificadores");
5
+ const erro_avaliador_sintatico_1 = require("./erro-avaliador-sintatico");
6
+ /**
7
+ * O montão de tipos é muito semelhante ao montão original do interpretador, mas
8
+ * sua função é apenas armazenas informações de tipos de estruturas de dados
9
+ * com N níveis de profundidade, como dicionários e objetos em Delégua.
10
+ */
11
+ class MontaoTipos {
12
+ constructor() {
13
+ this.referencias = {};
14
+ }
15
+ /**
16
+ * Adiciona uma nova referência ao montão de tipos, retornando seu endereço.
17
+ * @param {any} objeto Qualquer objeto que pertença ao montão de tipos.
18
+ * @returns {string} O endereço onde a referência foi registrada.
19
+ */
20
+ adicionarReferencia(objeto) {
21
+ const novoEndereco = (0, geracao_identificadores_1.uuidv4)();
22
+ this.referencias[novoEndereco] = objeto;
23
+ return novoEndereco;
24
+ }
25
+ /**
26
+ * Exclui referências do montão de tipos, normalmente por finalização de um
27
+ * escopo de execução.
28
+ * @param enderecos
29
+ */
30
+ excluirReferencias(...enderecos) {
31
+ for (const endereco of enderecos) {
32
+ delete this.referencias[endereco];
33
+ }
34
+ }
35
+ /**
36
+ * Obtém uma referência com base no símbolo executado e endereço da referência.
37
+ * @param {number} hashArquivo O _hash_ correspondente ao caminho do arquivo em execução.
38
+ * @param {number} linha A linha correspondente à declaração sendo executada.
39
+ * @param {string} endereco O endereço da referência.
40
+ * @returns {any} O objeto armazenado no endereço.
41
+ */
42
+ obterReferencia(hashArquivo, linha, endereco) {
43
+ if (!(endereco in this.referencias)) {
44
+ throw new erro_avaliador_sintatico_1.ErroAvaliadorSintatico({ hashArquivo, linha }, `Referência para montão de tipos com endereco ${endereco} não existe.`);
45
+ }
46
+ return this.referencias[endereco];
47
+ }
48
+ }
49
+ exports.MontaoTipos = MontaoTipos;
50
+ //# sourceMappingURL=montao-tipos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"montao-tipos.js","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/montao-tipos.ts"],"names":[],"mappings":";;;AAAA,wEAAoD;AAGpD,yEAAoE;AAEpE;;;;GAIG;AACH,MAAa,WAAW;IAGpB;QACI,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,mBAAmB,CAAC,MAAW;QAC3B,MAAM,YAAY,GAAG,IAAA,gCAAM,GAAE,CAAC;QAC9B,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;QACxC,OAAO,YAAY,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,GAAG,SAAmB;QACrC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,eAAe,CAAC,WAAmB,EAAE,KAAa,EAAE,QAAgB;QAChE,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,iDAAsB,CAC5B,EAAE,WAAW,EAAE,KAAK,EAAsB,EAC1C,gDAAgD,QAAQ,cAAc,CACzE,CAAC;QACN,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;CACJ;AA9CD,kCA8CC"}
@@ -1,7 +1,8 @@
1
1
  import { FuncaoDeclaracao } from '../declaracoes';
2
2
  import { PilhaInterface } from '../interfaces';
3
3
  import { InformacaoEscopo } from './informacao-escopo';
4
- import { InformacaoVariavelOuConstante } from '../informacao-variavel-ou-constante';
4
+ import { InformacaoElementoSintatico as InformacaoElementoSintatico } from '../informacao-elemento-sintatico';
5
+ import { ElementoMontaoTipos } from './elemento-montao-tipos';
5
6
  export declare class PilhaEscopos implements PilhaInterface<InformacaoEscopo> {
6
7
  pilha: InformacaoEscopo[];
7
8
  constructor();
@@ -9,9 +10,10 @@ export declare class PilhaEscopos implements PilhaInterface<InformacaoEscopo> {
9
10
  eVazio(): boolean;
10
11
  topoDaPilha(): InformacaoEscopo;
11
12
  removerUltimo(): InformacaoEscopo;
12
- obterBibliotecaGlobal(nome: string): InformacaoVariavelOuConstante;
13
+ obterBibliotecaGlobal(nome: string): ElementoMontaoTipos | InformacaoElementoSintatico;
13
14
  obterTipoVariavelPorNome(nome: string): string;
14
- definirInformacoesVariavel(nomeVariavel: string, informacoes: InformacaoVariavelOuConstante): void;
15
+ obterElementoMontaoTipos(nome: string): ElementoMontaoTipos;
16
+ definirInformacoesVariavel(nomeVariavel: string, informacoes: InformacaoElementoSintatico | ElementoMontaoTipos): void;
15
17
  registrarReferenciaFuncao(nome: string, definicao: FuncaoDeclaracao): void;
16
18
  obterReferenciaFuncao(nome: string): FuncaoDeclaracao;
17
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pilha-escopos.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/pilha-escopos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAqB,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AAEpF,qBAAa,YAAa,YAAW,cAAc,CAAC,gBAAgB,CAAC;IACjE,KAAK,EAAE,gBAAgB,EAAE,CAAC;;IAM1B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAItC,MAAM,IAAI,OAAO;IAIjB,WAAW,IAAI,gBAAgB;IAK/B,aAAa,IAAI,gBAAgB;IAKjC,qBAAqB,CAAC,IAAI,EAAE,MAAM;IAIlC,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAW9C,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,6BAA6B;IAK3F,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB;IAKnE,qBAAqB,CAAC,IAAI,EAAE,MAAM;CAUrC"}
1
+ {"version":3,"file":"pilha-escopos.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/pilha-escopos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,2BAA2B,IAAI,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC9G,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,qBAAa,YAAa,YAAW,cAAc,CAAC,gBAAgB,CAAC;IACjE,KAAK,EAAE,gBAAgB,EAAE,CAAC;;IAM1B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAItC,MAAM,IAAI,OAAO;IAIjB,WAAW,IAAI,gBAAgB;IAK/B,aAAa,IAAI,gBAAgB;IAKjC,qBAAqB,CAAC,IAAI,EAAE,MAAM;IAIlC,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAW9C,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB;IAgB3D,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,2BAA2B,GAAG,mBAAmB;IAK/G,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB;IAKnE,qBAAqB,CAAC,IAAI,EAAE,MAAM;CAUrC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PilhaEscopos = void 0;
4
+ const elemento_montao_tipos_1 = require("./elemento-montao-tipos");
4
5
  class PilhaEscopos {
5
6
  constructor() {
6
7
  this.pilha = [];
@@ -22,20 +23,33 @@ class PilhaEscopos {
22
23
  return this.pilha.pop();
23
24
  }
24
25
  obterBibliotecaGlobal(nome) {
25
- return this.pilha[0].variaveisEConstantes[nome];
26
+ return this.pilha[0].elementosSintaticos[nome];
26
27
  }
27
28
  obterTipoVariavelPorNome(nome) {
28
29
  for (let i = 1; i <= this.pilha.length; i++) {
29
30
  const informacaoEscopo = this.pilha[this.pilha.length - i];
30
- if (informacaoEscopo.variaveisEConstantes[nome] !== undefined) {
31
- return informacaoEscopo.variaveisEConstantes[nome].tipo;
31
+ if (informacaoEscopo.elementosSintaticos[nome] !== undefined) {
32
+ return informacaoEscopo.elementosSintaticos[nome].tipo;
32
33
  }
33
34
  }
34
35
  throw new Error("Variável não definida: '" + nome + "'.");
35
36
  }
37
+ obterElementoMontaoTipos(nome) {
38
+ for (let i = 1; i <= this.pilha.length; i++) {
39
+ const informacaoEscopo = this.pilha[this.pilha.length - i];
40
+ if (informacaoEscopo.elementosSintaticos[nome] !== undefined) {
41
+ const elementoMontaoTipos = informacaoEscopo.elementosSintaticos[nome];
42
+ if (!(elementoMontaoTipos instanceof elemento_montao_tipos_1.ElementoMontaoTipos)) {
43
+ throw new Error(`Elemento não é um dicionário ou objeto por não pertencer ao montão de tipos: ${nome}`);
44
+ }
45
+ return elementoMontaoTipos;
46
+ }
47
+ }
48
+ throw new Error("Elemento não existente no montão de tipos: '" + nome + "'.");
49
+ }
36
50
  definirInformacoesVariavel(nomeVariavel, informacoes) {
37
51
  const topoDaPilha = this.topoDaPilha();
38
- topoDaPilha.variaveisEConstantes[nomeVariavel] = informacoes;
52
+ topoDaPilha.elementosSintaticos[nomeVariavel] = informacoes;
39
53
  }
40
54
  registrarReferenciaFuncao(nome, definicao) {
41
55
  const topoDaPilha = this.topoDaPilha();
@@ -1 +1 @@
1
- {"version":3,"file":"pilha-escopos.js","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/pilha-escopos.ts"],"names":[],"mappings":";;;AAKA,MAAa,YAAY;IAGrB;QACI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,QAAQ,CAAC,IAAsB;QAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,MAAM,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,MAAM,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC5B,CAAC;IAED,qBAAqB,CAAC,IAAY;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,wBAAwB,CAAC,IAAY;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC3D,IAAI,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC5D,OAAO,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;YAC5D,CAAC;QACL,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED,0BAA0B,CAAC,YAAoB,EAAE,WAA0C;QACvF,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,WAAW,CAAC,oBAAoB,CAAC,YAAY,CAAC,GAAG,WAAW,CAAC;IACjE,CAAC;IAED,yBAAyB,CAAC,IAAY,EAAE,SAA2B;QAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IACrD,CAAC;IAED,qBAAqB,CAAC,IAAY;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC3D,IAAI,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC1D,OAAO,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACrD,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AA5DD,oCA4DC"}
1
+ {"version":3,"file":"pilha-escopos.js","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/pilha-escopos.ts"],"names":[],"mappings":";;;AAIA,mEAA8D;AAE9D,MAAa,YAAY;IAGrB;QACI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,QAAQ,CAAC,IAAsB;QAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,MAAM,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,MAAM,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC5B,CAAC;IAED,qBAAqB,CAAC,IAAY;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,wBAAwB,CAAC,IAAY;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC3D,IAAI,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC3D,OAAO,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;YAC3D,CAAC;QACL,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED,wBAAwB,CAAC,IAAY;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC3D,IAAI,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC3D,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBACvE,IAAI,CAAC,CAAC,mBAAmB,YAAY,2CAAmB,CAAC,EAAE,CAAC;oBACxD,MAAM,IAAI,KAAK,CAAC,gFAAgF,IAAI,EAAE,CAAC,CAAC;gBAC5G,CAAC;gBAED,OAAO,mBAAmB,CAAC;YAC/B,CAAC;QACL,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,8CAA8C,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;IAClF,CAAC;IAED,0BAA0B,CAAC,YAAoB,EAAE,WAA8D;QAC3G,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,WAAW,CAAC,mBAAmB,CAAC,YAAY,CAAC,GAAG,WAAW,CAAC;IAChE,CAAC;IAED,yBAAyB,CAAC,IAAY,EAAE,SAA2B;QAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IACrD,CAAC;IAED,qBAAqB,CAAC,IAAY;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC3D,IAAI,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC1D,OAAO,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACrD,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AA5ED,oCA4EC"}
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const informacao_variavel_ou_constante_1 = require("../informacao-variavel-ou-constante");
3
+ const informacao_elemento_sintatico_1 = require("../informacao-elemento-sintatico");
4
4
  const contemComum = (nome) => {
5
5
  return {
6
6
  tipoRetorno: 'lógico',
7
7
  argumentos: [
8
- new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('chave', 'qualquer', true, [], 'O elemento como chave do dicionário.'),
8
+ new informacao_elemento_sintatico_1.InformacaoElementoSintatico('chave', 'qualquer', true, [], 'O elemento como chave do dicionário.'),
9
9
  ],
10
10
  implementacao: (interpretador, nomePrimitiva, valor, chave) => Promise.resolve(chave in valor),
11
11
  assinaturaFormato: `dicionário.${nome}(chave: qualquer)`,
@@ -41,7 +41,7 @@ exports.default = {
41
41
  contém: contemComum('contém'),
42
42
  remover: {
43
43
  tipoRetorno: 'lógico',
44
- argumentos: [new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('chave', 'texto')],
44
+ argumentos: [new informacao_elemento_sintatico_1.InformacaoElementoSintatico('chave', 'texto')],
45
45
  implementacao: (interpretador, nomePrimitiva, valor, chave) => Promise.resolve(delete valor[chave]),
46
46
  assinaturaFormato: `dicionário.remover(chave: qualquer)`,
47
47
  },
@@ -1 +1 @@
1
- {"version":3,"file":"primitivas-dicionario.js","sourceRoot":"","sources":["../../fontes/bibliotecas/primitivas-dicionario.ts"],"names":[],"mappings":";;AAAA,0FAAoF;AAGpF,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE;IACjC,OAAO;QACH,WAAW,EAAE,QAAQ;QACrB,UAAU,EAAE;YACR,IAAI,gEAA6B,CAC7B,OAAO,EACP,UAAU,EACV,IAAI,EACJ,EAAE,EACF,sCAAsC,CACzC;SACJ;QACD,aAAa,EAAE,CACX,aAAqC,EACrC,aAAqB,EACrB,KAAa,EACb,KAAU,EACM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;QACtD,iBAAiB,EAAE,cAAc,IAAI,mBAAmB;QACxD,YAAY,EACR,kBAAkB,IAAI,eAAe;YACrC,6HAA6H;YAC7H,6BAA6B;YAC7B,kBAAkB;YAClB,oCAAoC;YACpC,aAAa,IAAI,wBAAwB;YACzC,aAAa,IAAI,yBAAyB;YAC1C,wBAAwB;QAC5B,aAAa,EAAE,iCAAiC;KACnD,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe;IACX,MAAM,EAAE;QACJ,WAAW,EAAE,SAAS;QACtB,UAAU,EAAE,EAAE;QACd,aAAa,EAAE,CACX,aAAqC,EACrC,aAAqB,EACrB,KAAa,EACD,EAAE;YACd,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,iBAAiB,EAAE,qBAAqB;QACxC,YAAY,EACR,6BAA6B;YAC7B,mEAAmE;YACnE,6BAA6B;YAC7B,kBAAkB;YAClB,oCAAoC;YACpC,6CAA6C;YAC7C,wBAAwB;QAC5B,aAAa,EAAE,qBAAqB;KACvC;IACD,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;IAC7B,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;IAC7B,OAAO,EAAE;QACL,WAAW,EAAE,QAAQ;QACrB,UAAU,EAAE,CAAC,IAAI,gEAA6B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACjE,aAAa,EAAE,CACX,aAAqC,EACrC,aAAqB,EACrB,KAAa,EACb,KAAa,EACG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3D,iBAAiB,EAAE,qCAAqC;KAC3D;IACD,OAAO,EAAE;QACL,WAAW,EAAE,YAAY;QACzB,UAAU,EAAE,EAAE;QACd,aAAa,EAAE,CACX,aAAqC,EACrC,aAAqB,EACrB,KAAa,EACD,EAAE;YACd,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACjD,CAAC;KACJ;CACsC,CAAC"}
1
+ {"version":3,"file":"primitivas-dicionario.js","sourceRoot":"","sources":["../../fontes/bibliotecas/primitivas-dicionario.ts"],"names":[],"mappings":";;AAAA,oFAA+E;AAG/E,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE;IACjC,OAAO;QACH,WAAW,EAAE,QAAQ;QACrB,UAAU,EAAE;YACR,IAAI,2DAA2B,CAC3B,OAAO,EACP,UAAU,EACV,IAAI,EACJ,EAAE,EACF,sCAAsC,CACzC;SACJ;QACD,aAAa,EAAE,CACX,aAAqC,EACrC,aAAqB,EACrB,KAAa,EACb,KAAU,EACM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;QACtD,iBAAiB,EAAE,cAAc,IAAI,mBAAmB;QACxD,YAAY,EACR,kBAAkB,IAAI,eAAe;YACrC,6HAA6H;YAC7H,6BAA6B;YAC7B,kBAAkB;YAClB,oCAAoC;YACpC,aAAa,IAAI,wBAAwB;YACzC,aAAa,IAAI,yBAAyB;YAC1C,wBAAwB;QAC5B,aAAa,EAAE,iCAAiC;KACnD,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe;IACX,MAAM,EAAE;QACJ,WAAW,EAAE,SAAS;QACtB,UAAU,EAAE,EAAE;QACd,aAAa,EAAE,CACX,aAAqC,EACrC,aAAqB,EACrB,KAAa,EACD,EAAE;YACd,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,iBAAiB,EAAE,qBAAqB;QACxC,YAAY,EACR,6BAA6B;YAC7B,mEAAmE;YACnE,6BAA6B;YAC7B,kBAAkB;YAClB,oCAAoC;YACpC,6CAA6C;YAC7C,wBAAwB;QAC5B,aAAa,EAAE,qBAAqB;KACvC;IACD,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;IAC7B,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;IAC7B,OAAO,EAAE;QACL,WAAW,EAAE,QAAQ;QACrB,UAAU,EAAE,CAAC,IAAI,2DAA2B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/D,aAAa,EAAE,CACX,aAAqC,EACrC,aAAqB,EACrB,KAAa,EACb,KAAa,EACG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3D,iBAAiB,EAAE,qCAAqC;KAC3D;IACD,OAAO,EAAE;QACL,WAAW,EAAE,YAAY;QACzB,UAAU,EAAE,EAAE;QACd,aAAa,EAAE,CACX,aAAqC,EACrC,aAAqB,EACrB,KAAa,EACD,EAAE;YACd,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACjD,CAAC;KACJ;CACsC,CAAC"}