@designliquido/delegua 1.26.2 → 1.27.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/README.md +7 -3
  2. package/avaliador-sintatico/avaliador-sintatico-base.d.ts +7 -0
  3. package/avaliador-sintatico/avaliador-sintatico-base.d.ts.map +1 -1
  4. package/avaliador-sintatico/avaliador-sintatico-base.js +16 -0
  5. package/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -1
  6. package/avaliador-sintatico/avaliador-sintatico.d.ts +25 -0
  7. package/avaliador-sintatico/avaliador-sintatico.d.ts.map +1 -1
  8. package/avaliador-sintatico/avaliador-sintatico.js +99 -6
  9. package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  10. package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.d.ts.map +1 -1
  11. package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.js +4 -0
  12. package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.js.map +1 -1
  13. package/bin/package.json +1 -1
  14. package/interfaces/simbolo-interface.d.ts +1 -0
  15. package/interfaces/simbolo-interface.d.ts.map +1 -1
  16. package/interpretador/interpretador.d.ts +1 -1
  17. package/interpretador/interpretador.d.ts.map +1 -1
  18. package/interpretador/interpretador.js +12 -3
  19. package/interpretador/interpretador.js.map +1 -1
  20. package/lexador/lexador-base.d.ts +1 -1
  21. package/lexador/lexador-base.d.ts.map +1 -1
  22. package/lexador/lexador-base.js +2 -2
  23. package/lexador/lexador-base.js.map +1 -1
  24. package/lexador/lexador.d.ts +1 -1
  25. package/lexador/lexador.d.ts.map +1 -1
  26. package/lexador/lexador.js +3 -3
  27. package/lexador/lexador.js.map +1 -1
  28. package/lexador/simbolo.d.ts +2 -1
  29. package/lexador/simbolo.d.ts.map +1 -1
  30. package/lexador/simbolo.js +2 -1
  31. package/lexador/simbolo.js.map +1 -1
  32. package/package.json +1 -1
  33. package/tradutores/index.d.ts +0 -4
  34. package/tradutores/index.d.ts.map +1 -1
  35. package/tradutores/index.js +0 -4
  36. package/tradutores/index.js.map +1 -1
  37. package/tradutores/tradutor-elixir.d.ts +17 -0
  38. package/tradutores/tradutor-elixir.d.ts.map +1 -1
  39. package/tradutores/tradutor-elixir.js +82 -2
  40. package/tradutores/tradutor-elixir.js.map +1 -1
  41. package/tradutores/tradutor-javascript.d.ts.map +1 -1
  42. package/tradutores/tradutor-javascript.js +5 -0
  43. package/tradutores/tradutor-javascript.js.map +1 -1
  44. package/tradutores/tradutor-python.d.ts.map +1 -1
  45. package/tradutores/tradutor-python.js +5 -0
  46. package/tradutores/tradutor-python.js.map +1 -1
  47. package/tradutores/tradutor-ruby.d.ts.map +1 -1
  48. package/tradutores/tradutor-ruby.js +5 -0
  49. package/tradutores/tradutor-ruby.js.map +1 -1
  50. package/umd/delegua.js +481 -4800
  51. package/tradutores/tradutor-assembly-arm.d.ts +0 -98
  52. package/tradutores/tradutor-assembly-arm.d.ts.map +0 -1
  53. package/tradutores/tradutor-assembly-arm.js +0 -711
  54. package/tradutores/tradutor-assembly-arm.js.map +0 -1
  55. package/tradutores/tradutor-assembly-risc-v.d.ts +0 -100
  56. package/tradutores/tradutor-assembly-risc-v.d.ts.map +0 -1
  57. package/tradutores/tradutor-assembly-risc-v.js +0 -688
  58. package/tradutores/tradutor-assembly-risc-v.js.map +0 -1
  59. package/tradutores/tradutor-assembly-x64.d.ts +0 -17
  60. package/tradutores/tradutor-assembly-x64.d.ts.map +0 -1
  61. package/tradutores/tradutor-assembly-x64.js +0 -38
  62. package/tradutores/tradutor-assembly-x64.js.map +0 -1
  63. package/tradutores/tradutor-webassembly.d.ts +0 -159
  64. package/tradutores/tradutor-webassembly.d.ts.map +0 -1
  65. package/tradutores/tradutor-webassembly.js +0 -886
  66. package/tradutores/tradutor-webassembly.js.map +0 -1
  67. package/tradutores/x64/alocador-registradores.d.ts +0 -29
  68. package/tradutores/x64/alocador-registradores.d.ts.map +0 -1
  69. package/tradutores/x64/alocador-registradores.js +0 -192
  70. package/tradutores/x64/alocador-registradores.js.map +0 -1
  71. package/tradutores/x64/codegen.d.ts +0 -43
  72. package/tradutores/x64/codegen.d.ts.map +0 -1
  73. package/tradutores/x64/codegen.js +0 -416
  74. package/tradutores/x64/codegen.js.map +0 -1
  75. package/tradutores/x64/dessa.d.ts +0 -9
  76. package/tradutores/x64/dessa.d.ts.map +0 -1
  77. package/tradutores/x64/dessa.js +0 -124
  78. package/tradutores/x64/dessa.js.map +0 -1
  79. package/tradutores/x64/dominancia.d.ts +0 -25
  80. package/tradutores/x64/dominancia.d.ts.map +0 -1
  81. package/tradutores/x64/dominancia.js +0 -129
  82. package/tradutores/x64/dominancia.js.map +0 -1
  83. package/tradutores/x64/ir.d.ts +0 -144
  84. package/tradutores/x64/ir.d.ts.map +0 -1
  85. package/tradutores/x64/ir.js +0 -44
  86. package/tradutores/x64/ir.js.map +0 -1
  87. package/tradutores/x64/liveness.d.ts +0 -12
  88. package/tradutores/x64/liveness.d.ts.map +0 -1
  89. package/tradutores/x64/liveness.js +0 -159
  90. package/tradutores/x64/liveness.js.map +0 -1
  91. package/tradutores/x64/lowering.d.ts +0 -7
  92. package/tradutores/x64/lowering.d.ts.map +0 -1
  93. package/tradutores/x64/lowering.js +0 -904
  94. package/tradutores/x64/lowering.js.map +0 -1
  95. package/tradutores/x64/ssa.d.ts +0 -9
  96. package/tradutores/x64/ssa.d.ts.map +0 -1
  97. package/tradutores/x64/ssa.js +0 -170
  98. package/tradutores/x64/ssa.js.map +0 -1
  99. package/tradutores/x64/tipos-x64.d.ts +0 -12
  100. package/tradutores/x64/tipos-x64.d.ts.map +0 -1
  101. package/tradutores/x64/tipos-x64.js +0 -59
  102. package/tradutores/x64/tipos-x64.js.map +0 -1
package/README.md CHANGED
@@ -136,10 +136,14 @@ Para usar dentro de uma página de internet, entre _tags_ `<script>`, veja o pro
136
136
 
137
137
  Delégua possui alguns compiladores implementados. Compiladores passam código Delégua para binário, gerando executáveis, cuja execução ocorre com a máxima performance possível.
138
138
 
139
- Para este núcleo, alguns compiladores são tradutores de Delégua para certos _assemblies_ (ou representações intermediárias), e que precisam de [`delegua-node`](https://github.com/DesignLiquido/delegua) ou alguma outra interface para funcionarem, como por exemplo, nossa [extensão para VSCode e derivados](https://github.com/DesignLiquido/vscode). Os detalhes da utilização podem ser vistos nos respectivos projetos. Aqui são implementados tradutores para as seguintes arquiteturas de processador:
139
+ Para este núcleo, alguns compiladores são tradutores de Delégua para certos _assemblies_ (ou representações intermediárias), e que precisam de [`delegua-node`](https://github.com/DesignLiquido/delegua) ou alguma outra interface para funcionarem, como por exemplo, nossa [extensão para VSCode e derivados](https://github.com/DesignLiquido/vscode). Os detalhes da utilização podem ser vistos nos respectivos projetos.
140
140
 
141
- - x64: NASM, YASM e FASM. Pode funcionar com MASM e GAS, mas requer algumas modificações pontuais na sintaxe de macros;
142
- - ARM: Linux e Android.
141
+ Os tradutores de arquitetura de processador (ou de outros alvos de execução nativa, como WebAssembly) não vivem neste núcleo: têm implementação própria, autocontida, em pacotes separados dentro de [`delegua-llvm-completo`](https://github.com/DesignLiquido/delegua-llvm-completo/tree/main/pacotes), que dependem deste núcleo apenas para léxico/sintaxe (`Lexador`, `AvaliadorSintatico`) e para os tipos da AST:
142
+
143
+ - [`delegua-x64`](https://github.com/DesignLiquido/delegua-llvm-completo/tree/main/pacotes/delegua-x64): NASM, YASM e FASM. Pode funcionar com MASM e GAS, mas requer algumas modificações pontuais na sintaxe de macros.
144
+ - [`delegua-arm`](https://github.com/DesignLiquido/delegua-llvm-completo/tree/main/pacotes/delegua-arm): Linux e Android.
145
+ - [`delegua-risc-v`](https://github.com/DesignLiquido/delegua-llvm-completo/tree/main/pacotes/delegua-risc-v): Linux, 32 e 64 bits.
146
+ - [`delegua-wasm`](https://github.com/DesignLiquido/delegua-llvm-completo/tree/main/pacotes/delegua-wasm): WebAssembly via WAT e `wat2wasm`.
143
147
 
144
148
  Já outros compiladores demandam uma infraestrutura de código mais robusta e são projetos separados, que ou usam este núcleo diretamente, ou usam a sintaxe implementada no núcleo de forma independente.
145
149
  São eles:
@@ -23,6 +23,13 @@ export declare abstract class AvaliadorSintaticoBase implements AvaliadorSintati
23
23
  protected estaNoFinal(): boolean;
24
24
  protected avancarEDevolverAnterior(): SimboloInterface;
25
25
  protected verificarSeSimboloAtualEIgualA(...argumentos: string[]): boolean;
26
+ /**
27
+ * Avança o cursor por quaisquer símbolos de comentário (de linha ou
28
+ * multilinha) consecutivos, descartando-os. Usado em construtos onde
29
+ * comentários podem aparecer entre elementos, mas não fazem sentido
30
+ * como parte da árvore sintática resultante (ex.: dicionários).
31
+ */
32
+ protected pularComentarios(): void;
26
33
  /**
27
34
  * Os métodos a seguir devem ser implementados nos seus respectivos
28
35
  * dialetos por diferentes razões: seja porque o dialeto correspondente
@@ -1 +1 @@
1
- {"version":3,"file":"avaliador-sintatico-base.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"avaliador-sintatico-base.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico-base.ts"],"names":[],"mappings":"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"}
@@ -74,6 +74,22 @@ class AvaliadorSintaticoBase {
74
74
  }
75
75
  return false;
76
76
  }
77
+ /**
78
+ * Avança o cursor por quaisquer símbolos de comentário (de linha ou
79
+ * multilinha) consecutivos, descartando-os. Usado em construtos onde
80
+ * comentários podem aparecer entre elementos, mas não fazem sentido
81
+ * como parte da árvore sintática resultante (ex.: dicionários).
82
+ */
83
+ pularComentarios() {
84
+ // Os tipos de símbolo de comentário não fazem parte do conjunto reduzido
85
+ // de `tiposDeSimbolos` importado nesta classe base, por isso são usados
86
+ // aqui como literais de texto (seus valores são idênticos às chaves do
87
+ // conjunto completo, definido em `tipos-de-simbolos/delegua.ts`).
88
+ while (this.simbolos[this.atual].tipo === 'COMENTARIO' ||
89
+ this.simbolos[this.atual].tipo === 'LINHA_COMENTARIO') {
90
+ this.avancarEDevolverAnterior();
91
+ }
92
+ }
77
93
  async declaracaoBloco() {
78
94
  const simboloInicioBloco = this.consumir(comum_1.default.CHAVE_ESQUERDA, "Esperado '{' para abertura de bloco.");
79
95
  return new declaracoes_1.Bloco(simboloInicioBloco.hashArquivo, Number(simboloInicioBloco.linha), await this.blocoEscopo());
@@ -1 +1 @@
1
- {"version":3,"file":"avaliador-sintatico-base.js","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"avaliador-sintatico-base.js","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico-base.ts"],"names":[],"mappings":"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"}
@@ -112,6 +112,31 @@ export declare class AvaliadorSintatico extends AvaliadorSintaticoBase implement
112
112
  private obterTiposParaConsultaPrimitiva;
113
113
  private resolverAcessoMetodoConhecido;
114
114
  protected validarArgumentosEntidadeChamada(argumentosEntidadeChamada: InformacaoElementoSintatico[], argumentosUtilizados: ConstrutoInterface[]): string[];
115
+ /**
116
+ * `número`, `real`, `inteiro` e `longo` são todos representados internamente
117
+ * como números primitivos, então são intercambiáveis na validação de tipos de
118
+ * argumentos de chamadas de função/método.
119
+ * @param tipo O tipo a ser normalizado.
120
+ * @returns `número` quando `tipo` é um dos tipos numéricos primitivos, ou `tipo` sem alterações.
121
+ */
122
+ private normalizarTipoNumerico;
123
+ /**
124
+ * Garante que um construto usado em um contexto explicitamente tipado como `real`
125
+ * (declaração de variável/constante, valor padrão de parâmetro, retorno de função ou
126
+ * argumento de `real()`) seja tratado como ponto flutuante na tradução, mesmo que o
127
+ * valor original seja um `número` inteiro-valorado:
128
+ * - Se for um literal numérico (ex.: `10`), apenas marca seu tipo como `real` para que
129
+ * os tradutores emitam `10.0` em vez de `10`.
130
+ * - Se for outra expressão de tipo numérico conhecido (variável, chamada, etc., ex.: `y`
131
+ * onde `y: número`), envolve o construto em uma chamada a `real(...)`, que os
132
+ * tradutores mapeiam para a conversão de ponto flutuante idiomática de cada linguagem
133
+ * (ex.: `float(y)` em Python, `y.to_f` em Ruby).
134
+ * - Se o tipo do construto já é `real`, ou é desconhecido (`qualquer`) ou não numérico,
135
+ * retorna o construto sem alterações — não é seguro converter estaticamente.
136
+ * @param construto O construto a ser garantido como `real`.
137
+ * @returns O construto (possivelmente envolvido em `real(...)`) a ser usado no lugar do original.
138
+ */
139
+ private garantirTipoReal;
115
140
  /**
116
141
  * Diversas verificações de resolução de entidade chamada, como resolver chamada da pilha ou usar referência, argumentos, etc.
117
142
  * @param entidadeChamada O construto da entidade chamada.
@@ -1 +1 @@
1
- {"version":3,"file":"avaliador-sintatico.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"avaliador-sintatico.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico.ts"],"names":[],"mappings":"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"}
@@ -112,7 +112,10 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
112
112
  return this.simbolos[this.atual].lexema;
113
113
  }
114
114
  const lexemaOriginal = this.simbolos[this.atual].lexema;
115
- const lexemaElementar = lexemaOriginal.toLowerCase();
115
+ // `decimal` é sinônimo de `real` como nome de tipo; `real` é o nome
116
+ // preferido e é o único usado internamente a partir daqui.
117
+ const lexemaElementarBruto = lexemaOriginal.toLowerCase();
118
+ const lexemaElementar = lexemaElementarBruto === 'decimal' ? 'real' : lexemaElementarBruto;
116
119
  const tipoElementarResolvido = tipos.find((tipo) => tipo === lexemaElementar);
117
120
  if (!tipoElementarResolvido) {
118
121
  // Mantém o avaliador sintático sincronizado mesmo com tipos não reconhecidos
@@ -261,18 +264,22 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
261
264
  this.avancarEDevolverAnterior();
262
265
  const chaves = [];
263
266
  const valores = [];
267
+ this.pularComentarios();
264
268
  if (this.verificarSeSimboloAtualEIgualA(delegua_2.default.CHAVE_DIREITA)) {
265
269
  return new construtos_1.Dicionario(this.hashArquivo, Number(simboloChaveEsquerda.linha), [], []);
266
270
  }
267
271
  while (!this.verificarSeSimboloAtualEIgualA(delegua_2.default.CHAVE_DIREITA)) {
268
272
  const chave = await this.obterChaveDicionario();
269
273
  this.consumir(delegua_2.default.DOIS_PONTOS, "Esperado ':' entre chave e valor.");
274
+ this.pularComentarios();
270
275
  const valor = await this.atribuir();
271
276
  chaves.push(chave);
272
277
  valores.push(valor);
278
+ this.pularComentarios();
273
279
  if (this.simbolos[this.atual].tipo !== delegua_2.default.CHAVE_DIREITA) {
274
280
  this.consumir(delegua_2.default.VIRGULA, 'Esperado vírgula antes da próxima expressão.');
275
281
  }
282
+ this.pularComentarios();
276
283
  }
277
284
  return new construtos_1.Dicionario(this.hashArquivo, Number(simboloChaveEsquerda.linha), chaves, valores);
278
285
  }
@@ -529,7 +536,9 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
529
536
  case delegua_2.default.NÚMERO:
530
537
  case delegua_2.default.TEXTO:
531
538
  const simboloNumeroTexto = this.avancarEDevolverAnterior();
532
- const tipoInferido = (0, inferenciador_1.inferirTipoVariavel)(simboloNumeroTexto.literal);
539
+ const tipoInferido = simboloNumeroTexto.ehNumeroReal
540
+ ? 'real'
541
+ : (0, inferenciador_1.inferirTipoVariavel)(simboloNumeroTexto.literal);
533
542
  const delimitadorTexto = simboloNumeroTexto.tipo === delegua_2.default.TEXTO
534
543
  ? simboloNumeroTexto.delimitadorTexto
535
544
  : undefined;
@@ -916,17 +925,64 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
916
925
  argumentoUtilizado.tipo.startsWith('função') ||
917
926
  argumentoUtilizado instanceof construtos_1.FuncaoConstruto
918
927
  ? 'função'
919
- : argumentoUtilizado.tipo;
928
+ : this.normalizarTipoNumerico(argumentoUtilizado.tipo);
920
929
  const tipoArgumentoEntidadeChamada = argumentoEntidadeChamada.tipo.startsWith('funcao') ||
921
930
  argumentoEntidadeChamada.tipo.startsWith('função')
922
931
  ? 'função'
923
- : argumentoEntidadeChamada.tipo;
932
+ : this.normalizarTipoNumerico(argumentoEntidadeChamada.tipo);
924
933
  if (tipoArgumentoUtilizado !== tipoArgumentoEntidadeChamada) {
925
934
  possiveisErros.push(`Argumento: ${argumentoEntidadeChamada.nome}. Tipo esperado: ${argumentoEntidadeChamada.tipo}; Tipo utilizado: ${argumentoUtilizado.tipo}`);
926
935
  }
927
936
  }
928
937
  return possiveisErros;
929
938
  }
939
+ /**
940
+ * `número`, `real`, `inteiro` e `longo` são todos representados internamente
941
+ * como números primitivos, então são intercambiáveis na validação de tipos de
942
+ * argumentos de chamadas de função/método.
943
+ * @param tipo O tipo a ser normalizado.
944
+ * @returns `número` quando `tipo` é um dos tipos numéricos primitivos, ou `tipo` sem alterações.
945
+ */
946
+ normalizarTipoNumerico(tipo) {
947
+ return ['número', 'numero', 'real', 'inteiro', 'longo'].includes(tipo) ? 'número' : tipo;
948
+ }
949
+ /**
950
+ * Garante que um construto usado em um contexto explicitamente tipado como `real`
951
+ * (declaração de variável/constante, valor padrão de parâmetro, retorno de função ou
952
+ * argumento de `real()`) seja tratado como ponto flutuante na tradução, mesmo que o
953
+ * valor original seja um `número` inteiro-valorado:
954
+ * - Se for um literal numérico (ex.: `10`), apenas marca seu tipo como `real` para que
955
+ * os tradutores emitam `10.0` em vez de `10`.
956
+ * - Se for outra expressão de tipo numérico conhecido (variável, chamada, etc., ex.: `y`
957
+ * onde `y: número`), envolve o construto em uma chamada a `real(...)`, que os
958
+ * tradutores mapeiam para a conversão de ponto flutuante idiomática de cada linguagem
959
+ * (ex.: `float(y)` em Python, `y.to_f` em Ruby).
960
+ * - Se o tipo do construto já é `real`, ou é desconhecido (`qualquer`) ou não numérico,
961
+ * retorna o construto sem alterações — não é seguro converter estaticamente.
962
+ * @param construto O construto a ser garantido como `real`.
963
+ * @returns O construto (possivelmente envolvido em `real(...)`) a ser usado no lugar do original.
964
+ */
965
+ garantirTipoReal(construto) {
966
+ if (!construto) {
967
+ return construto;
968
+ }
969
+ if (construto.constructor === construtos_1.Literal && typeof construto.valor === 'number') {
970
+ construto.tipo = 'real';
971
+ return construto;
972
+ }
973
+ if (construto.tipo === 'real') {
974
+ return construto;
975
+ }
976
+ const ehTipoNumericoConhecido = typeof construto.tipo === 'string' &&
977
+ ['número', 'numero', 'inteiro', 'longo'].includes(construto.tipo);
978
+ if (!ehTipoNumericoConhecido) {
979
+ return construto;
980
+ }
981
+ const simboloReal = new simbolo_1.Simbolo(delegua_2.default.IDENTIFICADOR, 'real', null, construto.linha, construto.hashArquivo);
982
+ const chamadaReal = new construtos_1.Chamada(construto.hashArquivo, new construtos_1.Variavel(construto.hashArquivo, simboloReal, 'função'), [construto]);
983
+ chamadaReal.tipo = 'real';
984
+ return chamadaReal;
985
+ }
930
986
  /**
931
987
  * Diversas verificações de resolução de entidade chamada, como resolver chamada da pilha ou usar referência, argumentos, etc.
932
988
  * @param entidadeChamada O construto da entidade chamada.
@@ -940,6 +996,18 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
940
996
  }
941
997
  if (entidadeChamada.constructor === construtos_1.Variavel) {
942
998
  const entidadeChamadaResolvidaVariavel = entidadeChamada;
999
+ // `real(valor)` converte explicitamente para ponto flutuante, então um
1000
+ // literal numérico passado diretamente deve preservar a natureza real
1001
+ // na tradução (ex.: `real(10)` -> `real(10.0)`). Note que aqui só marcamos
1002
+ // literais diretamente, sem usar garantirTipoReal(): o argumento já está
1003
+ // dentro de uma chamada a `real(...)`, então não deve ser envolvido de novo.
1004
+ if (entidadeChamadaResolvidaVariavel.simbolo.lexema === 'real' && argumentos.length > 0) {
1005
+ const primeiroArgumento = argumentos[0];
1006
+ if (primeiroArgumento.constructor === construtos_1.Literal &&
1007
+ typeof primeiroArgumento.valor === 'number') {
1008
+ primeiroArgumento.tipo = 'real';
1009
+ }
1010
+ }
943
1011
  const informacoesFuncaoBibliotecaGlobal = this.pilhaEscopos.obterBibliotecaGlobal(entidadeChamadaResolvidaVariavel.simbolo.lexema);
944
1012
  if (informacoesFuncaoBibliotecaGlobal &&
945
1013
  Array.isArray(informacoesFuncaoBibliotecaGlobal.subElementos) &&
@@ -2075,8 +2143,11 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
2075
2143
  throw this.erro(simboloVariavel, 'Quantidade de identificadores à esquerda do igual é diferente da quantidade de valores à direita.');
2076
2144
  }
2077
2145
  for (let [indice, identificador] of identificadores.entries()) {
2146
+ const tipoInferido = this.logicaComumInferenciaTiposVariaveisEConstantes(inicializadores[indice], tipo) ?? tipo;
2147
+ if (tipoExplicito && tipo === 'real') {
2148
+ inicializadores[indice] = this.garantirTipoReal(inicializadores[indice]);
2149
+ }
2078
2150
  const inicializador = inicializadores[indice];
2079
- const tipoInferido = this.logicaComumInferenciaTiposVariaveisEConstantes(inicializador, tipo) ?? tipo;
2080
2151
  const informacaoSintatica = tipo === 'dicionário'
2081
2152
  ? this.resolverInformacaoElementoSintaticoDeDicionario(inicializador)
2082
2153
  : new informacao_elemento_sintatico_1.InformacaoElementoSintatico(identificador.lexema, tipoInferido);
@@ -2142,6 +2213,9 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
2142
2213
  // Se tipo ainda não foi definido, infere.
2143
2214
  tipo =
2144
2215
  this.logicaComumInferenciaTiposVariaveisEConstantes(inicializadores[indice], tipo) ?? tipo;
2216
+ if (tipoExplicito && tipo === 'real') {
2217
+ inicializadores[indice] = this.garantirTipoReal(inicializadores[indice]);
2218
+ }
2145
2219
  if (tipo !== 'dicionário') {
2146
2220
  this.pilhaEscopos.definirInformacoesVariavel(identificador.lexema, new informacao_elemento_sintatico_1.InformacaoElementoSintatico(identificador.lexema, tipo));
2147
2221
  }
@@ -2206,6 +2280,9 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
2206
2280
  const valorPadrao = await this.primario();
2207
2281
  parametro.valorPadrao = valorPadrao;
2208
2282
  }
2283
+ if (parametro.tipoDado === 'real') {
2284
+ parametro.valorPadrao = this.garantirTipoReal(parametro.valorPadrao);
2285
+ }
2209
2286
  this.pilhaEscopos.definirInformacoesVariavel(parametro.nome.lexema, new informacao_elemento_sintatico_1.InformacaoElementoSintatico(parametro.nome.lexema, parametro.tipoDado || 'qualquer'));
2210
2287
  parametros.push(parametro);
2211
2288
  if (parametro.abrangencia === 'multiplo')
@@ -2235,6 +2312,11 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
2235
2312
  for (const declaracao of corpo) {
2236
2313
  expressoesRetorna = expressoesRetorna.concat((0, comum_1.buscarRetornos)(declaracao));
2237
2314
  }
2315
+ if (tipoRetorno === 'real') {
2316
+ for (const retorno of expressoesRetorna) {
2317
+ retorno.valor = this.garantirTipoReal(retorno.valor);
2318
+ }
2319
+ }
2238
2320
  if (tipoRetorno === 'vazio' && expressoesRetorna.length > 0) {
2239
2321
  // Filtra retornos que têm tipo conhecido e diferente de 'vazio'.
2240
2322
  // 'qualquer' é excluído pois o tipo não pode ser determinado em tempo de análise sintática.
@@ -2422,6 +2504,11 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
2422
2504
  tipoRetorno = 'vazio';
2423
2505
  }
2424
2506
  }
2507
+ if (tipoRetorno === 'real') {
2508
+ for (const retorno of expressoesRetorna) {
2509
+ retorno.valor = this.garantirTipoReal(retorno.valor);
2510
+ }
2511
+ }
2425
2512
  const corpoFuncao = new construtos_1.FuncaoConstruto(this.hashArquivo, nomeMetodo.linha, params, corpo, tipoRetorno);
2426
2513
  const tipoDaFuncao = `função<${tipoRetorno}>`;
2427
2514
  const metodo = new declaracoes_1.FuncaoDeclaracao(nomeMetodo, corpoFuncao, tipoDaFuncao);
@@ -2439,7 +2526,8 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
2439
2526
  const nomePropriedade = this.consumir(delegua_2.default.IDENTIFICADOR, 'Esperado identificador para nome de propriedade.');
2440
2527
  this.consumir(delegua_2.default.DOIS_PONTOS, 'Esperado dois-pontos após nome de propriedade.');
2441
2528
  const tipoPropriedade = this.avancarEDevolverAnterior();
2442
- let nomeTipoPropriedade = tipoPropriedade.lexema;
2529
+ // `decimal` é sinônimo de `real` como nome de tipo; `real` é o nome preferido.
2530
+ let nomeTipoPropriedade = tipoPropriedade.lexema.toLowerCase() === 'decimal' ? 'real' : tipoPropriedade.lexema;
2443
2531
  if (this.verificarTipoSimboloAtual(delegua_2.default.COLCHETE_ESQUERDO)) {
2444
2532
  this.avancarEDevolverAnterior();
2445
2533
  this.consumir(delegua_2.default.COLCHETE_DIREITO, "Esperado ']' após '[' na definição do tipo de propriedade.");
@@ -2773,6 +2861,11 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
2773
2861
  tipoRetorno = 'vazio';
2774
2862
  }
2775
2863
  }
2864
+ if (tipoRetorno === 'real') {
2865
+ for (const retorno of expressoesRetorna) {
2866
+ retorno.valor = this.garantirTipoReal(retorno.valor);
2867
+ }
2868
+ }
2776
2869
  const corpoFuncao = new construtos_1.FuncaoConstruto(this.hashArquivo, nomeMetodo.linha, params, corpo, tipoRetorno);
2777
2870
  const tipoDaFuncao = `função<${tipoRetorno}>`;
2778
2871
  const metodo = new declaracoes_1.FuncaoDeclaracao(nomeMetodo, corpoFuncao, tipoDaFuncao);