@designliquido/delegua 0.39.8 → 0.41.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 (138) hide show
  1. package/analisador-semantico/analisador-semantico-base.d.ts +3 -1
  2. package/analisador-semantico/analisador-semantico-base.d.ts.map +1 -1
  3. package/analisador-semantico/analisador-semantico-base.js +8 -2
  4. package/analisador-semantico/analisador-semantico-base.js.map +1 -1
  5. package/analisador-semantico/analisador-semantico.d.ts +7 -3
  6. package/analisador-semantico/analisador-semantico.d.ts.map +1 -1
  7. package/analisador-semantico/analisador-semantico.js +90 -49
  8. package/analisador-semantico/analisador-semantico.js.map +1 -1
  9. package/avaliador-sintatico/avaliador-sintatico-base.d.ts +2 -1
  10. package/avaliador-sintatico/avaliador-sintatico-base.d.ts.map +1 -1
  11. package/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -1
  12. package/avaliador-sintatico/avaliador-sintatico.d.ts +10 -3
  13. package/avaliador-sintatico/avaliador-sintatico.d.ts.map +1 -1
  14. package/avaliador-sintatico/avaliador-sintatico.js +103 -81
  15. package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  16. package/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.d.ts.map +1 -1
  17. package/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js +2 -2
  18. package/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js.map +1 -1
  19. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts.map +1 -1
  20. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js +2 -2
  21. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js.map +1 -1
  22. package/avaliador-sintatico/informacao-escopo.d.ts +4 -0
  23. package/avaliador-sintatico/informacao-escopo.d.ts.map +1 -1
  24. package/avaliador-sintatico/informacao-escopo.js +1 -0
  25. package/avaliador-sintatico/informacao-escopo.js.map +1 -1
  26. package/avaliador-sintatico/pilha-escopos.d.ts +3 -0
  27. package/avaliador-sintatico/pilha-escopos.d.ts.map +1 -1
  28. package/avaliador-sintatico/pilha-escopos.js +13 -0
  29. package/avaliador-sintatico/pilha-escopos.js.map +1 -1
  30. package/bin/package.json +1 -1
  31. package/construtos/argumento-referencia-funcao.d.ts +16 -0
  32. package/construtos/argumento-referencia-funcao.d.ts.map +1 -0
  33. package/construtos/argumento-referencia-funcao.js +20 -0
  34. package/construtos/argumento-referencia-funcao.js.map +1 -0
  35. package/construtos/chamada.d.ts +1 -0
  36. package/construtos/chamada.d.ts.map +1 -1
  37. package/construtos/chamada.js.map +1 -1
  38. package/construtos/constante.d.ts +1 -0
  39. package/construtos/constante.d.ts.map +1 -1
  40. package/construtos/constante.js.map +1 -1
  41. package/construtos/funcao.d.ts +1 -1
  42. package/construtos/funcao.d.ts.map +1 -1
  43. package/construtos/funcao.js +1 -1
  44. package/construtos/funcao.js.map +1 -1
  45. package/construtos/index.d.ts +2 -0
  46. package/construtos/index.d.ts.map +1 -1
  47. package/construtos/index.js +2 -0
  48. package/construtos/index.js.map +1 -1
  49. package/construtos/referencia-funcao.d.ts +12 -0
  50. package/construtos/referencia-funcao.d.ts.map +1 -0
  51. package/construtos/referencia-funcao.js +17 -0
  52. package/construtos/referencia-funcao.js.map +1 -0
  53. package/construtos/variavel.d.ts +1 -0
  54. package/construtos/variavel.d.ts.map +1 -1
  55. package/construtos/variavel.js.map +1 -1
  56. package/declaracoes/funcao.d.ts +2 -1
  57. package/declaracoes/funcao.d.ts.map +1 -1
  58. package/declaracoes/funcao.js +3 -1
  59. package/declaracoes/funcao.js.map +1 -1
  60. package/declaracoes/importar.d.ts +6 -2
  61. package/declaracoes/importar.d.ts.map +1 -1
  62. package/declaracoes/importar.js +6 -2
  63. package/declaracoes/importar.js.map +1 -1
  64. package/declaracoes/index.d.ts +2 -2
  65. package/declaracoes/index.d.ts.map +1 -1
  66. package/declaracoes/index.js +2 -2
  67. package/declaracoes/index.js.map +1 -1
  68. package/espaco-variaveis.d.ts +4 -0
  69. package/espaco-variaveis.d.ts.map +1 -1
  70. package/espaco-variaveis.js +1 -0
  71. package/espaco-variaveis.js.map +1 -1
  72. package/estruturas/delegua-funcao.d.ts.map +1 -1
  73. package/estruturas/delegua-funcao.js +17 -4
  74. package/estruturas/delegua-funcao.js.map +1 -1
  75. package/formatadores/formatador-delegua.d.ts +6 -4
  76. package/formatadores/formatador-delegua.d.ts.map +1 -1
  77. package/formatadores/formatador-delegua.js +22 -0
  78. package/formatadores/formatador-delegua.js.map +1 -1
  79. package/formatadores/formatador-pitugues.d.ts +3 -1
  80. package/formatadores/formatador-pitugues.d.ts.map +1 -1
  81. package/formatadores/formatador-pitugues.js +6 -0
  82. package/formatadores/formatador-pitugues.js.map +1 -1
  83. package/formatadores/index.d.ts +1 -0
  84. package/formatadores/index.d.ts.map +1 -1
  85. package/formatadores/index.js +1 -0
  86. package/formatadores/index.js.map +1 -1
  87. package/inferenciador.d.ts.map +1 -1
  88. package/inferenciador.js.map +1 -1
  89. package/interfaces/pilha-escopos-execucao-interface.d.ts +6 -4
  90. package/interfaces/pilha-escopos-execucao-interface.d.ts.map +1 -1
  91. package/interfaces/visitante-comum-interface.d.ts +3 -1
  92. package/interfaces/visitante-comum-interface.d.ts.map +1 -1
  93. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts +3 -1
  94. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts.map +1 -1
  95. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js +11 -1
  96. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js.map +1 -1
  97. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.d.ts +3 -1
  98. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.d.ts.map +1 -1
  99. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js +6 -0
  100. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js.map +1 -1
  101. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.d.ts +3 -1
  102. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.d.ts.map +1 -1
  103. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js +7 -1
  104. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js.map +1 -1
  105. package/interpretador/interpretador-base.d.ts +3 -1
  106. package/interpretador/interpretador-base.d.ts.map +1 -1
  107. package/interpretador/interpretador-base.js +14 -7
  108. package/interpretador/interpretador-base.js.map +1 -1
  109. package/interpretador/interpretador.d.ts +7 -1
  110. package/interpretador/interpretador.d.ts.map +1 -1
  111. package/interpretador/interpretador.js +31 -2
  112. package/interpretador/interpretador.js.map +1 -1
  113. package/interpretador/pilha-escopos-execucao.d.ts +3 -1
  114. package/interpretador/pilha-escopos-execucao.d.ts.map +1 -1
  115. package/interpretador/pilha-escopos-execucao.js +14 -1
  116. package/interpretador/pilha-escopos-execucao.js.map +1 -1
  117. package/package.json +1 -1
  118. package/quebras/index.d.ts +2 -0
  119. package/quebras/index.d.ts.map +1 -1
  120. package/quebras/index.js +3 -0
  121. package/quebras/index.js.map +1 -1
  122. package/tipos-de-dados/delegua.d.ts +2 -0
  123. package/tipos-de-dados/delegua.d.ts.map +1 -1
  124. package/tipos-de-dados/delegua.js +2 -0
  125. package/tipos-de-dados/delegua.js.map +1 -1
  126. package/tradutores/tradutor-assemblyscript.d.ts +7 -3
  127. package/tradutores/tradutor-assemblyscript.d.ts.map +1 -1
  128. package/tradutores/tradutor-assemblyscript.js +30 -8
  129. package/tradutores/tradutor-assemblyscript.js.map +1 -1
  130. package/tradutores/tradutor-javascript.d.ts +8 -4
  131. package/tradutores/tradutor-javascript.d.ts.map +1 -1
  132. package/tradutores/tradutor-javascript.js +38 -16
  133. package/tradutores/tradutor-javascript.js.map +1 -1
  134. package/tradutores/tradutor-python.d.ts +5 -1
  135. package/tradutores/tradutor-python.d.ts.map +1 -1
  136. package/tradutores/tradutor-python.js +24 -0
  137. package/tradutores/tradutor-python.js.map +1 -1
  138. package/umd/delegua.js +926 -508
@@ -40,6 +40,14 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
40
40
  this.performance = performance;
41
41
  this.tiposDefinidosEmCodigo = {};
42
42
  this.tiposDeFerramentasExternas = {};
43
+ this.primitivasConhecidas = [
44
+ ...Object.keys(primitivas_dicionario_1.default),
45
+ ...Object.keys(primitivas_numero_1.default),
46
+ ...Object.keys(primitivas_texto_1.default),
47
+ ...Object.keys(primitivas_vetor_1.default),
48
+ 'inteiro',
49
+ 'texto'
50
+ ];
43
51
  this.pilhaEscopos = new pilha_escopos_1.PilhaEscopos();
44
52
  }
45
53
  verificarDefinicaoTipoAtual() {
@@ -154,7 +162,9 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
154
162
  case delegua_2.default.FUNCAO:
155
163
  case delegua_2.default.FUNÇÃO:
156
164
  const simboloFuncao = this.avancarEDevolverAnterior();
157
- return this.corpoDaFuncao(simboloFuncao.lexema);
165
+ const corpoDaFuncao = this.corpoDaFuncao(simboloFuncao.lexema);
166
+ this.pilhaEscopos.definirTipoVariavel(simboloFuncao.lexema, 'função');
167
+ return corpoDaFuncao;
158
168
  case delegua_2.default.IDENTIFICADOR:
159
169
  const simboloIdentificador = this.avancarEDevolverAnterior();
160
170
  let tipoOperando;
@@ -199,32 +209,6 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
199
209
  throw this.erro(this.simbolos[this.atual], "'Super' usado fora de declaração de classe com herança.");
200
210
  }
201
211
  return new construtos_1.Super(this.hashArquivo, simboloSuper, this.superclasseAtual);
202
- /* Se o próximo símbolo for uma abertura de parênteses, significa que
203
- // é uma chamada ao construtor da classe ancestral (superclasse).
204
- // Se o próximo símbolo for um ponto, significa que é uma chamada
205
- // a um método da superclasse.
206
- switch (this.simbolos[this.atual].tipo) {
207
- case tiposDeSimbolos.PARENTESE_ESQUERDO:
208
- return new Super(
209
- this.hashArquivo,
210
- simboloSuper,
211
- new Simbolo(
212
- tiposDeSimbolos.IDENTIFICADOR,
213
- 'construtor',
214
- null,
215
- simboloSuper.linha,
216
- this.hashArquivo
217
- )
218
- );
219
- default:
220
- this.consumir(tiposDeSimbolos.PONTO, "Esperado '.' após 'super'.");
221
- const metodoSuperclasse = this.consumir(
222
- tiposDeSimbolos.IDENTIFICADOR,
223
- 'Esperado nome do método da Superclasse.'
224
- );
225
- // TODO: Validar se o método existe no ancestral.
226
- return new Super(this.hashArquivo, simboloSuper, metodoSuperclasse);
227
- } */
228
212
  case delegua_2.default.VERDADEIRO:
229
213
  this.avancarEDevolverAnterior();
230
214
  return new construtos_1.Literal(this.hashArquivo, Number(simboloAtual.linha), true, 'lógico');
@@ -280,7 +264,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
280
264
  const tipoCorrespondente = this.tiposDefinidosEmCodigo[construtoTipado.tipo];
281
265
  const possivelMetodo = tipoCorrespondente.metodos.filter(m => m.simbolo.lexema === construtoTipado.simbolo.lexema);
282
266
  if (possivelMetodo.length > 0) {
283
- construto = new construtos_1.AcessoMetodo(construtoTipado.hashArquivo, construtoTipado.objeto, construtoTipado.simbolo.lexema, possivelMetodo[0].tipoRetorno);
267
+ construto = new construtos_1.AcessoMetodo(construtoTipado.hashArquivo, construtoTipado.objeto, construtoTipado.simbolo.lexema, possivelMetodo[0].tipo);
284
268
  break;
285
269
  }
286
270
  const possivelPropriedade = tipoCorrespondente.propriedades.filter(p => p.nome.lexema === construtoTipado.simbolo.lexema);
@@ -357,6 +341,13 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
357
341
  }
358
342
  const primitivaNumeroSelecionada = primitivas_numero_1.default[construtoTipado.simbolo.lexema];
359
343
  return new construtos_1.AcessoMetodo(construtoTipado.hashArquivo, construtoTipado.objeto, construtoTipado.simbolo.lexema, primitivaNumeroSelecionada.tipoRetorno);
344
+ case delegua_1.default.MODULO:
345
+ case delegua_1.default.MÓDULO:
346
+ if (construtoTipado.simbolo.lexema in this.tiposDefinidosEmCodigo) {
347
+ // Construtor de classe.
348
+ return new construtos_1.Variavel(construtoTipado.hashArquivo, construtoTipado.simbolo, construtoTipado.objeto.tipo);
349
+ }
350
+ return new construtos_1.AcessoMetodo(construtoTipado.hashArquivo, construtoTipado.objeto, construtoTipado.simbolo.lexema);
360
351
  case delegua_1.default.TEXTO:
361
352
  if (!(construtoTipado.simbolo.lexema in primitivas_texto_1.default)) {
362
353
  throw this.erro(construtoTipado.simbolo, `${construtoTipado.simbolo.lexema} não é uma primitiva de texto.`);
@@ -375,6 +366,26 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
375
366
  }
376
367
  return entidadeChamadaResolvida;
377
368
  }
369
+ resolverEntidadeChamada(entidadeChamada) {
370
+ if (entidadeChamada.constructor.name === 'Variavel') {
371
+ const entidadeChamadaResolvidaVariavel = entidadeChamada;
372
+ if (this.primitivasConhecidas.includes(entidadeChamadaResolvidaVariavel.simbolo.lexema)) {
373
+ return entidadeChamadaResolvidaVariavel;
374
+ }
375
+ if (entidadeChamadaResolvidaVariavel.simbolo.lexema in this.tiposDefinidosEmCodigo) {
376
+ return entidadeChamadaResolvidaVariavel;
377
+ }
378
+ const possivelReferencia = this.pilhaEscopos.obterReferenciaFuncao(entidadeChamadaResolvidaVariavel.simbolo.lexema);
379
+ if (possivelReferencia !== null) {
380
+ return new construtos_1.ReferenciaFuncao(entidadeChamada.hashArquivo, entidadeChamada.linha, entidadeChamadaResolvidaVariavel.simbolo, entidadeChamadaResolvidaVariavel.tipo, possivelReferencia.id);
381
+ }
382
+ return new construtos_1.ArgumentoReferenciaFuncao(entidadeChamada.hashArquivo, entidadeChamada.linha, entidadeChamadaResolvidaVariavel.simbolo);
383
+ }
384
+ if (entidadeChamada.constructor.name === 'AcessoMetodoOuPropriedade') {
385
+ return this.resolverEntidadeChamadaAcessoMetodoOuPropriedade(entidadeChamada);
386
+ }
387
+ return entidadeChamada;
388
+ }
378
389
  finalizarChamada(entidadeChamada) {
379
390
  const argumentos = [];
380
391
  if (!this.verificarTipoSimboloAtual(delegua_2.default.PARENTESE_DIREITO)) {
@@ -388,12 +399,11 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
388
399
  }
389
400
  this.consumir(delegua_2.default.PARENTESE_DIREITO, "Esperado ')' após os argumentos.");
390
401
  // Toda chamada precisa saber de antemão qual o tipo resolvido.
391
- let entidadeChamadaResolvida = entidadeChamada;
392
- if (entidadeChamadaResolvida.constructor.name === 'AcessoMetodoOuPropriedade') {
393
- entidadeChamadaResolvida = this.resolverEntidadeChamadaAcessoMetodoOuPropriedade(entidadeChamadaResolvida);
394
- }
402
+ const entidadeChamadaResolvida = this.resolverEntidadeChamada(entidadeChamada);
395
403
  // TODO: Criar forma de validar tipos dos argumentos da entidade chamada.
396
- return new construtos_1.Chamada(this.hashArquivo, entidadeChamadaResolvida, argumentos);
404
+ const construtoChamada = new construtos_1.Chamada(this.hashArquivo, entidadeChamadaResolvida, argumentos);
405
+ construtoChamada.tipo = 'qualquer';
406
+ return construtoChamada;
397
407
  }
398
408
  unario() {
399
409
  if (this.verificarSeSimboloAtualEIgualA(delegua_2.default.NEGACAO, delegua_2.default.SUBTRACAO, delegua_2.default.BIT_NOT, delegua_2.default.INCREMENTAR, delegua_2.default.DECREMENTAR)) {
@@ -422,6 +432,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
422
432
  while (this.verificarSeSimboloAtualEIgualA(delegua_2.default.SUBTRACAO, delegua_2.default.ADICAO, delegua_2.default.MENOS_IGUAL)) {
423
433
  const operador = this.simbolos[this.atual - 1];
424
434
  const direito = this.multiplicar();
435
+ // const tipoInferido = inferirTipoParaBinario(expressao, operador, direito);
425
436
  expressao = new construtos_1.Binario(this.hashArquivo, expressao, operador, direito);
426
437
  }
427
438
  if (this.verificarSeSimboloAtualEIgualA(delegua_2.default.MAIS_IGUAL)) {
@@ -524,13 +535,6 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
524
535
  case 'AcessoMetodoOuPropriedade':
525
536
  const expressaoAcessoMetodoOuPropriedade = expressao;
526
537
  return new construtos_1.DefinirValor(this.hashArquivo, igual.linha, expressaoAcessoMetodoOuPropriedade.objeto, expressaoAcessoMetodoOuPropriedade.simbolo, valor);
527
- /* case 'Super':
528
- const expressaoSuper = expressao as Super;
529
- return new DefinirValor(
530
- this.hashArquivo,
531
- igual.linha,
532
- expressaoSuper.
533
- ); */
534
538
  case 'AcessoIndiceVariavel':
535
539
  const expressaoAcessoIndiceVariavel = expressao;
536
540
  return new construtos_1.AtribuicaoPorIndice(this.hashArquivo, expressaoAcessoIndiceVariavel.linha, expressaoAcessoIndiceVariavel.entidadeChamada, expressaoAcessoIndiceVariavel.indice, valor);
@@ -561,41 +565,6 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
561
565
  this.verificarSeSimboloAtualEIgualA(delegua_2.default.PONTO_E_VIRGULA);
562
566
  return declaracoes;
563
567
  }
564
- declaracaoEnquanto() {
565
- try {
566
- this.blocos += 1;
567
- const condicao = this.expressao();
568
- const corpo = this.resolverDeclaracao();
569
- return new declaracoes_1.Enquanto(condicao, corpo);
570
- }
571
- finally {
572
- this.blocos -= 1;
573
- }
574
- }
575
- declaracaoEscreva() {
576
- const simboloAtual = this.simbolos[this.atual];
577
- this.consumir(delegua_2.default.PARENTESE_ESQUERDO, "Esperado '(' antes dos valores em escreva.");
578
- const argumentos = [];
579
- if (!this.verificarTipoSimboloAtual(delegua_2.default.PARENTESE_DIREITO)) {
580
- do {
581
- argumentos.push(this.expressao());
582
- } while (this.verificarSeSimboloAtualEIgualA(delegua_2.default.VIRGULA));
583
- }
584
- this.consumir(delegua_2.default.PARENTESE_DIREITO, "Esperado ')' após os valores em escreva.");
585
- // Ponto-e-vírgula é opcional aqui.
586
- this.verificarSeSimboloAtualEIgualA(delegua_2.default.PONTO_E_VIRGULA);
587
- return new declaracoes_1.Escreva(Number(simboloAtual.linha), simboloAtual.hashArquivo, argumentos);
588
- }
589
- declaracaoExpressao() {
590
- // Se há decoradores a serem adicionados aqui, obtemo-los agora,
591
- // para evitar que outros passos recursivos peguem-los antes.
592
- const decoradores = Array.from(this.pilhaDecoradores);
593
- this.pilhaDecoradores = [];
594
- const expressao = this.expressao();
595
- // Ponto-e-vírgula é opcional aqui.
596
- this.verificarSeSimboloAtualEIgualA(delegua_2.default.PONTO_E_VIRGULA);
597
- return new declaracoes_1.Expressao(expressao, decoradores);
598
- }
599
568
  declaracaoComentarioMultilinha() {
600
569
  let simboloComentario;
601
570
  const conteudos = [];
@@ -617,6 +586,17 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
617
586
  this.verificarSeSimboloAtualEIgualA(delegua_2.default.PONTO_E_VIRGULA);
618
587
  return new declaracoes_1.Continua(this.simbolos[this.atual - 1]);
619
588
  }
589
+ declaracaoEnquanto() {
590
+ try {
591
+ this.blocos += 1;
592
+ const condicao = this.expressao();
593
+ const corpo = this.resolverDeclaracao();
594
+ return new declaracoes_1.Enquanto(condicao, corpo);
595
+ }
596
+ finally {
597
+ this.blocos -= 1;
598
+ }
599
+ }
620
600
  declaracaoEscolha() {
621
601
  try {
622
602
  this.blocos += 1;
@@ -674,6 +654,30 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
674
654
  this.blocos -= 1;
675
655
  }
676
656
  }
657
+ declaracaoEscreva() {
658
+ const simboloAtual = this.simbolos[this.atual];
659
+ this.consumir(delegua_2.default.PARENTESE_ESQUERDO, "Esperado '(' antes dos valores em escreva.");
660
+ const argumentos = [];
661
+ if (!this.verificarTipoSimboloAtual(delegua_2.default.PARENTESE_DIREITO)) {
662
+ do {
663
+ argumentos.push(this.expressao());
664
+ } while (this.verificarSeSimboloAtualEIgualA(delegua_2.default.VIRGULA));
665
+ }
666
+ this.consumir(delegua_2.default.PARENTESE_DIREITO, "Esperado ')' após os valores em escreva.");
667
+ // Ponto-e-vírgula é opcional aqui.
668
+ this.verificarSeSimboloAtualEIgualA(delegua_2.default.PONTO_E_VIRGULA);
669
+ return new declaracoes_1.Escreva(Number(simboloAtual.linha), simboloAtual.hashArquivo, argumentos);
670
+ }
671
+ declaracaoExpressao() {
672
+ // Se há decoradores a serem adicionados aqui, obtemo-los agora,
673
+ // para evitar que outros passos recursivos peguem-los antes.
674
+ const decoradores = Array.from(this.pilhaDecoradores);
675
+ this.pilhaDecoradores = [];
676
+ const expressao = this.expressao();
677
+ // Ponto-e-vírgula é opcional aqui.
678
+ this.verificarSeSimboloAtualEIgualA(delegua_2.default.PONTO_E_VIRGULA);
679
+ return new declaracoes_1.Expressao(expressao, decoradores);
680
+ }
677
681
  declaracaoFalhar() {
678
682
  const simboloFalha = this.simbolos[this.atual - 1];
679
683
  return new declaracoes_1.Falhar(simboloFalha, this.declaracaoExpressao().expressao);
@@ -691,11 +695,16 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
691
695
  this.blocos -= 1;
692
696
  }
693
697
  }
698
+ /**
699
+ * O símbolo é emitido aqui para fins de formatação, mas este método é
700
+ * sobrescrito em `delegua-node`.
701
+ * @returns {Importar} Uma declaração `Importar`.
702
+ */
694
703
  declaracaoImportar() {
695
704
  this.consumir(delegua_2.default.PARENTESE_ESQUERDO, "Esperado '(' após declaração.");
696
705
  const caminho = this.expressao();
697
- const simboloFechamento = this.consumir(delegua_2.default.PARENTESE_DIREITO, "Esperado ')' após declaração.");
698
- return new declaracoes_1.Importar(caminho, simboloFechamento);
706
+ this.consumir(delegua_2.default.PARENTESE_DIREITO, "Esperado ')' após declaração.");
707
+ return new declaracoes_1.Importar(caminho);
699
708
  }
700
709
  /**
701
710
  * Declaração para comando `leia`, para ler dados de entrada do usuário.
@@ -782,6 +791,8 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
782
791
  delegua_2.default.CHAVE_ESQUERDA,
783
792
  delegua_2.default.COLCHETE_ESQUERDO,
784
793
  delegua_2.default.FALSO,
794
+ delegua_2.default.FUNCAO,
795
+ delegua_2.default.FUNÇÃO,
785
796
  delegua_2.default.IDENTIFICADOR,
786
797
  delegua_2.default.ISTO,
787
798
  delegua_2.default.NEGACAO,
@@ -1013,6 +1024,12 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
1013
1024
  case 'AcessoPropriedade':
1014
1025
  const entidadeChamadaAcessoPropriedade = entidadeChamadaChamada;
1015
1026
  return entidadeChamadaAcessoPropriedade.tipoRetornoPropriedade;
1027
+ case 'ArgumentoReferenciaFuncao':
1028
+ // TODO: Voltar aqui se necessário.
1029
+ return 'qualquer';
1030
+ case 'ReferenciaFuncao':
1031
+ const entidadeChamadaReferenciaFuncao = entidadeChamadaChamada;
1032
+ return entidadeChamadaReferenciaFuncao.tipo;
1016
1033
  case 'Variavel':
1017
1034
  const entidadeChamadaVariavel = entidadeChamadaChamada;
1018
1035
  return entidadeChamadaVariavel.tipo;
@@ -1020,7 +1037,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
1020
1037
  break;
1021
1038
  case 'FuncaoConstruto':
1022
1039
  const funcaoConstruto = inicializador;
1023
- return `função<${funcaoConstruto.tipoRetorno}>`;
1040
+ return `função<${funcaoConstruto.tipo}>`;
1024
1041
  case 'Leia':
1025
1042
  return 'texto';
1026
1043
  case 'Dupla':
@@ -1152,8 +1169,10 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
1152
1169
  // para ela. Vai ser atualizado após avaliação do corpo da função.
1153
1170
  this.pilhaEscopos.definirTipoVariavel(simbolo.lexema, 'qualquer');
1154
1171
  const corpoDaFuncao = this.corpoDaFuncao(tipo);
1155
- this.pilhaEscopos.definirTipoVariavel(simbolo.lexema, corpoDaFuncao.tipoRetorno);
1156
- return new declaracoes_1.FuncaoDeclaracao(simbolo, corpoDaFuncao, corpoDaFuncao.tipoRetorno, decoradores);
1172
+ this.pilhaEscopos.definirTipoVariavel(simbolo.lexema, corpoDaFuncao.tipo);
1173
+ const funcaoDeclaracao = new declaracoes_1.FuncaoDeclaracao(simbolo, corpoDaFuncao, corpoDaFuncao.tipo, decoradores);
1174
+ this.pilhaEscopos.registrarReferenciaFuncao(simbolo.lexema, funcaoDeclaracao);
1175
+ return funcaoDeclaracao;
1157
1176
  }
1158
1177
  logicaComumParametros() {
1159
1178
  const parametros = [];
@@ -1251,6 +1270,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
1251
1270
  }
1252
1271
  }
1253
1272
  const tiposRetornos = new Set(expressoesRetorna.map(e => e.tipo));
1273
+ let retornaChamadoExplicitamente = tiposRetornos.size > 0;
1254
1274
  if (tiposRetornos.size > 1 && tipoRetorno !== 'qualquer') {
1255
1275
  let tiposEncontrados = Array.from(tiposRetornos).reduce((acumulador, valor) => acumulador += valor + ', ', '');
1256
1276
  tiposEncontrados = tiposEncontrados.slice(0, -2);
@@ -1265,7 +1285,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
1265
1285
  const tipoRetornoDeduzido = tiposRetornos.values().next().value;
1266
1286
  tipoRetorno = tipoRetornoDeduzido;
1267
1287
  }
1268
- else if (!definicaoExplicitaDeTipo) {
1288
+ else if (!retornaChamadoExplicitamente && !definicaoExplicitaDeTipo) {
1269
1289
  // Ou, se esses retornos sequer existem, e o tipo explícito não é
1270
1290
  // 'qualquer', o tipo inferido é 'vazio'.
1271
1291
  tipoRetorno = 'vazio';
@@ -1382,6 +1402,8 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
1382
1402
  this.pilhaEscopos = new pilha_escopos_1.PilhaEscopos();
1383
1403
  this.pilhaEscopos.empilhar(new informacao_escopo_1.InformacaoEscopo());
1384
1404
  // Funções nativas de Delégua
1405
+ this.pilhaEscopos.definirTipoVariavel('aleatorio', 'inteiro');
1406
+ this.pilhaEscopos.definirTipoVariavel('aleatorioEntre', 'inteiro');
1385
1407
  this.pilhaEscopos.definirTipoVariavel('filtrarPor', 'qualquer[]');
1386
1408
  this.pilhaEscopos.definirTipoVariavel('inteiro', 'inteiro');
1387
1409
  this.pilhaEscopos.definirTipoVariavel('mapear', 'qualquer[]');
@@ -1 +1 @@
1
- {"version":3,"file":"avaliador-sintatico.js","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"avaliador-sintatico.js","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"avaliador-sintatico-egua-classico.d.ts","sourceRoot":"","sources":["../../../fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"avaliador-sintatico-egua-classico.d.ts","sourceRoot":"","sources":["../../../fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.ts"],"names":[],"mappings":"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"}
@@ -491,8 +491,8 @@ class AvaliadorSintaticoEguaClassico {
491
491
  declaracaoImportar() {
492
492
  this.consumir(egua_classico_1.default.PARENTESE_ESQUERDO, "Esperado '(' após declaração.");
493
493
  const caminho = this.expressao();
494
- const simboloFechamento = this.consumir(egua_classico_1.default.PARENTESE_DIREITO, "Esperado ')' após declaração.");
495
- return new declaracoes_1.Importar(caminho, simboloFechamento);
494
+ this.consumir(egua_classico_1.default.PARENTESE_DIREITO, "Esperado ')' após declaração.");
495
+ return new declaracoes_1.Importar(caminho);
496
496
  }
497
497
  declaracaoTente() {
498
498
  this.consumir(egua_classico_1.default.CHAVE_ESQUERDA, "Esperado '{' após a declaração 'tente'.");