@designliquido/delegua 1.15.6 → 1.16.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 (147) hide show
  1. package/analisador-documentario/index.js +2 -4
  2. package/analisador-documentario/index.js.map +1 -1
  3. package/analisador-semantico/analisador-semantico-base.d.ts +6 -2
  4. package/analisador-semantico/analisador-semantico-base.d.ts.map +1 -1
  5. package/analisador-semantico/analisador-semantico-base.js +30 -12
  6. package/analisador-semantico/analisador-semantico-base.js.map +1 -1
  7. package/analisador-semantico/analisador-semantico.d.ts +6 -1
  8. package/analisador-semantico/analisador-semantico.d.ts.map +1 -1
  9. package/analisador-semantico/analisador-semantico.js +39 -53
  10. package/analisador-semantico/analisador-semantico.js.map +1 -1
  11. package/analisador-semantico/dialetos/analisador-semantico-pitugues.d.ts +6 -1
  12. package/analisador-semantico/dialetos/analisador-semantico-pitugues.d.ts.map +1 -1
  13. package/analisador-semantico/dialetos/analisador-semantico-pitugues.js +35 -46
  14. package/analisador-semantico/dialetos/analisador-semantico-pitugues.js.map +1 -1
  15. package/avaliador-sintatico/avaliador-sintatico.d.ts +1 -0
  16. package/avaliador-sintatico/avaliador-sintatico.d.ts.map +1 -1
  17. package/avaliador-sintatico/avaliador-sintatico.js +64 -14
  18. package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  19. package/avaliador-sintatico/comum.js +3 -4
  20. package/avaliador-sintatico/comum.js.map +1 -1
  21. package/avaliador-sintatico/dialetos/avaliador-sintatico-calango.js +1 -1
  22. package/avaliador-sintatico/dialetos/avaliador-sintatico-calango.js.map +1 -1
  23. package/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js +1 -1
  24. package/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js.map +1 -1
  25. package/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.js +1 -1
  26. package/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.js.map +1 -1
  27. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js +4 -5
  28. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js.map +1 -1
  29. package/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.js +1 -1
  30. package/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.js.map +1 -1
  31. package/avaliador-sintatico/dialetos/avaliador-sintatico-prisma.js +2 -3
  32. package/avaliador-sintatico/dialetos/avaliador-sintatico-prisma.js.map +1 -1
  33. package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.js +2 -3
  34. package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.js.map +1 -1
  35. package/avaliador-sintatico/dialetos/micro-avaliador-sintatico-pitugues.js +1 -1
  36. package/avaliador-sintatico/dialetos/micro-avaliador-sintatico-pitugues.js.map +1 -1
  37. package/avaliador-sintatico/micro-avaliador-sintatico.js +1 -1
  38. package/avaliador-sintatico/micro-avaliador-sintatico.js.map +1 -1
  39. package/bibliotecas/biblioteca-global.js +9 -11
  40. package/bibliotecas/biblioteca-global.js.map +1 -1
  41. package/bibliotecas/dialetos/tenda/biblioteca-global.js +3 -3
  42. package/bibliotecas/dialetos/tenda/biblioteca-global.js.map +1 -1
  43. package/bin/package.json +1 -1
  44. package/construtos/atribuir.js +2 -2
  45. package/construtos/atribuir.js.map +1 -1
  46. package/declaracoes/classe.d.ts +2 -1
  47. package/declaracoes/classe.d.ts.map +1 -1
  48. package/declaracoes/classe.js +5 -5
  49. package/declaracoes/classe.js.map +1 -1
  50. package/declaracoes/const.js +1 -1
  51. package/declaracoes/const.js.map +1 -1
  52. package/declaracoes/var.js +1 -1
  53. package/declaracoes/var.js.map +1 -1
  54. package/estilizador/estilizador-delegua.js +2 -3
  55. package/estilizador/estilizador-delegua.js.map +1 -1
  56. package/formatadores/formatador-delegua.d.ts.map +1 -1
  57. package/formatadores/formatador-delegua.js +24 -2
  58. package/formatadores/formatador-delegua.js.map +1 -1
  59. package/formatadores/formatador-pitugues.js +1 -2
  60. package/formatadores/formatador-pitugues.js.map +1 -1
  61. package/interpretador/comum.d.ts.map +1 -1
  62. package/interpretador/comum.js +117 -11
  63. package/interpretador/comum.js.map +1 -1
  64. package/interpretador/depuracao/comum.js +9 -5
  65. package/interpretador/depuracao/comum.js.map +1 -1
  66. package/interpretador/depuracao/interpretador-base-com-depuracao.js +1 -1
  67. package/interpretador/depuracao/interpretador-base-com-depuracao.js.map +1 -1
  68. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js +1 -1
  69. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js.map +1 -1
  70. package/interpretador/dialetos/pitugues/comum.js +1 -2
  71. package/interpretador/dialetos/pitugues/comum.js.map +1 -1
  72. package/interpretador/dialetos/pitugues/interpretador-pitugues.js +1 -2
  73. package/interpretador/dialetos/pitugues/interpretador-pitugues.js.map +1 -1
  74. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js +2 -2
  75. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js.map +1 -1
  76. package/interpretador/estruturas/delegua-funcao-nativa.js +1 -2
  77. package/interpretador/estruturas/delegua-funcao-nativa.js.map +1 -1
  78. package/interpretador/estruturas/delegua-funcao.d.ts +3 -0
  79. package/interpretador/estruturas/delegua-funcao.d.ts.map +1 -1
  80. package/interpretador/estruturas/delegua-funcao.js +12 -4
  81. package/interpretador/estruturas/delegua-funcao.js.map +1 -1
  82. package/interpretador/estruturas/descritor-tipo-classe.d.ts +4 -3
  83. package/interpretador/estruturas/descritor-tipo-classe.d.ts.map +1 -1
  84. package/interpretador/estruturas/descritor-tipo-classe.js +16 -17
  85. package/interpretador/estruturas/descritor-tipo-classe.js.map +1 -1
  86. package/interpretador/estruturas/index.d.ts +1 -0
  87. package/interpretador/estruturas/index.d.ts.map +1 -1
  88. package/interpretador/estruturas/index.js +1 -0
  89. package/interpretador/estruturas/index.js.map +1 -1
  90. package/interpretador/estruturas/metodo-polimorfico.js +5 -10
  91. package/interpretador/estruturas/metodo-polimorfico.js.map +1 -1
  92. package/interpretador/estruturas/objeto-base.js +4 -6
  93. package/interpretador/estruturas/objeto-base.js.map +1 -1
  94. package/interpretador/estruturas/objeto-delegua-classe.js +8 -10
  95. package/interpretador/estruturas/objeto-delegua-classe.js.map +1 -1
  96. package/interpretador/estruturas/super-proxy.d.ts +24 -0
  97. package/interpretador/estruturas/super-proxy.d.ts.map +1 -0
  98. package/interpretador/estruturas/super-proxy.js +38 -0
  99. package/interpretador/estruturas/super-proxy.js.map +1 -0
  100. package/interpretador/interpretador-base.d.ts.map +1 -1
  101. package/interpretador/interpretador-base.js +14 -16
  102. package/interpretador/interpretador-base.js.map +1 -1
  103. package/interpretador/interpretador.d.ts +17 -5
  104. package/interpretador/interpretador.d.ts.map +1 -1
  105. package/interpretador/interpretador.js +118 -32
  106. package/interpretador/interpretador.js.map +1 -1
  107. package/lexador/filtro-paradigma.js +1 -1
  108. package/lexador/filtro-paradigma.js.map +1 -1
  109. package/lexador/mapeamento-paradigmas.js +2 -3
  110. package/lexador/mapeamento-paradigmas.js.map +1 -1
  111. package/lexador/palavras-reservadas.d.ts +1 -0
  112. package/lexador/palavras-reservadas.d.ts.map +1 -1
  113. package/lexador/palavras-reservadas.js +1 -0
  114. package/lexador/palavras-reservadas.js.map +1 -1
  115. package/package.json +1 -1
  116. package/tipos-de-simbolos/delegua.d.ts +1 -0
  117. package/tipos-de-simbolos/delegua.d.ts.map +1 -1
  118. package/tipos-de-simbolos/delegua.js +1 -0
  119. package/tipos-de-simbolos/delegua.js.map +1 -1
  120. package/tradutores/tradutor-assembly-arm.js +12 -24
  121. package/tradutores/tradutor-assembly-arm.js.map +1 -1
  122. package/tradutores/tradutor-assembly-risc-v.js +10 -20
  123. package/tradutores/tradutor-assembly-risc-v.js.map +1 -1
  124. package/tradutores/tradutor-assembly-x64.js +12 -24
  125. package/tradutores/tradutor-assembly-x64.js.map +1 -1
  126. package/tradutores/tradutor-assemblyscript.js +12 -13
  127. package/tradutores/tradutor-assemblyscript.js.map +1 -1
  128. package/tradutores/tradutor-elixir.d.ts +1 -0
  129. package/tradutores/tradutor-elixir.d.ts.map +1 -1
  130. package/tradutores/tradutor-elixir.js +31 -9
  131. package/tradutores/tradutor-elixir.js.map +1 -1
  132. package/tradutores/tradutor-javascript.js +10 -13
  133. package/tradutores/tradutor-javascript.js.map +1 -1
  134. package/tradutores/tradutor-mermaidjs.d.ts.map +1 -1
  135. package/tradutores/tradutor-mermaidjs.js +4 -4
  136. package/tradutores/tradutor-mermaidjs.js.map +1 -1
  137. package/tradutores/tradutor-python.js +4 -5
  138. package/tradutores/tradutor-python.js.map +1 -1
  139. package/tradutores/tradutor-reverso-javascript.js +1 -1
  140. package/tradutores/tradutor-reverso-javascript.js.map +1 -1
  141. package/tradutores/tradutor-reverso-tenda.js +7 -10
  142. package/tradutores/tradutor-reverso-tenda.js.map +1 -1
  143. package/tradutores/tradutor-ruby.js +4 -5
  144. package/tradutores/tradutor-ruby.js.map +1 -1
  145. package/tradutores/tradutor-webassembly.js +20 -35
  146. package/tradutores/tradutor-webassembly.js.map +1 -1
  147. package/umd/delegua.js +970 -710
@@ -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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"}
@@ -106,12 +106,46 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
106
106
  this.avancarEDevolverAnterior();
107
107
  return new construtos_1.AjudaComoConstruto(simboloAjuda.hashArquivo, simboloAjuda.linha, undefined, true);
108
108
  }
109
+ const topicoPalavraChave = this.tentarResolverTopicoAjudaPalavraChave();
110
+ if (topicoPalavraChave) {
111
+ this.consumir(delegua_2.default.PARENTESE_DIREITO, `Esperado parêntese direito após expressão usada como argumento em ajuda(). Atual: ${this.simbolos[this.atual].lexema}.`);
112
+ return new construtos_1.AjudaComoConstruto(simboloAjuda.hashArquivo, simboloAjuda.linha, topicoPalavraChave);
113
+ }
109
114
  this.emAjuda = true;
110
115
  const expressaoAjuda = await this.expressao();
111
116
  this.emAjuda = false;
112
117
  this.consumir(delegua_2.default.PARENTESE_DIREITO, `Esperado parêntese direito após expressão usada como argumento em ajuda(). Atual: ${this.simbolos[this.atual].lexema}.`);
113
118
  return new construtos_1.AjudaComoConstruto(simboloAjuda.hashArquivo, simboloAjuda.linha, expressaoAjuda);
114
119
  }
120
+ tentarResolverTopicoAjudaPalavraChave() {
121
+ const simboloAtual = this.simbolos[this.atual];
122
+ switch (simboloAtual.tipo) {
123
+ case delegua_2.default.CLASSE: {
124
+ const simboloClasse = this.avancarEDevolverAnterior();
125
+ let topico = 'classe';
126
+ if (this.simbolos[this.atual].tipo === delegua_2.default.ABSTRATO) {
127
+ this.avancarEDevolverAnterior();
128
+ topico = 'classe abstrata';
129
+ }
130
+ else if (this.simbolos[this.atual].tipo === delegua_2.default.ESTRANGEIRA) {
131
+ this.avancarEDevolverAnterior();
132
+ topico = 'classe estrangeira';
133
+ }
134
+ return new construtos_1.Literal(this.hashArquivo, Number(simboloClasse.linha), topico, 'texto');
135
+ }
136
+ case delegua_2.default.HERDA:
137
+ this.avancarEDevolverAnterior();
138
+ return new construtos_1.Literal(this.hashArquivo, Number(simboloAtual.linha), 'herda', 'texto');
139
+ case delegua_2.default.MESCLA:
140
+ this.avancarEDevolverAnterior();
141
+ return new construtos_1.Literal(this.hashArquivo, Number(simboloAtual.linha), 'mescla', 'texto');
142
+ case delegua_2.default.EXTENSAO:
143
+ this.avancarEDevolverAnterior();
144
+ return new construtos_1.Literal(this.hashArquivo, Number(simboloAtual.linha), 'extensao', 'texto');
145
+ default:
146
+ return undefined;
147
+ }
148
+ }
115
149
  async obterChaveDicionario() {
116
150
  switch (this.simbolos[this.atual].tipo) {
117
151
  case delegua_2.default.NUMERO:
@@ -562,7 +596,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
562
596
  }
563
597
  return elementoMontao;
564
598
  }
565
- catch (_a) {
599
+ catch {
566
600
  return null;
567
601
  }
568
602
  case construtos_1.AcessoMetodoOuPropriedade: {
@@ -2013,13 +2047,15 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
2013
2047
  return declaracao;
2014
2048
  }
2015
2049
  async declaracaoDeClasse() {
2016
- var _a;
2017
- // Modificadores opcionais no nível da classe: `abstrata` e/ou `estática`.
2018
- // Sintaxe: `classe abstrata NomeDaClasse` ou `classe estática NomeDaClasse`.
2050
+ // Modificadores opcionais no nível da classe: `abstrata`, `estrangeira` e/ou `estática`.
2051
+ // Sintaxe: `classe abstrata NomeDaClasse`, `classe estrangeira NomeDaClasse`, etc.
2019
2052
  let ehAbstrata = false;
2053
+ let ehEstrangeira = false;
2020
2054
  let ehEstatica = false;
2021
2055
  if (this.verificarSeSimboloAtualEIgualA(delegua_2.default.ABSTRATO))
2022
2056
  ehAbstrata = true;
2057
+ if (this.verificarSeSimboloAtualEIgualA(delegua_2.default.ESTRANGEIRA))
2058
+ ehEstrangeira = true;
2023
2059
  if (this.verificarSeSimboloAtualEIgualA(delegua_2.default.ESTATICO))
2024
2060
  ehEstatica = true;
2025
2061
  // Também permite a ordem invertida: `classe estática abstrata`
@@ -2029,7 +2065,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
2029
2065
  // Pré-registro para permitir auto-referência no corpo da própria classe,
2030
2066
  // como em `MinhaClasse.propriedadeEstatica` dentro de métodos.
2031
2067
  this.tiposDefinidosEmCodigo[simbolo.lexema] =
2032
- (_a = this.tiposDefinidosEmCodigo[simbolo.lexema]) !== null && _a !== void 0 ? _a : {};
2068
+ this.tiposDefinidosEmCodigo[simbolo.lexema] ?? {};
2033
2069
  const pilhaDecoradoresClasse = Array.from(this.pilhaDecoradores);
2034
2070
  // Verificar `herda SuperclasseA, SuperclasseB`
2035
2071
  const superClasses = [];
@@ -2066,7 +2102,6 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
2066
2102
  * Suporta blocos de contexto aninhados: `estático { }`, `abstrato { }`, `privado { }`, `protegido { }`, `publico { }`.
2067
2103
  */
2068
2104
  const compreenderMembros = async (acessoPadrao, ehEstaticoPadrao, ehAbstratoPadrao = false) => {
2069
- var _a;
2070
2105
  while (!this.verificarTipoSimboloAtual(delegua_2.default.CHAVE_DIREITA) &&
2071
2106
  !this.estaNoFinal()) {
2072
2107
  // Pular comentários normais dentro do corpo da classe.
@@ -2088,7 +2123,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
2088
2123
  }
2089
2124
  // Detecção de bloco de contexto: modificador seguido de '{'
2090
2125
  const tipoAtual = this.simbolos[this.atual].tipo;
2091
- const tipoProximo = (_a = this.simbolos[this.atual + 1]) === null || _a === void 0 ? void 0 : _a.tipo;
2126
+ const tipoProximo = this.simbolos[this.atual + 1]?.tipo;
2092
2127
  const ehBlocoAcesso = [delegua_2.default.PRIVADO, delegua_2.default.PROTEGIDO].includes(tipoAtual) &&
2093
2128
  tipoProximo === delegua_2.default.CHAVE_ESQUERDA;
2094
2129
  const ehBlocoEstatico = tipoAtual === delegua_2.default.ESTATICO &&
@@ -2150,7 +2185,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
2150
2185
  }
2151
2186
  // Método ou propriedade, determinado pelo token seguinte ao nome
2152
2187
  const proximoSimbolo = this.simbolos[this.atual + 1];
2153
- switch (proximoSimbolo === null || proximoSimbolo === void 0 ? void 0 : proximoSimbolo.tipo) {
2188
+ switch (proximoSimbolo?.tipo) {
2154
2189
  case delegua_2.default.PARENTESE_ESQUERDO: {
2155
2190
  // Analisa: nome ( params ) [abstrato] [: tipoRetorno] { corpo }
2156
2191
  const nomeMetodo = this.avancarEDevolverAnterior();
@@ -2162,7 +2197,6 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
2162
2197
  params = await this.logicaComumParametros();
2163
2198
  }
2164
2199
  this.consumir(delegua_2.default.PARENTESE_DIREITO, "Esperado ')' após parâmetros do método.");
2165
- const ehAbstrato = ehAbstratoPadrao;
2166
2200
  // Tipo de retorno opcional (igual a corpoDaFuncao())
2167
2201
  let tipoRetorno = 'qualquer';
2168
2202
  let definicaoExplicitaDeTipo = false;
@@ -2171,10 +2205,21 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
2171
2205
  this.avancarEDevolverAnterior();
2172
2206
  definicaoExplicitaDeTipo = true;
2173
2207
  }
2208
+ // Método de classe estrangeira não pode ter corpo.
2209
+ if (ehEstrangeira &&
2210
+ this.verificarTipoSimboloAtual(delegua_2.default.CHAVE_ESQUERDA)) {
2211
+ throw this.erro(this.simbolos[this.atual], "Métodos de classe estrangeira não podem ter corpo.");
2212
+ }
2213
+ // Método é abstrato quando: (a) está dentro de um bloco `abstrato {}`,
2214
+ // ou (b) a classe é abstrata/estrangeira e o próximo token não é `{`.
2215
+ const ehAbstrato = ehAbstratoPadrao ||
2216
+ ehEstrangeira ||
2217
+ (ehAbstrata &&
2218
+ !this.verificarTipoSimboloAtual(delegua_2.default.CHAVE_ESQUERDA));
2174
2219
  if (ehAbstrato) {
2175
- // Método abstrato: sem corpo
2220
+ // Método abstrato/estrangeiro: sem corpo
2176
2221
  this.verificarSeSimboloAtualEIgualA(delegua_2.default.PONTO_E_VIRGULA);
2177
- const corpoVazio = new construtos_1.FuncaoConstruto(this.hashArquivo, nomeMetodo.linha, params, [], tipoRetorno);
2222
+ const corpoVazio = new construtos_1.FuncaoConstruto(this.hashArquivo, nomeMetodo.linha, params, [], tipoRetorno, definicaoExplicitaDeTipo);
2178
2223
  const metodoAbstrato = new declaracoes_1.FuncaoDeclaracao(nomeMetodo, corpoVazio, tipoRetorno);
2179
2224
  metodoAbstrato.estatico = ehEstatico;
2180
2225
  metodoAbstrato.abstrato = true;
@@ -2372,7 +2417,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
2372
2417
  }
2373
2418
  }
2374
2419
  }
2375
- const definicaoClasse = new declaracoes_1.Classe(simbolo, superClasses, metodos, propriedades, pilhaDecoradoresClasse, ehAbstrata, ehEstatica, implementaInterfaces, mesclas);
2420
+ const definicaoClasse = new declaracoes_1.Classe(simbolo, superClasses, metodos, propriedades, pilhaDecoradoresClasse, ehAbstrata, ehEstrangeira, ehEstatica, implementaInterfaces, mesclas);
2376
2421
  this.tiposDefinidosEmCodigo[definicaoClasse.simbolo.lexema] = definicaoClasse;
2377
2422
  this.superclasseAtual = undefined;
2378
2423
  return definicaoClasse;
@@ -2406,7 +2451,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
2406
2451
  }
2407
2452
  // Apenas métodos são suportados em extensões.
2408
2453
  const proximoSimbolo = this.simbolos[this.atual + 1];
2409
- if ((proximoSimbolo === null || proximoSimbolo === void 0 ? void 0 : proximoSimbolo.tipo) !== delegua_2.default.PARENTESE_ESQUERDO) {
2454
+ if (proximoSimbolo?.tipo !== delegua_2.default.PARENTESE_ESQUERDO) {
2410
2455
  throw this.erro(this.simbolos[this.atual], 'Esperado declaração de método na extensão.');
2411
2456
  }
2412
2457
  const nomeMetodo = this.avancarEDevolverAnterior();
@@ -2648,6 +2693,11 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
2648
2693
  this.avancarEDevolverAnterior();
2649
2694
  return new declaracoes_1.Ajuda(simboloAjuda.hashArquivo, simboloAjuda.linha, undefined, true);
2650
2695
  }
2696
+ const topicoPalavraChave = this.tentarResolverTopicoAjudaPalavraChave();
2697
+ if (topicoPalavraChave) {
2698
+ this.consumir(delegua_2.default.PARENTESE_DIREITO, `Esperado parêntese direito após expressão usada como argumento em ajuda(). Atual: ${this.simbolos[this.atual].lexema}.`);
2699
+ return new declaracoes_1.Ajuda(simboloAjuda.hashArquivo, simboloAjuda.linha, topicoPalavraChave);
2700
+ }
2651
2701
  const expressaoAjuda = await this.expressao();
2652
2702
  this.consumir(delegua_2.default.PARENTESE_DIREITO, `Esperado parêntese direito após expressão usada como argumento em ajuda(). Atual: ${this.simbolos[this.atual].lexema}.`);
2653
2703
  return new declaracoes_1.Ajuda(simboloAjuda.hashArquivo, simboloAjuda.linha, expressaoAjuda);
@@ -2810,7 +2860,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
2810
2860
  this.atual = 0;
2811
2861
  this.blocos = 0;
2812
2862
  this.hashArquivo = hashArquivo || 0;
2813
- this.simbolos = (retornoLexador === null || retornoLexador === void 0 ? void 0 : retornoLexador.simbolos) || [];
2863
+ this.simbolos = retornoLexador?.simbolos || [];
2814
2864
  this.pilhaDecoradores = [];
2815
2865
  this.tiposDefinidosEmCodigo = {};
2816
2866
  this.interfacesDeclaradas = {};