@designliquido/delegua 1.2.0 → 1.3.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 (45) hide show
  1. package/analisador-semantico/dialetos/analisador-semantico-pitugues.d.ts.map +1 -1
  2. package/analisador-semantico/dialetos/analisador-semantico-pitugues.js +5 -0
  3. package/analisador-semantico/dialetos/analisador-semantico-pitugues.js.map +1 -1
  4. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts.map +1 -1
  5. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js +11 -8
  6. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js.map +1 -1
  7. package/bibliotecas/biblioteca-global.d.ts +1 -1
  8. package/bibliotecas/biblioteca-global.d.ts.map +1 -1
  9. package/bibliotecas/biblioteca-global.js +3 -17
  10. package/bibliotecas/biblioteca-global.js.map +1 -1
  11. package/bibliotecas/dialetos/pitugues/biblioteca-global.d.ts.map +1 -1
  12. package/bibliotecas/dialetos/pitugues/biblioteca-global.js +8 -6
  13. package/bibliotecas/dialetos/pitugues/biblioteca-global.js.map +1 -1
  14. package/bin/package.json +1 -1
  15. package/interfaces/tradutor-interface.d.ts +1 -1
  16. package/interfaces/tradutor-interface.d.ts.map +1 -1
  17. package/interfaces/visitante-comum-interface.d.ts +2 -2
  18. package/interfaces/visitante-comum-interface.d.ts.map +1 -1
  19. package/interpretador/comum.d.ts.map +1 -1
  20. package/interpretador/comum.js +1 -0
  21. package/interpretador/comum.js.map +1 -1
  22. package/interpretador/dialetos/pitugues/comum.d.ts.map +1 -1
  23. package/interpretador/dialetos/pitugues/comum.js +13 -0
  24. package/interpretador/dialetos/pitugues/comum.js.map +1 -1
  25. package/interpretador/interpretador-base.d.ts.map +1 -1
  26. package/interpretador/interpretador-base.js +1 -12
  27. package/interpretador/interpretador-base.js.map +1 -1
  28. package/interpretador/interpretador.d.ts +2 -1
  29. package/interpretador/interpretador.d.ts.map +1 -1
  30. package/interpretador/interpretador.js +14 -0
  31. package/interpretador/interpretador.js.map +1 -1
  32. package/package.json +1 -1
  33. package/tradutores/index.d.ts +1 -0
  34. package/tradutores/index.d.ts.map +1 -1
  35. package/tradutores/index.js +1 -0
  36. package/tradutores/index.js.map +1 -1
  37. package/tradutores/tradutor-elixir.d.ts +141 -0
  38. package/tradutores/tradutor-elixir.d.ts.map +1 -0
  39. package/tradutores/tradutor-elixir.js +926 -0
  40. package/tradutores/tradutor-elixir.js.map +1 -0
  41. package/tradutores/tradutor-mermaidjs.d.ts +69 -78
  42. package/tradutores/tradutor-mermaidjs.d.ts.map +1 -1
  43. package/tradutores/tradutor-mermaidjs.js +440 -404
  44. package/tradutores/tradutor-mermaidjs.js.map +1 -1
  45. package/umd/delegua.js +1642 -685
package/umd/delegua.js CHANGED
@@ -3842,7 +3842,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
3842
3842
  }
3843
3843
  exports.AvaliadorSintatico = AvaliadorSintatico;
3844
3844
 
3845
- },{"../bibliotecas/primitivas-dicionario":29,"../bibliotecas/primitivas-numero":30,"../bibliotecas/primitivas-texto":31,"../bibliotecas/primitivas-vetor":32,"../construtos":62,"../construtos/tuplas":80,"../declaracoes":109,"../inferenciador":135,"../informacao-elemento-sintatico":136,"../tipos-de-dados/delegua":207,"../tipos-de-simbolos/delegua":212,"./avaliador-sintatico-base":9,"./comum":11,"./elemento-montao-tipos":19,"./erro-avaliador-sintatico":20,"./informacao-escopo":22,"./montao-tipos":25,"./pilha-escopos":26,"browser-process-hrtime":402}],11:[function(require,module,exports){
3845
+ },{"../bibliotecas/primitivas-dicionario":29,"../bibliotecas/primitivas-numero":30,"../bibliotecas/primitivas-texto":31,"../bibliotecas/primitivas-vetor":32,"../construtos":62,"../construtos/tuplas":80,"../declaracoes":109,"../inferenciador":135,"../informacao-elemento-sintatico":136,"../tipos-de-dados/delegua":207,"../tipos-de-simbolos/delegua":212,"./avaliador-sintatico-base":9,"./comum":11,"./elemento-montao-tipos":19,"./erro-avaliador-sintatico":20,"./informacao-escopo":22,"./montao-tipos":25,"./pilha-escopos":26,"browser-process-hrtime":403}],11:[function(require,module,exports){
3846
3846
  "use strict";
3847
3847
  Object.defineProperty(exports, "__esModule", { value: true });
3848
3848
  exports.buscarRetornos = buscarRetornos;
@@ -6021,6 +6021,12 @@ class AvaliadorSintaticoPitugues {
6021
6021
  new informacao_elemento_sintatico_1.InformacaoElementoSintatico('vetor', 'qualquer[]'),
6022
6022
  new informacao_elemento_sintatico_1.InformacaoElementoSintatico('funcaoMapeamento', 'função'),
6023
6023
  ]));
6024
+ this.pilhaEscopos.definirInformacoesVariavel('maximo', new informacao_elemento_sintatico_1.InformacaoElementoSintatico('maximo', 'número', true, [
6025
+ new informacao_elemento_sintatico_1.InformacaoElementoSintatico('vetor', 'qualquer[]'),
6026
+ ]));
6027
+ this.pilhaEscopos.definirInformacoesVariavel('minimo', new informacao_elemento_sintatico_1.InformacaoElementoSintatico('minimo', 'número', true, [
6028
+ new informacao_elemento_sintatico_1.InformacaoElementoSintatico('vetor', 'qualquer[]'),
6029
+ ]));
6024
6030
  this.pilhaEscopos.definirInformacoesVariavel('numero', new informacao_elemento_sintatico_1.InformacaoElementoSintatico('número', 'número', true, [
6025
6031
  new informacao_elemento_sintatico_1.InformacaoElementoSintatico('valorParaConverter', 'qualquer'),
6026
6032
  ]));
@@ -6047,6 +6053,9 @@ class AvaliadorSintaticoPitugues {
6047
6053
  new informacao_elemento_sintatico_1.InformacaoElementoSintatico('funcaoReducao', 'função'),
6048
6054
  new informacao_elemento_sintatico_1.InformacaoElementoSintatico('valorInicial', 'qualquer'),
6049
6055
  ]));
6056
+ this.pilhaEscopos.definirInformacoesVariavel('somar', new informacao_elemento_sintatico_1.InformacaoElementoSintatico('somar', 'número', true, [
6057
+ new informacao_elemento_sintatico_1.InformacaoElementoSintatico('vetor', 'qualquer[]'),
6058
+ ]));
6050
6059
  this.pilhaEscopos.definirInformacoesVariavel('tamanho', new informacao_elemento_sintatico_1.InformacaoElementoSintatico('tamanho', 'inteiro', true, [
6051
6060
  new informacao_elemento_sintatico_1.InformacaoElementoSintatico('objeto', 'qualquer'),
6052
6061
  ]));
@@ -6060,14 +6069,8 @@ class AvaliadorSintaticoPitugues {
6060
6069
  this.pilhaEscopos.definirInformacoesVariavel('tupla', new informacao_elemento_sintatico_1.InformacaoElementoSintatico('tupla', 'tupla', true, [
6061
6070
  new informacao_elemento_sintatico_1.InformacaoElementoSintatico('vetor', 'qualquer[]'),
6062
6071
  ]));
6063
- this.pilhaEscopos.definirInformacoesVariavel('maximo', new informacao_elemento_sintatico_1.InformacaoElementoSintatico('maximo', 'número', true, [
6064
- new informacao_elemento_sintatico_1.InformacaoElementoSintatico('vetor', 'qualquer[]'),
6065
- ]));
6066
- this.pilhaEscopos.definirInformacoesVariavel('minimo', new informacao_elemento_sintatico_1.InformacaoElementoSintatico('minimo', 'número', true, [
6067
- new informacao_elemento_sintatico_1.InformacaoElementoSintatico('vetor', 'qualquer[]'),
6068
- ]));
6069
- this.pilhaEscopos.definirInformacoesVariavel('somar', new informacao_elemento_sintatico_1.InformacaoElementoSintatico('somar', 'número', true, [
6070
- new informacao_elemento_sintatico_1.InformacaoElementoSintatico('vetor', 'qualquer[]'),
6072
+ this.pilhaEscopos.definirInformacoesVariavel('vetor', new informacao_elemento_sintatico_1.InformacaoElementoSintatico('vetor', 'vetor', true, [
6073
+ new informacao_elemento_sintatico_1.InformacaoElementoSintatico('tupla', 'qualquer')
6071
6074
  ]));
6072
6075
  }
6073
6076
  async analisar(retornoLexador, hashArquivo) {
@@ -6118,7 +6121,7 @@ class AvaliadorSintaticoPitugues {
6118
6121
  }
6119
6122
  exports.AvaliadorSintaticoPitugues = AvaliadorSintaticoPitugues;
6120
6123
 
6121
- },{"../../bibliotecas/dialetos/pitugues/primitivas-tupla":28,"../../bibliotecas/primitivas-dicionario":29,"../../bibliotecas/primitivas-numero":30,"../../bibliotecas/primitivas-texto":31,"../../bibliotecas/primitivas-vetor":32,"../../construtos":62,"../../declaracoes":109,"../../inferenciador":135,"../../informacao-elemento-sintatico":136,"../../lexador":197,"../../lexador/micro-lexador-pitugues":202,"../../tipos-de-dados/dialetos/pitugues":208,"../../tipos-de-simbolos/pitugues":216,"../comum":11,"../erro-avaliador-sintatico":20,"../informacao-escopo":22,"../pilha-escopos":26,"./micro-avaliador-sintatico-pitugues":18,"browser-process-hrtime":402}],14:[function(require,module,exports){
6124
+ },{"../../bibliotecas/dialetos/pitugues/primitivas-tupla":28,"../../bibliotecas/primitivas-dicionario":29,"../../bibliotecas/primitivas-numero":30,"../../bibliotecas/primitivas-texto":31,"../../bibliotecas/primitivas-vetor":32,"../../construtos":62,"../../declaracoes":109,"../../inferenciador":135,"../../informacao-elemento-sintatico":136,"../../lexador":197,"../../lexador/micro-lexador-pitugues":202,"../../tipos-de-dados/dialetos/pitugues":208,"../../tipos-de-simbolos/pitugues":216,"../comum":11,"../erro-avaliador-sintatico":20,"../informacao-escopo":22,"../pilha-escopos":26,"./micro-avaliador-sintatico-pitugues":18,"browser-process-hrtime":403}],14:[function(require,module,exports){
6122
6125
  "use strict";
6123
6126
  var __importDefault = (this && this.__importDefault) || function (mod) {
6124
6127
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -7042,7 +7045,7 @@ class AvaliadorSintaticoPrisma extends avaliador_sintatico_base_1.AvaliadorSinta
7042
7045
  }
7043
7046
  exports.AvaliadorSintaticoPrisma = AvaliadorSintaticoPrisma;
7044
7047
 
7045
- },{"../../bibliotecas/primitivas-dicionario":29,"../../bibliotecas/primitivas-numero":30,"../../bibliotecas/primitivas-texto":31,"../../bibliotecas/primitivas-vetor":32,"../../construtos":62,"../../declaracoes":109,"../../inferenciador":135,"../../informacao-elemento-sintatico":136,"../../lexador":197,"../../tipos-de-simbolos/prisma":218,"../avaliador-sintatico-base":9,"../comum":11,"../informacao-escopo":22,"../pilha-escopos":26,"browser-process-hrtime":402}],16:[function(require,module,exports){
7048
+ },{"../../bibliotecas/primitivas-dicionario":29,"../../bibliotecas/primitivas-numero":30,"../../bibliotecas/primitivas-texto":31,"../../bibliotecas/primitivas-vetor":32,"../../construtos":62,"../../declaracoes":109,"../../inferenciador":135,"../../informacao-elemento-sintatico":136,"../../lexador":197,"../../tipos-de-simbolos/prisma":218,"../avaliador-sintatico-base":9,"../comum":11,"../informacao-escopo":22,"../pilha-escopos":26,"browser-process-hrtime":403}],16:[function(require,module,exports){
7046
7049
  "use strict";
7047
7050
  var __importDefault = (this && this.__importDefault) || function (mod) {
7048
7051
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -8025,7 +8028,7 @@ class AvaliadorSintaticoTenda extends avaliador_sintatico_base_1.AvaliadorSintat
8025
8028
  }
8026
8029
  exports.AvaliadorSintaticoTenda = AvaliadorSintaticoTenda;
8027
8030
 
8028
- },{"../../bibliotecas/primitivas-dicionario":29,"../../bibliotecas/primitivas-numero":30,"../../bibliotecas/primitivas-texto":31,"../../bibliotecas/primitivas-vetor":32,"../../construtos":62,"../../construtos/tuplas":80,"../../declaracoes":109,"../../inferenciador":135,"../../informacao-elemento-sintatico":136,"../../lexador/simbolo":205,"../../tipos-de-dados/delegua":207,"../../tipos-de-simbolos/tenda":219,"../avaliador-sintatico-base":9,"./../erro-avaliador-sintatico":20,"./../informacao-escopo":22,"./../pilha-escopos":26,"browser-process-hrtime":402}],17:[function(require,module,exports){
8031
+ },{"../../bibliotecas/primitivas-dicionario":29,"../../bibliotecas/primitivas-numero":30,"../../bibliotecas/primitivas-texto":31,"../../bibliotecas/primitivas-vetor":32,"../../construtos":62,"../../construtos/tuplas":80,"../../declaracoes":109,"../../inferenciador":135,"../../informacao-elemento-sintatico":136,"../../lexador/simbolo":205,"../../tipos-de-dados/delegua":207,"../../tipos-de-simbolos/tenda":219,"../avaliador-sintatico-base":9,"./../erro-avaliador-sintatico":20,"./../informacao-escopo":22,"./../pilha-escopos":26,"browser-process-hrtime":403}],17:[function(require,module,exports){
8029
8032
  "use strict";
8030
8033
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8031
8034
  if (k2 === undefined) k2 = k;
@@ -8860,7 +8863,6 @@ const descritor_tipo_classe_1 = require("../interpretador/estruturas/descritor-t
8860
8863
  const estruturas_1 = require("../interpretador/estruturas");
8861
8864
  const construtos_1 = require("../construtos");
8862
8865
  const quebras_1 = require("../quebras");
8863
- const inferenciador_1 = require("../inferenciador");
8864
8866
  const configTuplas = {
8865
8867
  'Dupla': { Classe: construtos_1.Dupla, props: ['primeiro', 'segundo'] },
8866
8868
  'Trio': { Classe: construtos_1.Trio, props: ['primeiro', 'segundo', 'terceiro'] },
@@ -9783,7 +9785,7 @@ async function todosEmCondicao(interpretador, vetor, funcaoCondicional) {
9783
9785
  * @returns A tupla resolvida.
9784
9786
  */
9785
9787
  async function tupla(interpretador, vetor) {
9786
- const valorVetor = !Array.isArray(vetor) && vetor.hasOwnProperty('valor') ? vetor.valor : vetor;
9788
+ const valorVetor = interpretador.resolverValor(vetor);
9787
9789
  // TODO: As lógicas de validação abaixo deixam de fazer sentido com a validação de argumentos feita
9788
9790
  // na avaliação sintática. Estudar remoção.
9789
9791
  if (!Array.isArray(valorVetor)) {
@@ -9792,21 +9794,8 @@ async function tupla(interpretador, vetor) {
9792
9794
  linha: interpretador.linhaDeclaracaoAtual,
9793
9795
  }, 'Argumento de função nativa `tupla` não parece ser um vetor.'));
9794
9796
  }
9795
- const tamanho = valorVetor.length;
9796
- if (tamanho < 2) {
9797
- return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
9798
- hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
9799
- linha: interpretador.linhaDeclaracaoAtual,
9800
- }, 'Para ser transformado em uma tupla, vetor precisa ter no mínimo 2 elementos.'));
9801
- }
9802
- const criarLiteral = (valor) => new construtos_1.Literal(interpretador.hashArquivoDeclaracaoAtual, interpretador.linhaDeclaracaoAtual, valor, (0, inferenciador_1.inferirTipoVariavel)(valor));
9803
- if (mapaConstrutoresTupla.hasOwnProperty(tamanho)) {
9804
- const Construtor = mapaConstrutoresTupla[tamanho];
9805
- const args = valorVetor.map(criarLiteral);
9806
- return Promise.resolve(new Construtor(...args));
9807
- }
9808
- const elementos = valorVetor.map(criarLiteral);
9809
- return Promise.resolve(new construtos_1.TuplaN(interpretador.hashArquivoDeclaracaoAtual, interpretador.linhaDeclaracaoAtual, elementos));
9797
+ const elementos = valorVetor.map(item => new construtos_1.Literal(interpretador.hashArquivoDeclaracaoAtual, interpretador.linhaDeclaracaoAtual, interpretador.resolverValor(item)));
9798
+ return new construtos_1.TuplaN(interpretador.hashArquivoDeclaracaoAtual, interpretador.linhaDeclaracaoAtual, elementos);
9810
9799
  }
9811
9800
  async function vetor(interpretador, tupla) {
9812
9801
  const objetoTupla = interpretador.resolverValor(tupla);
@@ -9836,7 +9825,7 @@ async function vetor(interpretador, tupla) {
9836
9825
  return Promise.resolve(resultadoFinal);
9837
9826
  }
9838
9827
 
9839
- },{"../construtos":62,"../excecoes":129,"../inferenciador":135,"../interpretador/estruturas":171,"../interpretador/estruturas/descritor-tipo-classe":169,"../interpretador/estruturas/funcao-padrao":170,"../interpretador/estruturas/objeto-delegua-classe":174,"../quebras":206}],28:[function(require,module,exports){
9828
+ },{"../construtos":62,"../excecoes":129,"../interpretador/estruturas":171,"../interpretador/estruturas/descritor-tipo-classe":169,"../interpretador/estruturas/funcao-padrao":170,"../interpretador/estruturas/objeto-delegua-classe":174,"../quebras":206}],28:[function(require,module,exports){
9840
9829
  "use strict";
9841
9830
  Object.defineProperty(exports, "__esModule", { value: true });
9842
9831
  const excecoes_1 = require("../../../excecoes");
@@ -15549,6 +15538,7 @@ function carregarBibliotecasGlobais(pilhaEscoposExecucao) {
15549
15538
  pilhaEscoposExecucao.definirVariavel('todos', new funcao_padrao_1.FuncaoPadrao(2, bibliotecaGlobal.todosEmCondicao));
15550
15539
  pilhaEscoposExecucao.definirVariavel('todosEmCondicao', new funcao_padrao_1.FuncaoPadrao(2, bibliotecaGlobal.todosEmCondicao));
15551
15540
  pilhaEscoposExecucao.definirVariavel('tupla', new funcao_padrao_1.FuncaoPadrao(1, bibliotecaGlobal.tupla));
15541
+ pilhaEscoposExecucao.definirVariavel('vetor', new funcao_padrao_1.FuncaoPadrao(1, bibliotecaGlobal.vetor));
15552
15542
  }
15553
15543
  function pontoEntradaAjuda(funcao, topico) {
15554
15544
  if (!funcao) {
@@ -16659,18 +16649,7 @@ class InterpretadorBase {
16659
16649
  return Promise.resolve();
16660
16650
  }
16661
16651
  async visitarDeclaracaoTendoComo(declaracao) {
16662
- const retornoInicializacao = await this.avaliar(declaracao.inicializacaoVariavel);
16663
- const retornoInicializacaoResolvido = this.resolverValor(retornoInicializacao);
16664
- this.pilhaEscoposExecucao.definirConstante(declaracao.simboloVariavel.lexema, retornoInicializacaoResolvido);
16665
- await this.executar(declaracao.corpo);
16666
- if (retornoInicializacao instanceof estruturas_1.ObjetoDeleguaClasse) {
16667
- const metodoFinalizar = retornoInicializacaoResolvido.classe.metodos['finalizar'];
16668
- if (metodoFinalizar) {
16669
- const chamavel = metodoFinalizar.funcaoPorMetodoDeClasse(retornoInicializacaoResolvido);
16670
- chamavel.chamar(this, []);
16671
- }
16672
- }
16673
- return null;
16652
+ throw new Error('Método não implementado.');
16674
16653
  }
16675
16654
  async visitarDeclaracaoInicioAlgoritmo(declaracao) {
16676
16655
  throw new Error('Método não implementado.');
@@ -18319,7 +18298,7 @@ class InterpretadorBase {
18319
18298
  exports.InterpretadorBase = InterpretadorBase;
18320
18299
 
18321
18300
  }).call(this)}).call(this,require('_process'))
18322
- },{"../avaliador-sintatico":21,"../bibliotecas/primitivas-dicionario":29,"../bibliotecas/primitivas-vetor":32,"../construtos":62,"../excecoes":129,"../inferenciador":135,"../lexador":197,"../quebras":206,"../tipos-de-dados/delegua":207,"../tipos-de-dados/primitivos":209,"../tipos-de-simbolos/delegua":212,"./espaco-memoria":164,"./estruturas":171,"./estruturas/metodo-primitiva":172,"./pilha-escopos-execucao":181,"_process":456,"browser-process-hrtime":402}],179:[function(require,module,exports){
18301
+ },{"../avaliador-sintatico":21,"../bibliotecas/primitivas-dicionario":29,"../bibliotecas/primitivas-vetor":32,"../construtos":62,"../excecoes":129,"../inferenciador":135,"../lexador":197,"../quebras":206,"../tipos-de-dados/delegua":207,"../tipos-de-dados/primitivos":209,"../tipos-de-simbolos/delegua":212,"./espaco-memoria":164,"./estruturas":171,"./estruturas/metodo-primitiva":172,"./pilha-escopos-execucao":181,"_process":457,"browser-process-hrtime":403}],179:[function(require,module,exports){
18323
18302
  "use strict";
18324
18303
  var __importDefault = (this && this.__importDefault) || function (mod) {
18325
18304
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -18728,6 +18707,20 @@ class Interpretador extends interpretador_base_1.InterpretadorBase {
18728
18707
  async visitarDeclaracaoParaCada(declaracao) {
18729
18708
  return this.logicaComumExecucaoParaCada(declaracao, false);
18730
18709
  }
18710
+ async visitarDeclaracaoTendoComo(declaracao) {
18711
+ const retornoInicializacao = await this.avaliar(declaracao.inicializacaoVariavel);
18712
+ const retornoInicializacaoResolvido = this.resolverValor(retornoInicializacao);
18713
+ this.pilhaEscoposExecucao.definirConstante(declaracao.simboloVariavel.lexema, retornoInicializacaoResolvido);
18714
+ await this.executar(declaracao.corpo);
18715
+ if (retornoInicializacao instanceof estruturas_1.ObjetoDeleguaClasse) {
18716
+ const metodoFinalizar = retornoInicializacaoResolvido.classe.metodos['finalizar'];
18717
+ if (metodoFinalizar) {
18718
+ const chamavel = metodoFinalizar.funcaoPorMetodoDeClasse(retornoInicializacaoResolvido);
18719
+ chamavel.chamar(this, []);
18720
+ }
18721
+ }
18722
+ return null;
18723
+ }
18731
18724
  async visitarExpressaoAcessoIndiceVariavel(expressao) {
18732
18725
  const promises = await Promise.all([
18733
18726
  this.avaliar(expressao.entidadeChamada),
@@ -20935,7 +20928,7 @@ class LexadorPitugues {
20935
20928
  }
20936
20929
  exports.LexadorPitugues = LexadorPitugues;
20937
20930
 
20938
- },{"../../tipos-de-simbolos/pitugues":216,"../simbolo":205,"./palavras-reservadas/pitugues":193,"browser-process-hrtime":402}],187:[function(require,module,exports){
20931
+ },{"../../tipos-de-simbolos/pitugues":216,"../simbolo":205,"./palavras-reservadas/pitugues":193,"browser-process-hrtime":403}],187:[function(require,module,exports){
20939
20932
  "use strict";
20940
20933
  var __importDefault = (this && this.__importDefault) || function (mod) {
20941
20934
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -21545,7 +21538,7 @@ class LexadorPrisma {
21545
21538
  }
21546
21539
  exports.LexadorPrisma = LexadorPrisma;
21547
21540
 
21548
- },{"../../tipos-de-simbolos/prisma":218,"../simbolo":205,"./palavras-reservadas/prisma":195,"browser-process-hrtime":402}],189:[function(require,module,exports){
21541
+ },{"../../tipos-de-simbolos/prisma":218,"../simbolo":205,"./palavras-reservadas/prisma":195,"browser-process-hrtime":403}],189:[function(require,module,exports){
21549
21542
  "use strict";
21550
21543
  var __importDefault = (this && this.__importDefault) || function (mod) {
21551
21544
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -21936,7 +21929,7 @@ class LexadorTenda {
21936
21929
  }
21937
21930
  exports.LexadorTenda = LexadorTenda;
21938
21931
 
21939
- },{"../../tipos-de-simbolos/tenda":219,"../simbolo":205,"./palavras-reservadas/tenda":196,"browser-process-hrtime":402}],190:[function(require,module,exports){
21932
+ },{"../../tipos-de-simbolos/tenda":219,"../simbolo":205,"./palavras-reservadas/tenda":196,"browser-process-hrtime":403}],190:[function(require,module,exports){
21940
21933
  "use strict";
21941
21934
  var __importDefault = (this && this.__importDefault) || function (mod) {
21942
21935
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -22896,7 +22889,7 @@ class Lexador {
22896
22889
  }
22897
22890
  exports.Lexador = Lexador;
22898
22891
 
22899
- },{"../tipos-de-simbolos/delegua":212,"./palavras-reservadas":204,"./simbolo":205,"browser-process-hrtime":402}],201:[function(require,module,exports){
22892
+ },{"../tipos-de-simbolos/delegua":212,"./palavras-reservadas":204,"./simbolo":205,"browser-process-hrtime":403}],201:[function(require,module,exports){
22900
22893
  "use strict";
22901
22894
  var __importDefault = (this && this.__importDefault) || function (mod) {
22902
22895
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -24379,6 +24372,7 @@ __exportStar(require("./tradutor-assembly-arm"), exports);
24379
24372
  __exportStar(require("./tradutor-assembly-x64"), exports);
24380
24373
  __exportStar(require("./tradutor-assemblyscript"), exports);
24381
24374
  __exportStar(require("./tradutor-calango"), exports);
24375
+ __exportStar(require("./tradutor-elixir"), exports);
24382
24376
  __exportStar(require("./tradutor-javascript"), exports);
24383
24377
  __exportStar(require("./tradutor-mermaidjs"), exports);
24384
24378
  __exportStar(require("./tradutor-portugol-ipt"), exports);
@@ -24388,7 +24382,7 @@ __exportStar(require("./tradutor-reverso-python"), exports);
24388
24382
  __exportStar(require("./tradutor-reverso-tenda"), exports);
24389
24383
  __exportStar(require("./tradutor-ruby"), exports);
24390
24384
 
24391
- },{"./tradutor-assembly-arm":229,"./tradutor-assembly-x64":230,"./tradutor-assemblyscript":231,"./tradutor-calango":232,"./tradutor-javascript":233,"./tradutor-mermaidjs":234,"./tradutor-portugol-ipt":235,"./tradutor-python":236,"./tradutor-reverso-javascript":237,"./tradutor-reverso-python":238,"./tradutor-reverso-tenda":239,"./tradutor-ruby":240}],221:[function(require,module,exports){
24385
+ },{"./tradutor-assembly-arm":229,"./tradutor-assembly-x64":230,"./tradutor-assemblyscript":231,"./tradutor-calango":232,"./tradutor-elixir":233,"./tradutor-javascript":234,"./tradutor-mermaidjs":235,"./tradutor-portugol-ipt":236,"./tradutor-python":237,"./tradutor-reverso-javascript":238,"./tradutor-reverso-python":239,"./tradutor-reverso-tenda":240,"./tradutor-ruby":241}],221:[function(require,module,exports){
24392
24386
  "use strict";
24393
24387
  Object.defineProperty(exports, "__esModule", { value: true });
24394
24388
  exports.ArestaFluxograma = void 0;
@@ -25758,7 +25752,7 @@ __decorate([
25758
25752
  Decorators_1.Override
25759
25753
  ], Python3Lexer.prototype, "nextToken", null);
25760
25754
 
25761
- },{"./python3-parser":228,"antlr4ts/CommonToken":250,"antlr4ts/Decorators":254,"antlr4ts/Lexer":262,"antlr4ts/Token":279,"antlr4ts/VocabularyImpl":285,"antlr4ts/atn/ATNDeserializer":291,"antlr4ts/atn/LexerATNSimulator":312,"antlr4ts/misc/Utils":373}],228:[function(require,module,exports){
25755
+ },{"./python3-parser":228,"antlr4ts/CommonToken":251,"antlr4ts/Decorators":255,"antlr4ts/Lexer":263,"antlr4ts/Token":280,"antlr4ts/VocabularyImpl":286,"antlr4ts/atn/ATNDeserializer":292,"antlr4ts/atn/LexerATNSimulator":313,"antlr4ts/misc/Utils":374}],228:[function(require,module,exports){
25762
25756
  "use strict";
25763
25757
  // Generated from fontes\tradutores\python\Python3.g4 by ANTLR 4.9.0-SNAPSHOT
25764
25758
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
@@ -37005,7 +36999,7 @@ class Yield_argContext extends ParserRuleContext_1.ParserRuleContext {
37005
36999
  }
37006
37000
  exports.Yield_argContext = Yield_argContext;
37007
37001
 
37008
- },{"antlr4ts/FailedPredicateException":258,"antlr4ts/NoViableAltException":266,"antlr4ts/Parser":267,"antlr4ts/ParserRuleContext":270,"antlr4ts/RecognitionException":273,"antlr4ts/Token":279,"antlr4ts/VocabularyImpl":285,"antlr4ts/atn/ATN":287,"antlr4ts/atn/ATNDeserializer":291,"antlr4ts/atn/ParserATNSimulator":328,"antlr4ts/misc/Utils":373}],229:[function(require,module,exports){
37002
+ },{"antlr4ts/FailedPredicateException":259,"antlr4ts/NoViableAltException":267,"antlr4ts/Parser":268,"antlr4ts/ParserRuleContext":271,"antlr4ts/RecognitionException":274,"antlr4ts/Token":280,"antlr4ts/VocabularyImpl":286,"antlr4ts/atn/ATN":288,"antlr4ts/atn/ATNDeserializer":292,"antlr4ts/atn/ParserATNSimulator":329,"antlr4ts/misc/Utils":374}],229:[function(require,module,exports){
37009
37003
  "use strict";
37010
37004
  Object.defineProperty(exports, "__esModule", { value: true });
37011
37005
  exports.TradutorAssemblyARM = void 0;
@@ -39085,6 +39079,933 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
39085
39079
  return (mod && mod.__esModule) ? mod : { "default": mod };
39086
39080
  };
39087
39081
  Object.defineProperty(exports, "__esModule", { value: true });
39082
+ exports.TradutorElixir = void 0;
39083
+ const delegua_1 = __importDefault(require("../tipos-de-simbolos/delegua"));
39084
+ /**
39085
+ * Tradutor que converte código Delégua para Elixir.
39086
+ *
39087
+ * Elixir é uma linguagem funcional, então algumas conversões são necessárias:
39088
+ * - Classes → Módulos com structs
39089
+ * - Métodos → Funções que recebem structs como primeiro parâmetro
39090
+ * - Loops imperativos → Funções recursivas ou Enum.each
39091
+ * - Variables → Bindings imutáveis
39092
+ */
39093
+ class TradutorElixir {
39094
+ constructor() {
39095
+ this.indentacaoAtual = 0;
39096
+ this.moduloAtual = null;
39097
+ this.modulosConhecidos = new Set();
39098
+ this.funcoesConhecidas = new Set();
39099
+ this.atributosModulo = new Map();
39100
+ this.dentroDeMetodo = false;
39101
+ this.nomeParametroStruct = null;
39102
+ this.contadorVariavelTemporaria = 0;
39103
+ }
39104
+ /**
39105
+ * Adiciona a indentação atual (Elixir usa 2 espaços por convenção)
39106
+ */
39107
+ adicionarIndentacao() {
39108
+ return ' '.repeat(this.indentacaoAtual);
39109
+ }
39110
+ /**
39111
+ * Aumenta o nível de indentação em 2 espaços
39112
+ */
39113
+ aumentarIndentacao() {
39114
+ this.indentacaoAtual += 2;
39115
+ }
39116
+ /**
39117
+ * Diminui o nível de indentação em 2 espaços
39118
+ */
39119
+ diminuirIndentacao() {
39120
+ this.indentacaoAtual -= 2;
39121
+ if (this.indentacaoAtual < 0) {
39122
+ this.indentacaoAtual = 0;
39123
+ }
39124
+ }
39125
+ /**
39126
+ * Converte identificadores de camelCase para snake_case (convenção Elixir)
39127
+ */
39128
+ converterIdentificador(nome) {
39129
+ return nome
39130
+ .replace(/([A-Z])/g, '_$1')
39131
+ .toLowerCase()
39132
+ .replace(/^_/, '');
39133
+ }
39134
+ /**
39135
+ * Converte nomes de classes/módulos, preservando PascalCase
39136
+ */
39137
+ converterNomeModulo(nome) {
39138
+ return nome.charAt(0).toUpperCase() + nome.slice(1);
39139
+ }
39140
+ /**
39141
+ * Gera nome único para variável temporária
39142
+ */
39143
+ gerarVariavelTemporaria() {
39144
+ return `_temp_${this.contadorVariavelTemporaria++}`;
39145
+ }
39146
+ /**
39147
+ * Mapeia operadores Delégua para Elixir
39148
+ */
39149
+ traduzirOperador(simbolo) {
39150
+ const tipoSimbolo = simbolo.tipo;
39151
+ switch (tipoSimbolo) {
39152
+ // Aritméticos
39153
+ case delegua_1.default.ADICAO:
39154
+ return '+';
39155
+ case delegua_1.default.SUBTRACAO:
39156
+ return '-';
39157
+ case delegua_1.default.MULTIPLICACAO:
39158
+ return '*';
39159
+ case delegua_1.default.DIVISAO:
39160
+ return '/';
39161
+ case delegua_1.default.MODULO:
39162
+ return 'rem';
39163
+ case delegua_1.default.EXPONENCIACAO:
39164
+ return '**';
39165
+ // Comparação
39166
+ case delegua_1.default.MAIOR:
39167
+ return '>';
39168
+ case delegua_1.default.MAIOR_IGUAL:
39169
+ return '>=';
39170
+ case delegua_1.default.MENOR:
39171
+ return '<';
39172
+ case delegua_1.default.MENOR_IGUAL:
39173
+ return '<=';
39174
+ case delegua_1.default.IGUAL_IGUAL:
39175
+ return '==';
39176
+ case delegua_1.default.DIFERENTE:
39177
+ return '!=';
39178
+ // Lógicos
39179
+ case delegua_1.default.E:
39180
+ return 'and';
39181
+ case delegua_1.default.OU:
39182
+ return 'or';
39183
+ case delegua_1.default.NEGACAO:
39184
+ return 'not';
39185
+ // Bitwise
39186
+ case delegua_1.default.BIT_AND:
39187
+ return '&&&';
39188
+ case delegua_1.default.BIT_OR:
39189
+ return '|||';
39190
+ case delegua_1.default.BIT_XOR:
39191
+ return '^^^';
39192
+ case delegua_1.default.BIT_NOT:
39193
+ return '~~~';
39194
+ default:
39195
+ return simbolo.lexema;
39196
+ }
39197
+ }
39198
+ /**
39199
+ * Ponto de entrada para tradução
39200
+ */
39201
+ async traduzir(declaracoes) {
39202
+ let resultado = '';
39203
+ for (const declaracao of declaracoes) {
39204
+ const traducao = await declaracao.aceitar(this);
39205
+ if (traducao) {
39206
+ resultado += traducao + '\n';
39207
+ }
39208
+ }
39209
+ return resultado;
39210
+ }
39211
+ // ========== DECLARAÇÕES ==========
39212
+ visitarDeclaracaoCabecalhoPrograma(declaracao) {
39213
+ // Elixir não tem conceito de cabeçalho de programa
39214
+ return Promise.resolve('');
39215
+ }
39216
+ async visitarDeclaracaoClasse(declaracao) {
39217
+ const nomeModulo = this.converterNomeModulo(declaracao.simbolo.lexema);
39218
+ this.modulosConhecidos.add(nomeModulo);
39219
+ let resultado = this.adicionarIndentacao();
39220
+ resultado += `defmodule ${nomeModulo} do\n`;
39221
+ this.aumentarIndentacao();
39222
+ const moduloAnterior = this.moduloAtual;
39223
+ this.moduloAtual = nomeModulo;
39224
+ // Extrair campos do struct do construtor
39225
+ const camposStruct = await this.extrairCamposStruct(declaracao);
39226
+ if (camposStruct.length > 0) {
39227
+ resultado += this.adicionarIndentacao();
39228
+ resultado += `defstruct [${camposStruct.join(', ')}]\n\n`;
39229
+ }
39230
+ // Traduzir métodos
39231
+ for (const metodo of declaracao.metodos) {
39232
+ const traducaoMetodo = await this.traduzirMetodoClasse(metodo, nomeModulo);
39233
+ resultado += traducaoMetodo + '\n\n';
39234
+ }
39235
+ this.diminuirIndentacao();
39236
+ resultado += this.adicionarIndentacao() + 'end';
39237
+ this.moduloAtual = moduloAnterior;
39238
+ return Promise.resolve(resultado);
39239
+ }
39240
+ /**
39241
+ * Extrai nomes de campos do struct a partir do construtor da classe
39242
+ */
39243
+ async extrairCamposStruct(declaracao) {
39244
+ const campos = new Set();
39245
+ // Procurar pelo construtor
39246
+ const construtor = declaracao.metodos.find(m => m.simbolo.lexema === 'construtor' || m.simbolo.lexema === 'inicializar');
39247
+ if (!construtor) {
39248
+ return [];
39249
+ }
39250
+ // Analisar corpo do construtor para encontrar atribuições a "isto.campo"
39251
+ for (const declaracaoCorpo of construtor.funcao.corpo) {
39252
+ this.extrairCamposDeDeclaracao(declaracaoCorpo, campos);
39253
+ }
39254
+ // Converter para atoms do Elixir
39255
+ return Array.from(campos).map(c => `:${this.converterIdentificador(c)}`);
39256
+ }
39257
+ /**
39258
+ * Extrai campos de uma declaração recursivamente
39259
+ */
39260
+ extrairCamposDeDeclaracao(declaracao, campos) {
39261
+ // Se é uma expressão de atribuição com isto.campo
39262
+ if (declaracao.constructor.name === 'Expressao' && declaracao.expressao) {
39263
+ const expressao = declaracao.expressao;
39264
+ // DefinirValor: usado para isto.campo = valor
39265
+ if (expressao.constructor.name === 'DefinirValor') {
39266
+ if (expressao.objeto && expressao.objeto.constructor.name === 'Isto') {
39267
+ campos.add(expressao.nome.lexema);
39268
+ }
39269
+ }
39270
+ // Atribuir: pode ser usado para isto.campo = valor
39271
+ if (expressao.constructor.name === 'Atribuir') {
39272
+ // Verificar se o alvo é um acesso a propriedade de isto
39273
+ if (expressao.alvo && expressao.alvo.constructor.name === 'AcessoPropriedade') {
39274
+ const acesso = expressao.alvo;
39275
+ if (acesso.objeto && acesso.objeto.constructor.name === 'Isto') {
39276
+ campos.add(acesso.nomePropriedade);
39277
+ }
39278
+ }
39279
+ }
39280
+ }
39281
+ // Se é um bloco, processar declarações internas
39282
+ if (declaracao.constructor.name === 'Bloco') {
39283
+ for (const decl of declaracao.declaracoes) {
39284
+ this.extrairCamposDeDeclaracao(decl, campos);
39285
+ }
39286
+ }
39287
+ }
39288
+ /**
39289
+ * Traduz um método de classe para função de módulo
39290
+ */
39291
+ async traduzirMetodoClasse(metodo, nomeModulo) {
39292
+ const nomeMetodo = this.converterIdentificador(metodo.simbolo.lexema);
39293
+ let resultado = this.adicionarIndentacao();
39294
+ // Construtor vira função new/N
39295
+ if (metodo.simbolo.lexema === 'construtor' || metodo.simbolo.lexema === 'inicializar') {
39296
+ resultado += `def new(`;
39297
+ const parametros = metodo.funcao.parametros.map(p => this.converterIdentificador(p.nome.lexema));
39298
+ resultado += parametros.join(', ');
39299
+ resultado += ') do\n';
39300
+ this.aumentarIndentacao();
39301
+ resultado += this.adicionarIndentacao();
39302
+ resultado += `%${nomeModulo}{`;
39303
+ // Extrair inicializações do construtor
39304
+ const inicializacoes = await this.extrairInicializacoesStruct(metodo.funcao.corpo, nomeModulo);
39305
+ resultado += inicializacoes;
39306
+ resultado += '}\n';
39307
+ this.diminuirIndentacao();
39308
+ resultado += this.adicionarIndentacao() + 'end';
39309
+ }
39310
+ else {
39311
+ // Métodos normais recebem o struct como primeiro parâmetro
39312
+ resultado += `def ${nomeMetodo}(`;
39313
+ const nomeParametroStruct = this.converterIdentificador(nomeModulo.toLowerCase());
39314
+ this.nomeParametroStruct = nomeParametroStruct;
39315
+ const parametros = [nomeParametroStruct].concat(metodo.funcao.parametros.map(p => this.converterIdentificador(p.nome.lexema)));
39316
+ resultado += parametros.join(', ');
39317
+ resultado += ') do\n';
39318
+ this.aumentarIndentacao();
39319
+ this.dentroDeMetodo = true;
39320
+ for (const declaracaoCorpo of metodo.funcao.corpo) {
39321
+ const traducao = await declaracaoCorpo.aceitar(this);
39322
+ if (traducao) {
39323
+ resultado += traducao + '\n';
39324
+ }
39325
+ }
39326
+ this.dentroDeMetodo = false;
39327
+ this.nomeParametroStruct = null;
39328
+ this.diminuirIndentacao();
39329
+ resultado += this.adicionarIndentacao() + 'end';
39330
+ }
39331
+ return resultado;
39332
+ }
39333
+ /**
39334
+ * Extrai inicializações de struct do corpo do construtor
39335
+ */
39336
+ async extrairInicializacoesStruct(corpo, nomeModulo) {
39337
+ const inicializacoes = [];
39338
+ for (const declaracao of corpo) {
39339
+ if (declaracao.constructor.name === 'Expressao' && declaracao.expressao) {
39340
+ const expressao = declaracao.expressao;
39341
+ // DefinirValor: isto.campo = valor
39342
+ if (expressao.constructor.name === 'DefinirValor') {
39343
+ if (expressao.objeto && expressao.objeto.constructor.name === 'Isto') {
39344
+ const campo = this.converterIdentificador(expressao.nome.lexema);
39345
+ const valor = await expressao.valor.aceitar(this);
39346
+ inicializacoes.push(`${campo}: ${valor}`);
39347
+ }
39348
+ }
39349
+ // Atribuir: pode ser isto.campo = valor (se alvo é AcessoPropriedade)
39350
+ if (expressao.constructor.name === 'Atribuir') {
39351
+ if (expressao.alvo && expressao.alvo.constructor.name === 'AcessoPropriedade') {
39352
+ const acesso = expressao.alvo;
39353
+ if (acesso.objeto && acesso.objeto.constructor.name === 'Isto') {
39354
+ const campo = this.converterIdentificador(acesso.nomePropriedade);
39355
+ const valor = await expressao.valor.aceitar(this);
39356
+ inicializacoes.push(`${campo}: ${valor}`);
39357
+ }
39358
+ }
39359
+ }
39360
+ }
39361
+ }
39362
+ return inicializacoes.length > 0 ? inicializacoes.join(', ') : '';
39363
+ }
39364
+ async visitarDeclaracaoComentario(declaracao) {
39365
+ const conteudo = Array.isArray(declaracao.conteudo)
39366
+ ? declaracao.conteudo.join('\n# ')
39367
+ : declaracao.conteudo;
39368
+ return Promise.resolve(`${this.adicionarIndentacao()}# ${conteudo}`);
39369
+ }
39370
+ async visitarDeclaracaoConst(declaracao) {
39371
+ // Em Elixir, constantes em módulos são atributos de módulo (@constante)
39372
+ // Fora de módulos, são apenas bindings normais (imutáveis por padrão)
39373
+ let resultado = this.adicionarIndentacao();
39374
+ if (this.moduloAtual) {
39375
+ // Dentro de módulo, usar atributo de módulo
39376
+ const nomeAtributo = this.converterIdentificador(declaracao.simbolo.lexema);
39377
+ resultado += `@${nomeAtributo} `;
39378
+ }
39379
+ else {
39380
+ // Fora de módulo, binding normal (mantem nome original em maiúsculas)
39381
+ resultado += declaracao.simbolo.lexema;
39382
+ resultado += ' = ';
39383
+ }
39384
+ if (declaracao.inicializador) {
39385
+ resultado += await declaracao.inicializador.aceitar(this);
39386
+ }
39387
+ else {
39388
+ resultado += 'nil';
39389
+ }
39390
+ return Promise.resolve(resultado);
39391
+ }
39392
+ visitarDeclaracaoConstMultiplo(declaracao) {
39393
+ throw new Error('Método não implementado: visitarDeclaracaoConstMultiplo');
39394
+ }
39395
+ async visitarDeclaracaoDeExpressao(declaracao) {
39396
+ const resultado = this.adicionarIndentacao() + (await declaracao.expressao.aceitar(this));
39397
+ return Promise.resolve(resultado);
39398
+ }
39399
+ async visitarDeclaracaoDefinicaoFuncao(declaracao) {
39400
+ const nomeFuncao = this.converterIdentificador(declaracao.simbolo.lexema);
39401
+ this.funcoesConhecidas.add(nomeFuncao);
39402
+ let resultado = this.adicionarIndentacao();
39403
+ resultado += `def ${nomeFuncao}(`;
39404
+ // Parâmetros
39405
+ const parametros = declaracao.funcao.parametros.map(p => this.converterIdentificador(p.nome.lexema));
39406
+ resultado += parametros.join(', ');
39407
+ resultado += ') do\n';
39408
+ // Corpo
39409
+ this.aumentarIndentacao();
39410
+ for (const declaracaoCorpo of declaracao.funcao.corpo) {
39411
+ const traducao = await declaracaoCorpo.aceitar(this);
39412
+ if (traducao) {
39413
+ resultado += traducao + '\n';
39414
+ }
39415
+ }
39416
+ this.diminuirIndentacao();
39417
+ resultado += this.adicionarIndentacao() + 'end';
39418
+ return Promise.resolve(resultado);
39419
+ }
39420
+ async visitarDeclaracaoEnquanto(declaracao) {
39421
+ // Enquanto em Elixir vira função recursiva
39422
+ // Padrão: (fn -> loop = fn when cond -> corpo; loop.() end; loop = fn -> :ok end; loop.() end).()
39423
+ let resultado = this.adicionarIndentacao();
39424
+ resultado += '(fn ->\n';
39425
+ this.aumentarIndentacao();
39426
+ // Função recursiva com guard
39427
+ resultado += this.adicionarIndentacao();
39428
+ resultado += 'loop = fn when ';
39429
+ resultado += await declaracao.condicao.aceitar(this);
39430
+ resultado += ' ->\n';
39431
+ this.aumentarIndentacao();
39432
+ const traducaoCorpo = await declaracao.corpo.aceitar(this);
39433
+ resultado += traducaoCorpo;
39434
+ // Chamada recursiva
39435
+ resultado += this.adicionarIndentacao() + 'loop.()\n';
39436
+ this.diminuirIndentacao();
39437
+ resultado += this.adicionarIndentacao() + 'end\n';
39438
+ // Caso base
39439
+ resultado += this.adicionarIndentacao() + 'loop = fn -> :ok end\n';
39440
+ resultado += this.adicionarIndentacao() + 'loop.()\n';
39441
+ this.diminuirIndentacao();
39442
+ resultado += this.adicionarIndentacao() + 'end).()';
39443
+ return Promise.resolve(resultado);
39444
+ }
39445
+ async visitarDeclaracaoEscolha(declaracao) {
39446
+ let resultado = this.adicionarIndentacao();
39447
+ resultado += 'case ';
39448
+ resultado += await declaracao.identificadorOuLiteral.aceitar(this);
39449
+ resultado += ' do\n';
39450
+ this.aumentarIndentacao();
39451
+ // Processar cada caminho
39452
+ for (const caminho of declaracao.caminhos) {
39453
+ for (const condicao of caminho.condicoes) {
39454
+ resultado += this.adicionarIndentacao();
39455
+ resultado += await condicao.aceitar(this);
39456
+ resultado += ' ->\n';
39457
+ }
39458
+ this.aumentarIndentacao();
39459
+ for (const decl of caminho.declaracoes) {
39460
+ resultado += await decl.aceitar(this);
39461
+ resultado += '\n';
39462
+ }
39463
+ this.diminuirIndentacao();
39464
+ }
39465
+ // Caminho padrão
39466
+ if (declaracao.caminhoPadrao && declaracao.caminhoPadrao.declaracoes.length > 0) {
39467
+ resultado += this.adicionarIndentacao() + '_ ->\n';
39468
+ this.aumentarIndentacao();
39469
+ for (const decl of declaracao.caminhoPadrao.declaracoes) {
39470
+ resultado += await decl.aceitar(this);
39471
+ resultado += '\n';
39472
+ }
39473
+ this.diminuirIndentacao();
39474
+ }
39475
+ this.diminuirIndentacao();
39476
+ resultado += this.adicionarIndentacao() + 'end';
39477
+ return Promise.resolve(resultado);
39478
+ }
39479
+ async visitarDeclaracaoEscreva(declaracao) {
39480
+ let resultado = this.adicionarIndentacao();
39481
+ resultado += 'IO.puts(';
39482
+ if (declaracao.argumentos.length === 0) {
39483
+ resultado += '""';
39484
+ }
39485
+ else if (declaracao.argumentos.length === 1) {
39486
+ resultado += await declaracao.argumentos[0].aceitar(this);
39487
+ }
39488
+ else {
39489
+ // Múltiplos argumentos - concatenar
39490
+ const argumentos = [];
39491
+ for (const arg of declaracao.argumentos) {
39492
+ argumentos.push(await arg.aceitar(this));
39493
+ }
39494
+ resultado += argumentos.join(' <> ');
39495
+ }
39496
+ resultado += ')';
39497
+ return Promise.resolve(resultado);
39498
+ }
39499
+ visitarDeclaracaoEscrevaMesmaLinha(declaracao) {
39500
+ throw new Error('Método não implementado: visitarDeclaracaoEscrevaMesmaLinha');
39501
+ }
39502
+ async visitarDeclaracaoFazer(declaracao) {
39503
+ // Fazer...enquanto é similar a enquanto, mas executa o corpo pelo menos uma vez
39504
+ let resultado = this.adicionarIndentacao();
39505
+ resultado += '(fn ->\n';
39506
+ this.aumentarIndentacao();
39507
+ resultado += this.adicionarIndentacao();
39508
+ resultado += 'loop = fn ->\n';
39509
+ this.aumentarIndentacao();
39510
+ // Corpo
39511
+ const traducaoCorpo = await declaracao.caminhoFazer.aceitar(this);
39512
+ resultado += traducaoCorpo;
39513
+ // Verificar condição e decidir se continua
39514
+ resultado += this.adicionarIndentacao() + 'if ';
39515
+ resultado += await declaracao.condicaoEnquanto.aceitar(this);
39516
+ resultado += ' do\n';
39517
+ this.aumentarIndentacao();
39518
+ resultado += this.adicionarIndentacao() + 'loop.()\n';
39519
+ this.diminuirIndentacao();
39520
+ resultado += this.adicionarIndentacao() + 'else\n';
39521
+ this.aumentarIndentacao();
39522
+ resultado += this.adicionarIndentacao() + ':ok\n';
39523
+ this.diminuirIndentacao();
39524
+ resultado += this.adicionarIndentacao() + 'end\n';
39525
+ this.diminuirIndentacao();
39526
+ resultado += this.adicionarIndentacao() + 'end\n';
39527
+ resultado += this.adicionarIndentacao() + 'loop.()\n';
39528
+ this.diminuirIndentacao();
39529
+ resultado += this.adicionarIndentacao() + 'end).()';
39530
+ return Promise.resolve(resultado);
39531
+ }
39532
+ visitarDeclaracaoInicioAlgoritmo(declaracao) {
39533
+ // Elixir não tem conceito de início de algoritmo
39534
+ return Promise.resolve('');
39535
+ }
39536
+ async visitarDeclaracaoPara(declaracao) {
39537
+ // Para loop vira função recursiva com inicializador, condição e incremento
39538
+ let resultado = this.adicionarIndentacao();
39539
+ resultado += '(fn ->\n';
39540
+ this.aumentarIndentacao();
39541
+ // Extrair variável e valor inicial
39542
+ let nomeVar = '';
39543
+ let valorInicial = '';
39544
+ if (declaracao.inicializador) {
39545
+ const init = Array.isArray(declaracao.inicializador)
39546
+ ? declaracao.inicializador[0]
39547
+ : declaracao.inicializador;
39548
+ if (init.constructor.name === 'Var') {
39549
+ nomeVar = this.converterIdentificador(init.simbolo.lexema);
39550
+ if (init.inicializador) {
39551
+ valorInicial = await init.inicializador.aceitar(this);
39552
+ }
39553
+ else {
39554
+ valorInicial = '0';
39555
+ }
39556
+ }
39557
+ }
39558
+ // Função recursiva com parâmetro e guard
39559
+ resultado += this.adicionarIndentacao();
39560
+ resultado += `loop = fn ${nomeVar} when `;
39561
+ resultado += await declaracao.condicao.aceitar(this);
39562
+ resultado += ' ->\n';
39563
+ this.aumentarIndentacao();
39564
+ const traducaoCorpo = await declaracao.corpo.aceitar(this);
39565
+ resultado += traducaoCorpo;
39566
+ // Incremento e chamada recursiva
39567
+ const incremento = await declaracao.incrementar.aceitar(this);
39568
+ resultado += this.adicionarIndentacao() + `loop.(${incremento})\n`;
39569
+ this.diminuirIndentacao();
39570
+ resultado += this.adicionarIndentacao() + 'end\n';
39571
+ // Caso base
39572
+ resultado += this.adicionarIndentacao() + `loop = fn _ -> :ok end\n`;
39573
+ resultado += this.adicionarIndentacao() + `loop.(${valorInicial})\n`;
39574
+ this.diminuirIndentacao();
39575
+ resultado += this.adicionarIndentacao() + 'end).()';
39576
+ return Promise.resolve(resultado);
39577
+ }
39578
+ async visitarDeclaracaoParaCada(declaracao) {
39579
+ let resultado = this.adicionarIndentacao();
39580
+ resultado += 'Enum.each(';
39581
+ resultado += await declaracao.vetorOuDicionario.aceitar(this);
39582
+ resultado += ', fn ';
39583
+ resultado += await declaracao.variavelIteracao.aceitar(this);
39584
+ resultado += ' ->\n';
39585
+ this.aumentarIndentacao();
39586
+ const traducaoCorpo = await declaracao.corpo.aceitar(this);
39587
+ resultado += traducaoCorpo;
39588
+ this.diminuirIndentacao();
39589
+ resultado += this.adicionarIndentacao() + 'end)';
39590
+ return Promise.resolve(resultado);
39591
+ }
39592
+ async visitarDeclaracaoSe(declaracao) {
39593
+ let resultado = this.adicionarIndentacao();
39594
+ resultado += 'if ';
39595
+ resultado += await declaracao.condicao.aceitar(this);
39596
+ resultado += ' do\n';
39597
+ this.aumentarIndentacao();
39598
+ const traducaoEntao = await declaracao.caminhoEntao.aceitar(this);
39599
+ resultado += traducaoEntao;
39600
+ this.diminuirIndentacao();
39601
+ if (declaracao.caminhoSenao) {
39602
+ resultado += this.adicionarIndentacao() + 'else\n';
39603
+ this.aumentarIndentacao();
39604
+ const traducaoSenao = await declaracao.caminhoSenao.aceitar(this);
39605
+ resultado += traducaoSenao;
39606
+ this.diminuirIndentacao();
39607
+ }
39608
+ resultado += this.adicionarIndentacao() + 'end';
39609
+ return Promise.resolve(resultado);
39610
+ }
39611
+ async visitarDeclaracaoTendoComo(declaracao) {
39612
+ throw new Error('Método não implementado: visitarDeclaracaoTendoComo');
39613
+ }
39614
+ visitarDeclaracaoTente(declaracao) {
39615
+ throw new Error('Método não implementado: visitarDeclaracaoTente');
39616
+ }
39617
+ visitarDeclaracaoTextoDocumentacao(declaracao) {
39618
+ throw new Error('Método não implementado: visitarDeclaracaoTextoDocumentacao');
39619
+ }
39620
+ async visitarDeclaracaoVar(declaracao) {
39621
+ let resultado = this.adicionarIndentacao();
39622
+ resultado += this.converterIdentificador(declaracao.simbolo.lexema);
39623
+ resultado += ' = ';
39624
+ if (declaracao.inicializador) {
39625
+ resultado += await declaracao.inicializador.aceitar(this);
39626
+ }
39627
+ else {
39628
+ resultado += 'nil';
39629
+ }
39630
+ return Promise.resolve(resultado);
39631
+ }
39632
+ visitarDeclaracaoVarMultiplo(declaracao) {
39633
+ throw new Error('Método não implementado: visitarDeclaracaoVarMultiplo');
39634
+ }
39635
+ // ========== EXPRESSÕES ==========
39636
+ async visitarExpressaoDeAtribuicao(expressao) {
39637
+ const alvo = await expressao.alvo.aceitar(this);
39638
+ const valor = await expressao.valor.aceitar(this);
39639
+ return Promise.resolve(`${alvo} = ${valor}`);
39640
+ }
39641
+ async visitarExpressaoAcessoIndiceVariavel(expressao) {
39642
+ const objeto = await expressao.entidadeChamada.aceitar(this);
39643
+ const indice = await expressao.indice.aceitar(this);
39644
+ // Em Elixir, acesso por índice usa Enum.at/2
39645
+ return Promise.resolve(`Enum.at(${objeto}, ${indice})`);
39646
+ }
39647
+ visitarExpressaoAcessoIntervaloVariavel(expressao) {
39648
+ throw new Error('Método não implementado: visitarExpressaoAcessoIntervaloVariavel');
39649
+ }
39650
+ visitarExpressaoAcessoElementoMatriz(expressao) {
39651
+ throw new Error('Método não implementado: visitarExpressaoAcessoElementoMatriz');
39652
+ }
39653
+ async visitarExpressaoAcessoMetodo(expressao) {
39654
+ const objeto = await expressao.objeto.aceitar(this);
39655
+ const metodo = this.converterIdentificador(expressao.nomeMetodo);
39656
+ // AcessoMetodo é apenas a referência ao método, não a chamada
39657
+ // A chamada é feita por visitarExpressaoDeChamada
39658
+ return Promise.resolve(`${objeto}.${metodo}`);
39659
+ }
39660
+ /**
39661
+ * Mapeia métodos built-in de Delégua para Elixir
39662
+ */
39663
+ mapearMetodoBuiltIn(metodo, objeto, argumentos) {
39664
+ switch (metodo) {
39665
+ // Array/List methods
39666
+ case 'adicionar':
39667
+ case 'empilhar':
39668
+ return argumentos.length > 0 ? `[${argumentos[0]} | ${objeto}]` : `${objeto}`;
39669
+ case 'tamanho':
39670
+ return `length(${objeto})`;
39671
+ case 'inclui':
39672
+ return argumentos.length > 0 ? `Enum.member?(${objeto}, ${argumentos[0]})` : null;
39673
+ case 'inverter':
39674
+ return `Enum.reverse(${objeto})`;
39675
+ case 'mapear':
39676
+ return argumentos.length > 0 ? `Enum.map(${objeto}, ${argumentos[0]})` : null;
39677
+ case 'filtrar':
39678
+ return argumentos.length > 0 ? `Enum.filter(${objeto}, ${argumentos[0]})` : null;
39679
+ case 'ordenar':
39680
+ return `Enum.sort(${objeto})`;
39681
+ case 'juntar':
39682
+ return argumentos.length > 0 ? `Enum.join(${objeto}, ${argumentos[0]})` : `Enum.join(${objeto})`;
39683
+ case 'fatiar':
39684
+ if (argumentos.length >= 2) {
39685
+ return `Enum.slice(${objeto}, ${argumentos[0]}, ${argumentos[1]})`;
39686
+ }
39687
+ return null;
39688
+ case 'remover':
39689
+ return argumentos.length > 0 ? `List.delete(${objeto}, ${argumentos[0]})` : null;
39690
+ case 'somar':
39691
+ return `Enum.sum(${objeto})`;
39692
+ // String methods
39693
+ case 'maiusculo':
39694
+ return `String.upcase(${objeto})`;
39695
+ case 'minusculo':
39696
+ return `String.downcase(${objeto})`;
39697
+ case 'dividir':
39698
+ return argumentos.length > 0 ? `String.split(${objeto}, ${argumentos[0]})` : null;
39699
+ case 'substituir':
39700
+ if (argumentos.length >= 2) {
39701
+ return `String.replace(${objeto}, ${argumentos[0]}, ${argumentos[1]})`;
39702
+ }
39703
+ return null;
39704
+ case 'aparar':
39705
+ return `String.trim(${objeto})`;
39706
+ default:
39707
+ return null;
39708
+ }
39709
+ }
39710
+ /**
39711
+ * Tenta extrair o nome do módulo de uma expressão de objeto
39712
+ */
39713
+ obterNomeModulo(objetoStr) {
39714
+ // Se o objeto é uma variável simples, assumir que o módulo tem o mesmo nome em PascalCase
39715
+ // Isso é uma heurística; em casos reais, precisaríamos de análise semântica
39716
+ const match = objetoStr.match(/^([a-z_][a-z0-9_]*)$/);
39717
+ if (match) {
39718
+ return this.converterNomeModulo(match[1]);
39719
+ }
39720
+ return objetoStr;
39721
+ }
39722
+ async visitarExpressaoAcessoMetodoOuPropriedade(expressao) {
39723
+ const objeto = await expressao.objeto.aceitar(this);
39724
+ const simbolo = this.converterIdentificador(expressao.simbolo.lexema);
39725
+ // AcessoMetodoOuPropriedade é apenas a referência, não a chamada
39726
+ // A chamada com argumentos é feita por visitarExpressaoDeChamada
39727
+ return Promise.resolve(`${objeto}.${simbolo}`);
39728
+ }
39729
+ async visitarExpressaoAcessoPropriedade(expressao) {
39730
+ const objeto = await expressao.objeto.aceitar(this);
39731
+ const propriedade = this.converterIdentificador(expressao.nomePropriedade);
39732
+ return Promise.resolve(`${objeto}.${propriedade}`);
39733
+ }
39734
+ async visitarExpressaoAgrupamento(expressao) {
39735
+ const conteudo = await expressao.expressao.aceitar(this);
39736
+ return Promise.resolve(`(${conteudo})`);
39737
+ }
39738
+ visitarExpressaoArgumentoReferenciaFuncao(expressao) {
39739
+ throw new Error('Método não implementado: visitarExpressaoArgumentoReferenciaFuncao');
39740
+ }
39741
+ visitarExpressaoAtribuicaoPorIndice(expressao) {
39742
+ throw new Error('Método não implementado: visitarExpressaoAtribuicaoPorIndice');
39743
+ }
39744
+ visitarExpressaoAtribuicaoPorIndicesMatriz(expressao) {
39745
+ throw new Error('Método não implementado: visitarExpressaoAtribuicaoPorIndicesMatriz');
39746
+ }
39747
+ async visitarExpressaoBinaria(expressao) {
39748
+ const esquerda = await expressao.esquerda.aceitar(this);
39749
+ const direita = await expressao.direita.aceitar(this);
39750
+ const operador = this.traduzirOperador(expressao.operador);
39751
+ return Promise.resolve(`${esquerda} ${operador} ${direita}`);
39752
+ }
39753
+ async visitarExpressaoBloco(declaracao) {
39754
+ let resultado = '';
39755
+ for (const decl of declaracao.declaracoes) {
39756
+ const traducao = await decl.aceitar(this);
39757
+ if (traducao) {
39758
+ resultado += traducao + '\n';
39759
+ }
39760
+ }
39761
+ return Promise.resolve(resultado);
39762
+ }
39763
+ visitarExpressaoComentario(expressao) {
39764
+ throw new Error('Método não implementado: visitarExpressaoComentario');
39765
+ }
39766
+ visitarExpressaoContinua(declaracao) {
39767
+ throw new Error('Método não implementado: visitarExpressaoContinua');
39768
+ }
39769
+ async visitarExpressaoDeChamada(expressao) {
39770
+ // Processar argumentos
39771
+ const argumentos = [];
39772
+ for (const arg of expressao.argumentos) {
39773
+ const argTraduzido = await arg.aceitar(this);
39774
+ if (argTraduzido && argTraduzido.trim() !== '') {
39775
+ argumentos.push(argTraduzido);
39776
+ }
39777
+ }
39778
+ // Verificar se é instanciação de módulo (classe)
39779
+ if (expressao.entidadeChamada.constructor.name === 'Variavel') {
39780
+ const nomeEntidade = expressao.entidadeChamada.simbolo.lexema;
39781
+ if (this.modulosConhecidos.has(this.converterNomeModulo(nomeEntidade))) {
39782
+ // Chamada de construtor de módulo
39783
+ return Promise.resolve(`${this.converterNomeModulo(nomeEntidade)}.new(${argumentos.join(', ')})`);
39784
+ }
39785
+ }
39786
+ // Verificar se é chamada de método (AcessoMetodo ou AcessoMetodoOuPropriedade)
39787
+ if (expressao.entidadeChamada.constructor.name === 'AcessoMetodo') {
39788
+ const acessoMetodo = expressao.entidadeChamada;
39789
+ const objeto = await acessoMetodo.objeto.aceitar(this);
39790
+ const metodo = this.converterIdentificador(acessoMetodo.nomeMetodo);
39791
+ // Mapear métodos built-in
39792
+ const metodoMapeado = this.mapearMetodoBuiltIn(metodo, objeto, argumentos);
39793
+ if (metodoMapeado) {
39794
+ return Promise.resolve(metodoMapeado);
39795
+ }
39796
+ // Método de módulo/struct - passar o struct como primeiro argumento
39797
+ return Promise.resolve(`${this.obterNomeModulo(objeto)}.${metodo}(${objeto}${argumentos.length > 0 ? ', ' + argumentos.join(', ') : ''})`);
39798
+ }
39799
+ if (expressao.entidadeChamada.constructor.name === 'AcessoMetodoOuPropriedade') {
39800
+ const acesso = expressao.entidadeChamada;
39801
+ const objeto = await acesso.objeto.aceitar(this);
39802
+ const simbolo = this.converterIdentificador(acesso.simbolo.lexema);
39803
+ // Mapear métodos built-in
39804
+ const metodoMapeado = this.mapearMetodoBuiltIn(simbolo, objeto, argumentos);
39805
+ if (metodoMapeado) {
39806
+ return Promise.resolve(metodoMapeado);
39807
+ }
39808
+ // Método de módulo/struct
39809
+ return Promise.resolve(`${this.obterNomeModulo(objeto)}.${simbolo}(${objeto}${argumentos.length > 0 ? ', ' + argumentos.join(', ') : ''})`);
39810
+ }
39811
+ // Chamada normal de função
39812
+ const entidadeChamada = await expressao.entidadeChamada.aceitar(this);
39813
+ return Promise.resolve(`${entidadeChamada}(${argumentos.join(', ')})`);
39814
+ }
39815
+ visitarExpressaoDefinirValor(expressao) {
39816
+ throw new Error('Método não implementado: visitarExpressaoDefinirValor');
39817
+ }
39818
+ async visitarExpressaoFuncaoConstruto(expressao) {
39819
+ let resultado = 'fn ';
39820
+ // Parâmetros
39821
+ const parametros = expressao.parametros.map(p => this.converterIdentificador(p.nome.lexema));
39822
+ resultado += parametros.join(', ');
39823
+ resultado += ' ->';
39824
+ // Corpo - se for uma única expressão, inline; se for bloco, multi-linha
39825
+ if (expressao.corpo.length === 1) {
39826
+ resultado += ' ';
39827
+ const traducao = await expressao.corpo[0].aceitar(this);
39828
+ resultado += traducao;
39829
+ }
39830
+ else {
39831
+ resultado += '\n';
39832
+ this.aumentarIndentacao();
39833
+ for (const decl of expressao.corpo) {
39834
+ const traducao = await decl.aceitar(this);
39835
+ if (traducao) {
39836
+ resultado += traducao + '\n';
39837
+ }
39838
+ }
39839
+ this.diminuirIndentacao();
39840
+ resultado += this.adicionarIndentacao();
39841
+ }
39842
+ resultado += ' end';
39843
+ return Promise.resolve(resultado);
39844
+ }
39845
+ async visitarExpressaoDeVariavel(expressao) {
39846
+ return Promise.resolve(this.converterIdentificador(expressao.simbolo.lexema));
39847
+ }
39848
+ async visitarExpressaoDicionario(expressao) {
39849
+ if (expressao.chaves.length === 0) {
39850
+ return Promise.resolve('%{}');
39851
+ }
39852
+ const pares = [];
39853
+ for (let i = 0; i < expressao.chaves.length; i++) {
39854
+ const chave = await expressao.chaves[i].aceitar(this);
39855
+ const valor = await expressao.valores[i].aceitar(this);
39856
+ // Ignorar pares vazios (separadores)
39857
+ if (chave && chave.trim() !== '' && valor && valor.trim() !== '') {
39858
+ // Em Elixir, usa-se atoms (:chave) quando possível ou string => valor
39859
+ // Por simplicidade, vamos usar sempre a sintaxe de string
39860
+ pares.push(`${chave} => ${valor}`);
39861
+ }
39862
+ }
39863
+ return Promise.resolve(`%{${pares.join(', ')}}`);
39864
+ }
39865
+ visitarExpressaoExpressaoRegular(expressao) {
39866
+ throw new Error('Método não implementado: visitarExpressaoExpressaoRegular');
39867
+ }
39868
+ visitarExpressaoFalhar(expressao) {
39869
+ throw new Error('Método não implementado: visitarExpressaoFalhar');
39870
+ }
39871
+ visitarExpressaoFimPara(declaracao) {
39872
+ throw new Error('Método não implementado: visitarExpressaoFimPara');
39873
+ }
39874
+ visitarExpressaoFormatacaoEscrita(declaracao) {
39875
+ throw new Error('Método não implementado: visitarExpressaoFormatacaoEscrita');
39876
+ }
39877
+ async visitarExpressaoIsto(expressao) {
39878
+ // "isto" em Elixir é substituído pelo nome do parâmetro do struct
39879
+ if (this.nomeParametroStruct) {
39880
+ return Promise.resolve(this.nomeParametroStruct);
39881
+ }
39882
+ // Se não estamos em contexto de método, usar nome genérico
39883
+ return Promise.resolve('self');
39884
+ }
39885
+ async visitarExpressaoLeia(expressao) {
39886
+ let resultado = 'IO.gets(';
39887
+ if (expressao.argumentos && expressao.argumentos.length > 0) {
39888
+ resultado += await expressao.argumentos[0].aceitar(this);
39889
+ }
39890
+ else {
39891
+ resultado += '""';
39892
+ }
39893
+ resultado += ') |> String.trim()';
39894
+ return Promise.resolve(resultado);
39895
+ }
39896
+ async visitarExpressaoLiteral(expressao) {
39897
+ const valor = expressao.valor;
39898
+ // Null/nulo
39899
+ if (valor === null || valor === undefined) {
39900
+ return Promise.resolve('nil');
39901
+ }
39902
+ // Boolean
39903
+ if (typeof valor === 'boolean') {
39904
+ return Promise.resolve(valor ? 'true' : 'false');
39905
+ }
39906
+ // Number
39907
+ if (typeof valor === 'number') {
39908
+ return Promise.resolve(String(valor));
39909
+ }
39910
+ // String
39911
+ if (typeof valor === 'string') {
39912
+ // Elixir suporta interpolação com #{}
39913
+ return Promise.resolve(`"${valor}"`);
39914
+ }
39915
+ return Promise.resolve(String(valor));
39916
+ }
39917
+ async visitarExpressaoLogica(expressao) {
39918
+ const esquerda = await expressao.esquerda.aceitar(this);
39919
+ const direita = await expressao.direita.aceitar(this);
39920
+ const operador = this.traduzirOperador(expressao.operador);
39921
+ return Promise.resolve(`${esquerda} ${operador} ${direita}`);
39922
+ }
39923
+ visitarExpressaoReferenciaFuncao(expressao) {
39924
+ throw new Error('Método não implementado: visitarExpressaoReferenciaFuncao');
39925
+ }
39926
+ async visitarExpressaoRetornar(expressao) {
39927
+ // Em Elixir, o retorno é implícito (última expressão)
39928
+ // Mas podemos usar explicitamente para clareza ou retorno antecipado
39929
+ let resultado = this.adicionarIndentacao();
39930
+ if (expressao.valor) {
39931
+ // Apenas retornar o valor, pois em Elixir a última expressão é o retorno
39932
+ resultado += await expressao.valor.aceitar(this);
39933
+ }
39934
+ else {
39935
+ resultado += 'nil';
39936
+ }
39937
+ return Promise.resolve(resultado);
39938
+ }
39939
+ visitarExpressaoSeparador(expressao) {
39940
+ return Promise.resolve('');
39941
+ }
39942
+ visitarExpressaoSuper(expressao) {
39943
+ throw new Error('Método não implementado: visitarExpressaoSuper');
39944
+ }
39945
+ visitarExpressaoSustar(declaracao) {
39946
+ throw new Error('Método não implementado: visitarExpressaoSustar');
39947
+ }
39948
+ async visitarExpressaoTupla(expressao) {
39949
+ // Tupla pode ter apenas um valor (expressao.valor) ou ser TuplaN com elementos
39950
+ // Por enquanto, apenas retornar o valor se houver
39951
+ if (expressao.valor !== undefined) {
39952
+ return Promise.resolve(`{${expressao.valor}}`);
39953
+ }
39954
+ // Se não houver valor, tupla vazia
39955
+ return Promise.resolve('{}');
39956
+ }
39957
+ async visitarExpressaoTuplaN(expressao) {
39958
+ const valores = [];
39959
+ for (const elemento of expressao.elementos) {
39960
+ const valorTraduzido = await elemento.aceitar(this);
39961
+ valores.push(valorTraduzido);
39962
+ }
39963
+ return Promise.resolve(`{${valores.join(', ')}}`);
39964
+ }
39965
+ visitarExpressaoTipoDe(expressao) {
39966
+ throw new Error('Método não implementado: visitarExpressaoTipoDe');
39967
+ }
39968
+ async visitarExpressaoUnaria(expressao) {
39969
+ const operando = await expressao.operando.aceitar(this);
39970
+ const operador = this.traduzirOperador(expressao.operador);
39971
+ // Elixir não tem ++ ou --, então operações de incremento/decremento precisam ser convertidas
39972
+ if (expressao.operador.tipo === delegua_1.default.INCREMENTAR) {
39973
+ return Promise.resolve(`${operando} + 1`);
39974
+ }
39975
+ if (expressao.operador.tipo === delegua_1.default.DECREMENTAR) {
39976
+ return Promise.resolve(`${operando} - 1`);
39977
+ }
39978
+ // Operações unárias normais (-, !, ~)
39979
+ if (expressao.incidenciaOperador === 'ANTES') {
39980
+ return Promise.resolve(`${operador} ${operando}`);
39981
+ }
39982
+ else {
39983
+ return Promise.resolve(`${operando} ${operador}`);
39984
+ }
39985
+ }
39986
+ async visitarExpressaoVetor(expressao) {
39987
+ if (expressao.valores.length === 0) {
39988
+ return Promise.resolve('[]');
39989
+ }
39990
+ const valores = [];
39991
+ for (const valor of expressao.valores) {
39992
+ const valorTraduzido = await valor.aceitar(this);
39993
+ // Ignorar separadores vazios
39994
+ if (valorTraduzido && valorTraduzido.trim() !== '') {
39995
+ valores.push(valorTraduzido);
39996
+ }
39997
+ }
39998
+ return Promise.resolve(`[${valores.join(', ')}]`);
39999
+ }
40000
+ }
40001
+ exports.TradutorElixir = TradutorElixir;
40002
+
40003
+ },{"../tipos-de-simbolos/delegua":212}],234:[function(require,module,exports){
40004
+ "use strict";
40005
+ var __importDefault = (this && this.__importDefault) || function (mod) {
40006
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40007
+ };
40008
+ Object.defineProperty(exports, "__esModule", { value: true });
39088
40009
  exports.TradutorJavaScript = void 0;
39089
40010
  const construtos_1 = require("../construtos");
39090
40011
  const declaracoes_1 = require("../declaracoes");
@@ -39839,15 +40760,15 @@ class TradutorJavaScript {
39839
40760
  }
39840
40761
  exports.TradutorJavaScript = TradutorJavaScript;
39841
40762
 
39842
- },{"../construtos":62,"../declaracoes":109,"../tipos-de-simbolos/delegua":212}],234:[function(require,module,exports){
40763
+ },{"../construtos":62,"../declaracoes":109,"../tipos-de-simbolos/delegua":212}],235:[function(require,module,exports){
39843
40764
  "use strict";
39844
40765
  var __importDefault = (this && this.__importDefault) || function (mod) {
39845
40766
  return (mod && mod.__esModule) ? mod : { "default": mod };
39846
40767
  };
39847
40768
  Object.defineProperty(exports, "__esModule", { value: true });
39848
40769
  exports.TradutorMermaidJs = void 0;
39849
- const delegua_1 = __importDefault(require("../tipos-de-simbolos/delegua"));
39850
40770
  const mermaid_1 = require("./mermaid");
40771
+ const delegua_1 = __importDefault(require("../tipos-de-simbolos/delegua"));
39851
40772
  /**
39852
40773
  * [MermaidJs](https://mermaid.js.org/) é uma especificação que nos permite
39853
40774
  * criar fluxogramas através de uma notação por texto.
@@ -39861,249 +40782,28 @@ const mermaid_1 = require("./mermaid");
39861
40782
  * @see VerticeFluxograma
39862
40783
  */
39863
40784
  class TradutorMermaidJs {
39864
- constructor() {
39865
- this.dicionarioConstrutos = {
39866
- AcessoIndiceVariavel: this.traduzirConstrutoAcessoIndiceVariavel.bind(this),
39867
- AcessoMetodo: this.traduzirConstrutoAcessoMetodo.bind(this),
39868
- AcessoMetodoOuPropriedade: this.traduzirConstrutoAcessoMetodoOuPropriedade.bind(this),
39869
- AcessoPropriedade: this.traduzirConstrutoAcessoPropriedade.bind(this),
39870
- Agrupamento: this.traduzirConstrutoAgrupamento.bind(this),
39871
- Atribuir: this.traduzirConstrutoAtribuir.bind(this),
39872
- Binario: this.traduzirConstrutoBinario.bind(this),
39873
- Chamada: this.traduzirConstrutoChamada.bind(this),
39874
- ComentarioComoConstruto: () => '',
39875
- DefinirValor: this.traduzirConstrutoDefinirValor.bind(this),
39876
- Dicionario: this.traduzirConstrutoDicionario.bind(this),
39877
- // FuncaoConstruto: this.traduzirFuncaoConstruto.bind(this),
39878
- FuncaoConstruto: () => { throw new Error("Fluxogramas de funções ainda não é suportado."); },
39879
- Isto: () => 'this',
39880
- Leia: this.traduzirConstrutoLeia.bind(this),
39881
- Literal: this.traduzirConstrutoLiteral.bind(this),
39882
- Separador: this.traduzirConstrutoSeparador.bind(this),
39883
- Unario: this.traduzirConstrutoUnario.bind(this),
39884
- Variavel: this.traduzirConstrutoVariavel.bind(this),
39885
- Vetor: this.traduzirConstrutoVetor.bind(this),
39886
- };
39887
- this.dicionarioDeclaracoes = {
39888
- Bloco: this.traduzirDeclaracaoBloco.bind(this),
39889
- Classe: this.traduzirDeclaracaoClasse.bind(this),
39890
- Comentario: () => '',
39891
- Const: this.traduzirDeclaracaoConst.bind(this),
39892
- Enquanto: this.traduzirDeclaracaoEnquanto.bind(this),
39893
- Escolha: this.traduzirDeclaracaoEscolha.bind(this),
39894
- Expressao: this.traduzirDeclaracaoExpressao.bind(this),
39895
- Escreva: this.traduzirDeclaracaoEscreva.bind(this),
39896
- Fazer: this.traduzirDeclaracaoFazerEnquanto.bind(this),
39897
- FuncaoDeclaracao: this.traduzirDeclaracaoFuncao.bind(this),
39898
- Para: this.traduzirDeclaracaoPara.bind(this),
39899
- ParaCada: this.traduzirDeclaracaoParaCada.bind(this),
39900
- Retorna: this.traduzirDeclaracaoRetorna.bind(this),
39901
- Se: this.traduzirDeclaracaoSe.bind(this),
39902
- Var: this.traduzirDeclaracaoVar.bind(this),
39903
- };
39904
- }
39905
- traduzirConstrutoAcessoIndiceVariavel(acessoIndiceVariavel) {
39906
- const textoIndice = this.dicionarioConstrutos[acessoIndiceVariavel.indice.constructor.name](acessoIndiceVariavel.indice);
39907
- return `no índice ${textoIndice}`;
39908
- }
39909
- traduzirConstrutoAcessoMetodo(acessoMetodo) {
39910
- return `método ${acessoMetodo.nomeMetodo}`;
39911
- }
39912
- traduzirConstrutoAcessoMetodoOuPropriedade(acessoMetodoOuPropriedade) {
39913
- return `método ou propriedade ${acessoMetodoOuPropriedade.simbolo.lexema}`;
39914
- }
39915
- traduzirConstrutoAcessoPropriedade(acessoPropriedade) {
39916
- return `propriedade ${acessoPropriedade.nomePropriedade}`;
39917
- }
39918
- traduzirConstrutoAgrupamento(agrupamento) {
39919
- return this.dicionarioConstrutos[agrupamento.expressao.constructor.name](agrupamento.expressao);
39920
- }
39921
- traduzirConstrutoAtribuir(atribuir) {
39922
- const textoAlvo = this.dicionarioConstrutos[atribuir.alvo.constructor.name](atribuir.alvo);
39923
- const textoValor = this.dicionarioConstrutos[atribuir.valor.constructor.name](atribuir.valor);
39924
- return `${textoAlvo} recebe: ${textoValor}`;
39925
- }
39926
- traduzirConstrutoBinario(binario) {
39927
- const operandoEsquerdo = this.dicionarioConstrutos[binario.esquerda.constructor.name](binario.esquerda);
39928
- const operandoDireito = this.dicionarioConstrutos[binario.direita.constructor.name](binario.direita);
39929
- switch (binario.operador.tipo) {
39930
- case delegua_1.default.ADICAO:
39931
- return `somar ${operandoEsquerdo} e ${operandoDireito}`;
39932
- case delegua_1.default.MENOR:
39933
- return `${operandoEsquerdo} for menor que ${operandoDireito}`;
39934
- }
39935
- return '';
39936
- }
39937
- traduzirConstrutoChamada(chamada) {
39938
- const textoEntidadeChamada = this.dicionarioConstrutos[chamada.entidadeChamada.constructor.name](chamada.entidadeChamada);
39939
- let texto = `chamada a ${textoEntidadeChamada}`;
39940
- if (chamada.argumentos.length > 0) {
39941
- texto += `, com argumentos: `;
39942
- for (const argumento of chamada.argumentos) {
39943
- const textoArgumento = this.dicionarioConstrutos[argumento.constructor.name](argumento);
39944
- texto += `${textoArgumento}, `;
39945
- }
39946
- texto = texto.slice(0, -2);
39947
- }
39948
- else {
39949
- texto += `, sem argumentos`;
39950
- }
39951
- return texto;
39952
- }
39953
- /**
39954
- * Traduz uma declaração de Expressao que contém uma chamada de função,
39955
- * criando os vértices necessários para conectar ao subgrafo da função.
39956
- */
39957
- traduzirChamadaFuncao(declaracaoExpressao, chamada) {
39958
- // Verifica se é uma chamada a uma função conhecida
39959
- if (chamada.entidadeChamada.constructor.name === 'Variavel') {
39960
- const variavel = chamada.entidadeChamada;
39961
- const nomeFuncao = variavel.simbolo.lexema;
39962
- if (this.declaracoesFuncoes[nomeFuncao]) {
39963
- const subgrafo = this.declaracoesFuncoes[nomeFuncao];
39964
- let vertices = [];
39965
- // Conecta do fluxo atual para a entrada da função
39966
- const textoPreChamada = `Linha${declaracaoExpressao.linha}(${this.traduzirConstrutoChamada(chamada)})`;
39967
- const arestaPreChamada = new mermaid_1.ArestaFluxograma(declaracaoExpressao, textoPreChamada);
39968
- vertices = vertices.concat(this.logicaComumConexaoArestas(arestaPreChamada));
39969
- // Conecta a pré-chamada ao início da função
39970
- vertices.push(new mermaid_1.VerticeFluxograma(arestaPreChamada, subgrafo.arestaInicial));
39971
- // A saída da função volta para o fluxo principal
39972
- this.anteriores = [subgrafo.arestaFinal];
39973
- return vertices;
39974
- }
39975
- }
39976
- // Se não for uma função conhecida, trata como expressão normal
39977
- return [];
39978
- }
39979
- traduzirConstrutoDefinirValor(definirValor) {
39980
- const textoObjeto = this.dicionarioConstrutos[definirValor.objeto.constructor.name](definirValor.objeto);
39981
- const textoValor = this.dicionarioConstrutos[definirValor.valor.constructor.name](definirValor.valor);
39982
- return `${definirValor.nome.lexema} em ${textoObjeto} recebe ${textoValor}`;
39983
- }
39984
- traduzirConstrutoDicionario(dicionario) {
39985
- let texto = `dicionário`;
39986
- if (dicionario.chaves.length > 0) {
39987
- texto += `, com `;
39988
- for (const [chave, indice] of Object.entries(dicionario.chaves)) {
39989
- texto += `chave ${chave} definida com o valor ${dicionario.valores[0]}`;
39990
- }
39991
- }
39992
- else {
39993
- texto += ' vazio';
39994
- }
39995
- return texto;
39996
- }
39997
- traduzirFuncaoConstruto(funcaoConstruto) {
39998
- let vertices = [];
39999
- let arestas = [];
40000
- if (funcaoConstruto.corpo && funcaoConstruto.corpo.length > 0) {
40001
- for (const declaracaoCorpo of funcaoConstruto.corpo) {
40002
- // Usa o mesmo caminho de outras declarações,
40003
- // então todas as arestas passam por logicaComumConexaoArestas.
40004
- const verticesCorpo = this.dicionarioDeclaracoes[declaracaoCorpo.constructor.name](declaracaoCorpo);
40005
- vertices = vertices.concat(verticesCorpo);
40006
- arestas = arestas.concat(this.anteriores);
40007
- this.anteriores = [];
40008
- }
40009
- }
40010
- let primeiraAresta = undefined;
40011
- if (this.anteriores.length > 0) {
40012
- primeiraAresta = this.anteriores[0];
40013
- const verticesRestantes = this.logicaComumConexaoArestas(primeiraAresta);
40014
- console.log(verticesRestantes);
40015
- }
40016
- return vertices;
40017
- }
40018
- traduzirConstrutoLeia(leia) {
40019
- let texto = 'leia da entrada';
40020
- if (leia.argumentos && leia.argumentos.length > 0) {
40021
- const textoArgumento = this.dicionarioConstrutos[leia.argumentos[0].constructor.name](leia.argumentos[0]);
40022
- texto += `, imprimindo antes: \\'${textoArgumento}\\'`;
40023
- }
40024
- return texto;
40025
- }
40026
- traduzirConstrutoLiteral(literal) {
40027
- switch (literal.tipo) {
40028
- case 'lógico':
40029
- return literal.valor ? 'verdadeiro' : 'falso';
40030
- case 'texto':
40031
- return `\\'${literal.valor}\\'`;
40032
- default:
40033
- return String(literal.valor);
40034
- }
40035
- }
40036
- traduzirConstrutoSeparador(separador) {
40037
- return `${separador.conteudo} `;
40038
- }
40039
- traduzirConstrutoUnario(unario) {
40040
- const textoOperando = this.dicionarioConstrutos[unario.operando.constructor.name](unario.operando);
40041
- let textoOperador = '';
40042
- switch (unario.operador.tipo) {
40043
- case delegua_1.default.INCREMENTAR:
40044
- textoOperador = `incrementar ${textoOperando} em 1`;
40045
- break;
40046
- case delegua_1.default.DECREMENTAR:
40047
- textoOperador = `decrementar ${textoOperando} de 1`;
40048
- break;
40049
- }
40050
- switch (unario.incidenciaOperador) {
40051
- case 'ANTES':
40052
- return `${textoOperador}, devolver valor de ${textoOperando}`;
40053
- case 'DEPOIS':
40054
- return `devolver valor de ${textoOperando}, ${textoOperador}`;
40055
- }
40056
- }
40057
- traduzirConstrutoVariavel(variavel) {
40058
- return variavel.simbolo.lexema;
40059
- }
40060
- traduzirConstrutoVetor(vetor) {
40061
- let texto = `vetor: `;
40062
- for (const elemento of vetor.valores) {
40063
- texto += this.dicionarioConstrutos[elemento.constructor.name](elemento);
40064
- }
40065
- return texto;
40066
- }
40067
- logicaComumConexaoArestas(aresta) {
40068
- const vertices = [];
40069
- while (this.anteriores.length > 0) {
40070
- const anterior = this.anteriores.shift();
40071
- let textoVertice = undefined;
40072
- if (this.ultimaDicaVertice) {
40073
- textoVertice = String(this.ultimaDicaVertice);
40074
- this.ultimaDicaVertice = undefined;
40075
- }
40076
- vertices.push(new mermaid_1.VerticeFluxograma(anterior, aresta, textoVertice));
40077
- }
40078
- return vertices;
40079
- }
40080
- traduzirDeclaracaoBloco(declaracaoBloco) {
40081
- let vertices = [];
40082
- for (const declaracao of declaracaoBloco.declaracoes) {
40083
- const verticesDeclaracao = this.dicionarioDeclaracoes[declaracao.constructor.name](declaracao);
40084
- vertices = vertices.concat(verticesDeclaracao);
40085
- }
40086
- return vertices;
40785
+ visitarDeclaracaoCabecalhoPrograma(declaracao) {
40786
+ throw new Error('Método não implementado.');
40087
40787
  }
40088
- traduzirDeclaracaoClasse(declaracaoClasse) {
40788
+ async visitarDeclaracaoClasse(declaracao) {
40089
40789
  var _a, _b;
40090
- const nomeClasse = declaracaoClasse.simbolo.lexema;
40091
- const superClasse = declaracaoClasse.superClasse
40092
- ? (((_a = declaracaoClasse.superClasse.simbolo) === null || _a === void 0 ? void 0 : _a.lexema) || ((_b = declaracaoClasse.superClasse.nome) === null || _b === void 0 ? void 0 : _b.lexema))
40790
+ const nomeClasse = declaracao.simbolo.lexema;
40791
+ const superClasse = declaracao.superClasse
40792
+ ? (((_a = declaracao.superClasse.simbolo) === null || _a === void 0 ? void 0 : _a.lexema) || ((_b = declaracao.superClasse.nome) === null || _b === void 0 ? void 0 : _b.lexema))
40093
40793
  : undefined;
40094
- const linha = declaracaoClasse.linha;
40794
+ const linha = declaracao.linha;
40095
40795
  // Cria arestas de entrada e saída para a classe
40096
40796
  const textoInicio = `Classe${nomeClasse}Inicio[Início: Classe ${nomeClasse}]`;
40097
- const arestaInicial = new mermaid_1.ArestaFluxograma(declaracaoClasse, textoInicio);
40797
+ const arestaInicial = new mermaid_1.ArestaFluxograma(declaracao, textoInicio);
40098
40798
  const textoFim = `Classe${nomeClasse}Fim[Fim: Classe ${nomeClasse}]`;
40099
- const arestaFinal = new mermaid_1.ArestaFluxograma(declaracaoClasse, textoFim);
40799
+ const arestaFinal = new mermaid_1.ArestaFluxograma(declaracao, textoFim);
40100
40800
  // Cria o subgrafo da classe
40101
40801
  const subgrafo = new mermaid_1.SubgrafoClasse(nomeClasse, linha, arestaInicial, arestaFinal, superClasse);
40102
40802
  // Salva o estado anterior
40103
40803
  const anterioresAntes = [...this.anteriores];
40104
40804
  // Processa métodos
40105
- if (declaracaoClasse.metodos && declaracaoClasse.metodos.length > 0) {
40106
- for (const metodoDeclaracao of declaracaoClasse.metodos) {
40805
+ if (declaracao.metodos && declaracao.metodos.length > 0) {
40806
+ for (const metodoDeclaracao of declaracao.metodos) {
40107
40807
  const nomeMetodo = metodoDeclaracao.simbolo.lexema;
40108
40808
  const linhaMetodo = metodoDeclaracao.linha;
40109
40809
  const ehConstrutor = nomeMetodo === 'construtor' || nomeMetodo === 'iniciar';
@@ -40118,7 +40818,7 @@ class TradutorMermaidJs {
40118
40818
  this.anteriores = [arestaInicialMetodo];
40119
40819
  if (metodoDeclaracao.funcao.corpo && metodoDeclaracao.funcao.corpo.length > 0) {
40120
40820
  for (const declaracaoCorpo of metodoDeclaracao.funcao.corpo) {
40121
- const verticesCorpo = this.dicionarioDeclaracoes[declaracaoCorpo.constructor.name](declaracaoCorpo);
40821
+ const verticesCorpo = await declaracaoCorpo.aceitar(this);
40122
40822
  subgrafoMetodo.vertices = subgrafoMetodo.vertices.concat(verticesCorpo);
40123
40823
  }
40124
40824
  }
@@ -40141,73 +40841,101 @@ class TradutorMermaidJs {
40141
40841
  this.anteriores = anterioresAntes;
40142
40842
  // Armazena o subgrafo da classe
40143
40843
  this.declaracoesClasses[nomeClasse] = subgrafo;
40144
- return [];
40844
+ return Promise.resolve([]);
40145
40845
  }
40146
- traduzirDeclaracaoConst(declaracaoConst) {
40147
- let texto = `Linha${declaracaoConst.linha}(variável: ${declaracaoConst.simbolo.lexema}`;
40148
- texto += this.logicaComumTraducaoVarEConst(declaracaoConst, texto);
40149
- const aresta = new mermaid_1.ArestaFluxograma(declaracaoConst, texto);
40846
+ async visitarDeclaracaoComentario(declaracao) {
40847
+ return Promise.resolve('');
40848
+ }
40849
+ async visitarDeclaracaoConst(declaracao) {
40850
+ let texto = `Linha${declaracao.linha}(variável: ${declaracao.simbolo.lexema}`;
40851
+ texto += await this.logicaComumTraducaoVarEConst(declaracao, texto);
40852
+ const aresta = new mermaid_1.ArestaFluxograma(declaracao, texto);
40150
40853
  const vertices = this.logicaComumConexaoArestas(aresta);
40151
40854
  this.anteriores.push(aresta);
40152
- return vertices;
40855
+ return Promise.resolve(vertices);
40153
40856
  }
40154
- traduzirDeclaracaoEnquanto(declaracaoEnquanto) {
40155
- let texto = `Linha${declaracaoEnquanto.linha}(enquanto `;
40156
- const condicao = this.dicionarioConstrutos[declaracaoEnquanto.condicao.constructor.name](declaracaoEnquanto.condicao);
40857
+ visitarDeclaracaoConstMultiplo(declaracao) {
40858
+ throw new Error('Método não implementado.');
40859
+ }
40860
+ async visitarDeclaracaoDeExpressao(declaracao) {
40861
+ // Verifica se é uma chamada de função
40862
+ if (declaracao.expressao.constructor.name === 'Chamada') {
40863
+ const chamada = declaracao.expressao;
40864
+ const verticesChamada = await this.traduzirChamadaFuncao(declaracao, chamada);
40865
+ if (verticesChamada.length > 0) {
40866
+ return Promise.resolve(verticesChamada);
40867
+ }
40868
+ }
40869
+ // Se não for uma chamada de função ou não for uma função conhecida,
40870
+ // trata como expressão normal
40871
+ let texto = `Linha${declaracao.linha}(`;
40872
+ const textoConstruto = await declaracao.expressao.aceitar(this);
40873
+ texto += textoConstruto + ')';
40874
+ const aresta = new mermaid_1.ArestaFluxograma(declaracao, texto);
40875
+ const vertices = this.logicaComumConexaoArestas(aresta);
40876
+ this.anteriores.push(aresta);
40877
+ return Promise.resolve(vertices);
40878
+ }
40879
+ async visitarDeclaracaoDefinicaoFuncao(declaracao) {
40880
+ const nomeFuncao = declaracao.simbolo.lexema;
40881
+ const linha = declaracao.linha;
40882
+ // Cria arestas de entrada e saída para a função
40883
+ const textoInicio = `Func${nomeFuncao}Inicio[Início: ${nomeFuncao}()]`;
40884
+ const arestaInicial = new mermaid_1.ArestaFluxograma(declaracao, textoInicio);
40885
+ const textoFim = `Func${nomeFuncao}Fim[Fim: ${nomeFuncao}()]`;
40886
+ const arestaFinal = new mermaid_1.ArestaFluxograma(declaracao, textoFim);
40887
+ // Cria o subgrafo da função
40888
+ const subgrafo = new mermaid_1.SubgrafoFuncao(nomeFuncao, linha, arestaInicial, arestaFinal);
40889
+ // Salva o estado atual de anteriores
40890
+ const anterioresAntes = [...this.anteriores];
40891
+ this.anteriores = [arestaInicial];
40892
+ // Processa o corpo da função
40893
+ if (declaracao.funcao.corpo && declaracao.funcao.corpo.length > 0) {
40894
+ for (const declaracaoCorpo of declaracao.funcao.corpo) {
40895
+ const verticesCorpo = await declaracaoCorpo.aceitar(this);
40896
+ subgrafo.vertices = subgrafo.vertices.concat(verticesCorpo);
40897
+ }
40898
+ }
40899
+ // Conecta o fim do corpo à aresta final
40900
+ if (this.anteriores.length > 0) {
40901
+ for (const anterior of this.anteriores) {
40902
+ subgrafo.vertices.push(new mermaid_1.VerticeFluxograma(anterior, arestaFinal));
40903
+ }
40904
+ }
40905
+ // Restaura o estado anterior
40906
+ this.anteriores = anterioresAntes;
40907
+ // Armazena o subgrafo
40908
+ this.declaracoesFuncoes[nomeFuncao] = subgrafo;
40909
+ // Não adiciona ao fluxo principal
40910
+ return Promise.resolve([]);
40911
+ }
40912
+ async visitarDeclaracaoEnquanto(declaracao) {
40913
+ let texto = `Linha${declaracao.linha}(enquanto `;
40914
+ const condicao = await declaracao.condicao.aceitar(this);
40157
40915
  texto += condicao + ')';
40158
- const aresta = new mermaid_1.ArestaFluxograma(declaracaoEnquanto, texto);
40916
+ const aresta = new mermaid_1.ArestaFluxograma(declaracao, texto);
40159
40917
  let vertices = this.logicaComumConexaoArestas(aresta);
40160
40918
  this.anteriores.push(aresta);
40161
40919
  // Corpo, normalmente um `Bloco`.
40162
- const verticesCorpo = this.dicionarioDeclaracoes[declaracaoEnquanto.corpo.constructor.name](declaracaoEnquanto.corpo);
40920
+ const verticesCorpo = await declaracao.corpo.aceitar(this);
40163
40921
  vertices = vertices.concat(verticesCorpo);
40164
40922
  const ultimaArestaCorpo = verticesCorpo[verticesCorpo.length - 1].destino;
40165
40923
  const verticeLaco = new mermaid_1.VerticeFluxograma(ultimaArestaCorpo, aresta);
40166
40924
  vertices.push(verticeLaco);
40167
- return vertices;
40925
+ return Promise.resolve(vertices);
40168
40926
  }
40169
- logicaComumCaminhoEscolha(declaracaoEscolha, caminhoEscolha, linha, textoIdentificadorOuLiteral, caminhoPadrao) {
40170
- let textoCaso = '';
40171
- if (!caminhoPadrao) {
40172
- textoCaso = `caso ${textoIdentificadorOuLiteral} seja igual a `;
40173
- for (const condicao of caminhoEscolha.condicoes) {
40174
- const textoCondicao = this.dicionarioConstrutos[condicao.constructor.name](condicao);
40175
- textoCaso += `${textoCondicao} ou `;
40176
- }
40177
- textoCaso = textoCaso.slice(0, -4);
40178
- textoCaso += ':';
40179
- }
40180
- else {
40181
- textoCaso = `caso ${textoIdentificadorOuLiteral} tenha qualquer outro valor:`;
40182
- }
40183
- let textoCaminho = `Linha${linha}(${textoCaso})`;
40184
- const arestaCondicaoCaminho = new mermaid_1.ArestaFluxograma(declaracaoEscolha, textoCaminho);
40185
- this.anteriores.push(arestaCondicaoCaminho);
40186
- let verticesResolvidos = [];
40187
- for (const declaracaoCaminho of caminhoEscolha.declaracoes) {
40188
- const verticesDeclaracoes = this.dicionarioDeclaracoes[declaracaoCaminho.constructor.name](declaracaoCaminho);
40189
- verticesResolvidos = verticesResolvidos.concat(verticesDeclaracoes);
40190
- this.anteriores.pop();
40191
- this.anteriores.push(verticesDeclaracoes[verticesDeclaracoes.length - 1].destino);
40192
- }
40193
- this.anteriores.pop();
40194
- return {
40195
- caminho: arestaCondicaoCaminho,
40196
- declaracoesCaminho: verticesResolvidos,
40197
- };
40198
- }
40199
- traduzirDeclaracaoEscolha(declaracaoEscolha) {
40200
- let texto = `Linha${declaracaoEscolha.linha}(escolha um caminho pelo valor de `;
40201
- const textoIdentificadorOuLiteral = this.dicionarioConstrutos[declaracaoEscolha.identificadorOuLiteral.constructor.name](declaracaoEscolha.identificadorOuLiteral);
40927
+ async visitarDeclaracaoEscolha(declaracao) {
40928
+ let texto = `Linha${declaracao.linha}(escolha um caminho pelo valor de `;
40929
+ const textoIdentificadorOuLiteral = await declaracao.identificadorOuLiteral.aceitar(this);
40202
40930
  texto += textoIdentificadorOuLiteral + ')';
40203
- const aresta = new mermaid_1.ArestaFluxograma(declaracaoEscolha, texto);
40931
+ const aresta = new mermaid_1.ArestaFluxograma(declaracao, texto);
40204
40932
  let vertices = this.logicaComumConexaoArestas(aresta);
40205
40933
  const arestasCaminho = [];
40206
- for (const caminho of declaracaoEscolha.caminhos) {
40207
- arestasCaminho.push(this.logicaComumCaminhoEscolha(declaracaoEscolha, caminho, caminho.condicoes[0].linha, textoIdentificadorOuLiteral, false));
40934
+ for (const caminho of declaracao.caminhos) {
40935
+ arestasCaminho.push(await this.logicaComumCaminhoEscolha(declaracao, caminho, caminho.condicoes[0].linha, textoIdentificadorOuLiteral, false));
40208
40936
  }
40209
- if (declaracaoEscolha.caminhoPadrao) {
40210
- arestasCaminho.push(this.logicaComumCaminhoEscolha(declaracaoEscolha, declaracaoEscolha.caminhoPadrao, declaracaoEscolha.caminhoPadrao.declaracoes[0].linha - 1, textoIdentificadorOuLiteral, true));
40937
+ if (declaracao.caminhoPadrao) {
40938
+ arestasCaminho.push(await this.logicaComumCaminhoEscolha(declaracao, declaracao.caminhoPadrao, declaracao.caminhoPadrao.declaracoes[0].linha - 1, textoIdentificadorOuLiteral, true));
40211
40939
  }
40212
40940
  for (const conjunto of Object.values(arestasCaminho)) {
40213
40941
  const verticeEscolhaECaminho = new mermaid_1.VerticeFluxograma(aresta, conjunto.caminho);
@@ -40215,122 +40943,91 @@ class TradutorMermaidJs {
40215
40943
  vertices = vertices.concat(conjunto.declaracoesCaminho);
40216
40944
  this.anteriores.push(conjunto.declaracoesCaminho[conjunto.declaracoesCaminho.length - 1].destino);
40217
40945
  }
40218
- return vertices;
40946
+ return Promise.resolve(vertices);
40219
40947
  }
40220
- traduzirDeclaracaoEscreva(declaracaoEscreva) {
40221
- let texto = `Linha${declaracaoEscreva.linha}(escreva: `;
40222
- for (const argumento of declaracaoEscreva.argumentos) {
40223
- const valor = this.dicionarioConstrutos[argumento.constructor.name](argumento);
40948
+ async visitarDeclaracaoEscreva(declaracao) {
40949
+ let texto = `Linha${declaracao.linha}(escreva: `;
40950
+ for (const argumento of declaracao.argumentos) {
40951
+ const valor = await argumento.aceitar(this);
40224
40952
  texto += valor + ', ';
40225
40953
  }
40226
40954
  texto = texto.slice(0, -2);
40227
40955
  texto += ')';
40228
- const aresta = new mermaid_1.ArestaFluxograma(declaracaoEscreva, texto);
40956
+ const aresta = new mermaid_1.ArestaFluxograma(declaracao, texto);
40229
40957
  const vertices = this.logicaComumConexaoArestas(aresta);
40230
40958
  this.anteriores.push(aresta);
40231
- return vertices;
40959
+ return Promise.resolve(vertices);
40232
40960
  }
40233
- traduzirDeclaracaoExpressao(declaracaoExpressao) {
40234
- // Verifica se é uma chamada de função
40235
- if (declaracaoExpressao.expressao.constructor.name === 'Chamada') {
40236
- const chamada = declaracaoExpressao.expressao;
40237
- const verticesChamada = this.traduzirChamadaFuncao(declaracaoExpressao, chamada);
40238
- if (verticesChamada.length > 0) {
40239
- return verticesChamada;
40240
- }
40241
- }
40242
- // Se não for uma chamada de função ou não for uma função conhecida,
40243
- // trata como expressão normal
40244
- let texto = `Linha${declaracaoExpressao.linha}(`;
40245
- const textoConstruto = this.dicionarioConstrutos[declaracaoExpressao.expressao.constructor.name](declaracaoExpressao.expressao);
40246
- texto += textoConstruto + ')';
40247
- const aresta = new mermaid_1.ArestaFluxograma(declaracaoExpressao, texto);
40248
- const vertices = this.logicaComumConexaoArestas(aresta);
40249
- this.anteriores.push(aresta);
40250
- return vertices;
40961
+ visitarDeclaracaoEscrevaMesmaLinha(declaracao) {
40962
+ throw new Error('Método não implementado.');
40251
40963
  }
40252
- traduzirDeclaracaoFazerEnquanto(declaracaoFazerEnquanto) {
40253
- const texto = `Linha${declaracaoFazerEnquanto.linha}(fazer)`;
40254
- const aresta = new mermaid_1.ArestaFluxograma(declaracaoFazerEnquanto, texto);
40964
+ async visitarDeclaracaoFazer(declaracao) {
40965
+ const texto = `Linha${declaracao.linha}(fazer)`;
40966
+ const aresta = new mermaid_1.ArestaFluxograma(declaracao, texto);
40255
40967
  let vertices = this.logicaComumConexaoArestas(aresta);
40256
40968
  this.anteriores.push(aresta);
40257
40969
  // Corpo, normalmente um `Bloco`.
40258
- const verticesCorpo = this.dicionarioDeclaracoes[declaracaoFazerEnquanto.caminhoFazer.constructor.name](declaracaoFazerEnquanto.caminhoFazer);
40970
+ const verticesCorpo = await declaracao.caminhoFazer.aceitar(this);
40259
40971
  vertices = vertices.concat(verticesCorpo);
40260
40972
  const ultimaArestaCorpo = verticesCorpo[verticesCorpo.length - 1].destino;
40261
- const condicao = this.dicionarioConstrutos[declaracaoFazerEnquanto.condicaoEnquanto.constructor.name](declaracaoFazerEnquanto.condicaoEnquanto);
40262
- let textoEnquanto = `Linha${declaracaoFazerEnquanto.condicaoEnquanto.linha}(enquanto ${condicao})`;
40263
- const arestaEnquanto = new mermaid_1.ArestaFluxograma(declaracaoFazerEnquanto, textoEnquanto);
40973
+ const condicao = await declaracao.condicaoEnquanto.aceitar(this);
40974
+ let textoEnquanto = `Linha${declaracao.condicaoEnquanto.linha}(enquanto ${condicao})`;
40975
+ const arestaEnquanto = new mermaid_1.ArestaFluxograma(declaracao, textoEnquanto);
40264
40976
  const verticeEnquanto = new mermaid_1.VerticeFluxograma(ultimaArestaCorpo, arestaEnquanto);
40265
40977
  vertices.push(verticeEnquanto);
40266
40978
  const verticeCondicaoComFazer = new mermaid_1.VerticeFluxograma(arestaEnquanto, aresta);
40267
40979
  vertices.push(verticeCondicaoComFazer);
40268
40980
  this.anteriores.pop();
40269
40981
  this.anteriores.push(arestaEnquanto);
40270
- return vertices;
40982
+ return Promise.resolve(vertices);
40271
40983
  }
40272
- traduzirDeclaracaoFuncao(declaracaoFuncao) {
40273
- const nomeFuncao = declaracaoFuncao.simbolo.lexema;
40274
- const linha = declaracaoFuncao.linha;
40275
- // Cria arestas de entrada e saída para a função
40276
- const textoInicio = `Func${nomeFuncao}Inicio[Início: ${nomeFuncao}()]`;
40277
- const arestaInicial = new mermaid_1.ArestaFluxograma(declaracaoFuncao, textoInicio);
40278
- const textoFim = `Func${nomeFuncao}Fim[Fim: ${nomeFuncao}()]`;
40279
- const arestaFinal = new mermaid_1.ArestaFluxograma(declaracaoFuncao, textoFim);
40280
- // Cria o subgrafo da função
40281
- const subgrafo = new mermaid_1.SubgrafoFuncao(nomeFuncao, linha, arestaInicial, arestaFinal);
40282
- // Salva o estado atual de anteriores
40283
- const anterioresAntes = [...this.anteriores];
40284
- this.anteriores = [arestaInicial];
40285
- // Processa o corpo da função
40286
- if (declaracaoFuncao.funcao.corpo && declaracaoFuncao.funcao.corpo.length > 0) {
40287
- for (const declaracaoCorpo of declaracaoFuncao.funcao.corpo) {
40288
- const verticesCorpo = this.dicionarioDeclaracoes[declaracaoCorpo.constructor.name](declaracaoCorpo);
40289
- subgrafo.vertices = subgrafo.vertices.concat(verticesCorpo);
40290
- }
40291
- }
40292
- // Conecta o fim do corpo à aresta final
40293
- if (this.anteriores.length > 0) {
40294
- for (const anterior of this.anteriores) {
40295
- subgrafo.vertices.push(new mermaid_1.VerticeFluxograma(anterior, arestaFinal));
40296
- }
40297
- }
40298
- // Restaura o estado anterior
40299
- this.anteriores = anterioresAntes;
40300
- // Armazena o subgrafo
40301
- this.declaracoesFuncoes[nomeFuncao] = subgrafo;
40302
- // Não adiciona ao fluxo principal
40303
- return [];
40984
+ visitarDeclaracaoInicioAlgoritmo(declaracao) {
40985
+ throw new Error('Método não implementado.');
40304
40986
  }
40305
- traduzirDeclaracaoPara(declaracaoPara) {
40306
- let texto = `Linha${declaracaoPara.linha}(para `;
40307
- if (declaracaoPara.inicializador) {
40308
- for (const declaracaoInicializadora of declaracaoPara.inicializador) {
40987
+ async visitarDeclaracaoParaCada(declaracao) {
40988
+ const textoVariavelIteracao = await declaracao.variavelIteracao.aceitar(this);
40989
+ let texto = `Linha${declaracao.linha}(para cada ${textoVariavelIteracao} em `;
40990
+ const textoVariavelIterada = await declaracao.vetorOuDicionario.aceitar(this);
40991
+ texto += textoVariavelIterada + ')';
40992
+ const aresta = new mermaid_1.ArestaFluxograma(declaracao, texto);
40993
+ let vertices = this.logicaComumConexaoArestas(aresta);
40994
+ this.anteriores.push(aresta);
40995
+ // Corpo, normalmente um `Bloco`.
40996
+ const verticesCorpo = await declaracao.corpo.aceitar(this);
40997
+ vertices = vertices.concat(verticesCorpo);
40998
+ const ultimaArestaCorpo = verticesCorpo[verticesCorpo.length - 1].destino;
40999
+ vertices.push(new mermaid_1.VerticeFluxograma(ultimaArestaCorpo, aresta));
41000
+ return Promise.resolve(vertices);
41001
+ }
41002
+ async visitarDeclaracaoPara(declaracao) {
41003
+ let texto = `Linha${declaracao.linha}(para `;
41004
+ if (declaracao.inicializador) {
41005
+ for (const declaracaoInicializadora of declaracao.inicializador) {
40309
41006
  // Normalmente é `Var`.
40310
41007
  const declaracaoVar = declaracaoInicializadora;
40311
- const valorInicializacao = this.dicionarioConstrutos[declaracaoVar.inicializador.constructor.name](declaracaoVar.inicializador);
41008
+ const valorInicializacao = await declaracaoVar.inicializador.aceitar(this);
40312
41009
  texto += `uma variável ${declaracaoVar.simbolo.lexema} inicializada com ${valorInicializacao}, `;
40313
41010
  }
40314
41011
  texto = texto.slice(0, -2);
40315
41012
  }
40316
41013
  texto += ')';
40317
- const aresta = new mermaid_1.ArestaFluxograma(declaracaoPara, texto);
41014
+ const aresta = new mermaid_1.ArestaFluxograma(declaracao, texto);
40318
41015
  let vertices = this.logicaComumConexaoArestas(aresta);
40319
41016
  this.anteriores.push(aresta);
40320
41017
  // Condição
40321
- const textoCondicao = this.dicionarioConstrutos[declaracaoPara.condicao.constructor.name](declaracaoPara.condicao);
40322
- const textoArestaCondicao = `Linha${declaracaoPara.linha}Condicao{se ${textoCondicao}}`;
40323
- const arestaCondicao = new mermaid_1.ArestaFluxograma(declaracaoPara, textoArestaCondicao);
41018
+ const textoCondicao = await declaracao.condicao.aceitar(this);
41019
+ const textoArestaCondicao = `Linha${declaracao.linha}Condicao{se ${textoCondicao}}`;
41020
+ const arestaCondicao = new mermaid_1.ArestaFluxograma(declaracao, textoArestaCondicao);
40324
41021
  vertices = vertices.concat(this.logicaComumConexaoArestas(arestaCondicao));
40325
41022
  this.anteriores.push(arestaCondicao);
40326
41023
  this.ultimaDicaVertice = 'Sim';
40327
41024
  // Corpo, normalmente um `Bloco`.
40328
- const verticesCorpo = this.dicionarioDeclaracoes[declaracaoPara.corpo.constructor.name](declaracaoPara.corpo);
41025
+ const verticesCorpo = await declaracao.corpo.aceitar(this);
40329
41026
  vertices = vertices.concat(verticesCorpo);
40330
41027
  // Incremento
40331
41028
  const ultimaArestaCorpo = verticesCorpo[verticesCorpo.length - 1].destino;
40332
- const textoIncremento = this.dicionarioConstrutos[declaracaoPara.incrementar.constructor.name](declaracaoPara.incrementar);
40333
- const arestaIncremento = new mermaid_1.ArestaFluxograma(declaracaoPara, `Linha${declaracaoPara.linha}Incremento(${textoIncremento})`);
41029
+ const textoIncremento = await declaracao.incrementar.aceitar(this);
41030
+ const arestaIncremento = new mermaid_1.ArestaFluxograma(declaracao, `Linha${declaracao.linha}Incremento(${textoIncremento})`);
40334
41031
  const verticeIncremento = new mermaid_1.VerticeFluxograma(ultimaArestaCorpo, arestaIncremento);
40335
41032
  vertices.push(verticeIncremento);
40336
41033
  const verticeLaco = new mermaid_1.VerticeFluxograma(arestaIncremento, arestaCondicao);
@@ -40339,80 +41036,340 @@ class TradutorMermaidJs {
40339
41036
  this.anteriores.pop();
40340
41037
  this.anteriores.push(arestaCondicao);
40341
41038
  this.ultimaDicaVertice = 'Não';
40342
- return vertices;
40343
- }
40344
- traduzirDeclaracaoParaCada(declaracaoParaCada) {
40345
- const textoVariavelIteracao = this.dicionarioConstrutos[declaracaoParaCada.variavelIteracao.constructor.name](declaracaoParaCada.variavelIteracao);
40346
- let texto = `Linha${declaracaoParaCada.linha}(para cada ${textoVariavelIteracao} em `;
40347
- const textoVariavelIterada = this.dicionarioConstrutos[declaracaoParaCada.vetorOuDicionario.constructor.name](declaracaoParaCada.vetorOuDicionario);
40348
- texto += textoVariavelIterada + ')';
40349
- const aresta = new mermaid_1.ArestaFluxograma(declaracaoParaCada, texto);
40350
- let vertices = this.logicaComumConexaoArestas(aresta);
40351
- this.anteriores.push(aresta);
40352
- // Corpo, normalmente um `Bloco`.
40353
- const verticesCorpo = this.dicionarioDeclaracoes[declaracaoParaCada.corpo.constructor.name](declaracaoParaCada.corpo);
40354
- vertices = vertices.concat(verticesCorpo);
40355
- const ultimaArestaCorpo = verticesCorpo[verticesCorpo.length - 1].destino;
40356
- vertices.push(new mermaid_1.VerticeFluxograma(ultimaArestaCorpo, aresta));
40357
- return vertices;
41039
+ return Promise.resolve(vertices);
40358
41040
  }
40359
- traduzirDeclaracaoSe(declaracaoSe) {
40360
- let texto = `Linha${declaracaoSe.linha}{se `;
40361
- const condicao = this.dicionarioConstrutos[declaracaoSe.condicao.constructor.name](declaracaoSe.condicao);
41041
+ async visitarDeclaracaoSe(declaracao) {
41042
+ let texto = `Linha${declaracao.linha}{se `;
41043
+ const condicao = await declaracao.condicao.aceitar(this);
40362
41044
  texto += condicao;
40363
41045
  texto += `}`;
40364
- const aresta = new mermaid_1.ArestaFluxograma(declaracaoSe, texto);
41046
+ const aresta = new mermaid_1.ArestaFluxograma(declaracao, texto);
40365
41047
  let vertices = this.logicaComumConexaoArestas(aresta);
40366
41048
  this.anteriores.push(aresta);
40367
41049
  this.ultimaDicaVertice = 'Sim';
40368
41050
  // Caminho então, normalmente um `Bloco`.
40369
- const verticesEntao = this.dicionarioDeclaracoes[declaracaoSe.caminhoEntao.constructor.name](declaracaoSe.caminhoEntao);
41051
+ const verticesEntao = await declaracao.caminhoEntao.aceitar(this);
40370
41052
  vertices = vertices.concat(verticesEntao);
40371
41053
  const ultimaArestaEntao = verticesEntao[verticesEntao.length - 1].destino;
40372
- if (declaracaoSe.caminhoSenao) {
41054
+ if (declaracao.caminhoSenao) {
40373
41055
  this.anteriores = [];
40374
- const arestaSenao = new mermaid_1.ArestaFluxograma(declaracaoSe, `Linha${declaracaoSe.caminhoSenao.linha}(senão)`);
41056
+ const arestaSenao = new mermaid_1.ArestaFluxograma(declaracao, `Linha${declaracao.caminhoSenao.linha}(senão)`);
40375
41057
  vertices.push(new mermaid_1.VerticeFluxograma(aresta, arestaSenao, 'Não'));
40376
41058
  this.anteriores.push(arestaSenao);
40377
- const verticesSenao = this.dicionarioDeclaracoes[declaracaoSe.caminhoSenao.constructor.name](declaracaoSe.caminhoSenao);
41059
+ const verticesSenao = await declaracao.caminhoSenao.aceitar(this);
40378
41060
  vertices = vertices.concat(verticesSenao);
40379
41061
  }
40380
41062
  this.anteriores.push(ultimaArestaEntao);
40381
- return vertices;
41063
+ return Promise.resolve(vertices);
40382
41064
  }
40383
- logicaComumTraducaoVarEConst(declaracaoVarOuConst, textoInicial) {
40384
- if (declaracaoVarOuConst.inicializador) {
40385
- textoInicial += `, iniciada com: ${this.dicionarioConstrutos[declaracaoVarOuConst.inicializador.constructor.name](declaracaoVarOuConst.inicializador)}`;
40386
- }
40387
- textoInicial += ')';
40388
- return textoInicial;
41065
+ async visitarDeclaracaoTendoComo(declaracao) {
41066
+ const textoVariavelIteracao = await declaracao.inicializacaoVariavel.aceitar(this);
41067
+ let texto = `Linha${declaracao.linha}(tendo ${textoVariavelIteracao} como `;
41068
+ texto += declaracao.simboloVariavel.lexema + ')';
41069
+ const aresta = new mermaid_1.ArestaFluxograma(declaracao, texto);
41070
+ let vertices = this.logicaComumConexaoArestas(aresta);
41071
+ this.anteriores.push(aresta);
41072
+ // Corpo, normalmente um `Bloco`.
41073
+ const verticesCorpo = await declaracao.corpo.aceitar(this);
41074
+ vertices = vertices.concat(verticesCorpo);
41075
+ const ultimaArestaCorpo = verticesCorpo[verticesCorpo.length - 1].destino;
41076
+ vertices.push(new mermaid_1.VerticeFluxograma(ultimaArestaCorpo, aresta));
41077
+ return Promise.resolve(vertices);
40389
41078
  }
40390
- traduzirDeclaracaoVar(declaracaoVar) {
40391
- let texto = `Linha${declaracaoVar.linha}(variável: ${declaracaoVar.simbolo.lexema}`;
40392
- texto += this.logicaComumTraducaoVarEConst(declaracaoVar, texto);
40393
- const aresta = new mermaid_1.ArestaFluxograma(declaracaoVar, texto);
41079
+ visitarDeclaracaoTente(declaracao) {
41080
+ throw new Error('Método não implementado.');
41081
+ }
41082
+ visitarDeclaracaoTextoDocumentacao(declaracao) {
41083
+ throw new Error('Método não implementado.');
41084
+ }
41085
+ async visitarDeclaracaoVar(declaracao) {
41086
+ let texto = `Linha${declaracao.linha}(variável: ${declaracao.simbolo.lexema}`;
41087
+ texto += await this.logicaComumTraducaoVarEConst(declaracao, texto);
41088
+ const aresta = new mermaid_1.ArestaFluxograma(declaracao, texto);
40394
41089
  const vertices = this.logicaComumConexaoArestas(aresta);
40395
41090
  this.anteriores.push(aresta);
40396
- return vertices;
41091
+ return Promise.resolve(vertices);
40397
41092
  }
40398
- traduzirDeclaracaoRetorna(declaracaoRetorna) {
40399
- let texto = `Linha${declaracaoRetorna.linha}(retorna`;
40400
- if (declaracaoRetorna.valor) {
40401
- texto += `: ${this.dicionarioConstrutos[declaracaoRetorna.valor.constructor.name](declaracaoRetorna.valor)}`;
41093
+ visitarDeclaracaoVarMultiplo(declaracao) {
41094
+ throw new Error('Método não implementado.');
41095
+ }
41096
+ async visitarExpressaoDeAtribuicao(expressao) {
41097
+ const textoAlvo = await expressao.alvo.aceitar(this);
41098
+ const textoValor = await expressao.valor.aceitar(this);
41099
+ return Promise.resolve(`${textoAlvo} recebe: ${textoValor}`);
41100
+ }
41101
+ async visitarExpressaoAcessoIndiceVariavel(expressao) {
41102
+ const textoIndice = await expressao.indice.aceitar(this);
41103
+ return Promise.resolve(`no índice ${textoIndice}`);
41104
+ }
41105
+ visitarExpressaoAcessoIntervaloVariavel(expressao) {
41106
+ throw new Error('Método não implementado.');
41107
+ }
41108
+ visitarExpressaoAcessoElementoMatriz(expressao) {
41109
+ throw new Error('Método não implementado.');
41110
+ }
41111
+ async visitarExpressaoAcessoMetodo(expressao) {
41112
+ return Promise.resolve(`método ${expressao.nomeMetodo}`);
41113
+ }
41114
+ async visitarExpressaoAcessoMetodoOuPropriedade(expressao) {
41115
+ return Promise.resolve(`método ou propriedade ${expressao.simbolo.lexema}`);
41116
+ }
41117
+ async visitarExpressaoAcessoPropriedade(expressao) {
41118
+ return Promise.resolve(`propriedade ${expressao.nomePropriedade}`);
41119
+ }
41120
+ async visitarExpressaoAgrupamento(expressao) {
41121
+ return await expressao.expressao.aceitar(this);
41122
+ }
41123
+ visitarExpressaoArgumentoReferenciaFuncao(expressao) {
41124
+ throw new Error('Método não implementado.');
41125
+ }
41126
+ visitarExpressaoAtribuicaoPorIndice(expressao) {
41127
+ throw new Error('Método não implementado.');
41128
+ }
41129
+ visitarExpressaoAtribuicaoPorIndicesMatriz(expressao) {
41130
+ throw new Error('Método não implementado.');
41131
+ }
41132
+ async visitarExpressaoBinaria(expressao) {
41133
+ const operandoEsquerdo = await expressao.esquerda.aceitar(this);
41134
+ const operandoDireito = await expressao.direita.aceitar(this);
41135
+ switch (expressao.operador.tipo) {
41136
+ case delegua_1.default.ADICAO:
41137
+ return Promise.resolve(`somar ${operandoEsquerdo} e ${operandoDireito}`);
41138
+ case delegua_1.default.MENOR:
41139
+ return Promise.resolve(`${operandoEsquerdo} for menor que ${operandoDireito}`);
41140
+ }
41141
+ return Promise.resolve('');
41142
+ }
41143
+ async visitarExpressaoBloco(bloco) {
41144
+ let vertices = [];
41145
+ for (const declaracao of bloco.declaracoes) {
41146
+ const verticesDeclaracao = await declaracao.aceitar(this);
41147
+ vertices = vertices.concat(verticesDeclaracao);
41148
+ }
41149
+ return Promise.resolve(vertices);
41150
+ }
41151
+ async visitarExpressaoComentario(expressao) {
41152
+ return Promise.resolve('');
41153
+ }
41154
+ visitarExpressaoContinua(declaracao) {
41155
+ throw new Error('Método não implementado.');
41156
+ }
41157
+ async visitarExpressaoDeChamada(expressao) {
41158
+ const textoEntidadeChamada = await expressao.entidadeChamada.aceitar(this);
41159
+ let texto = `chamada a ${textoEntidadeChamada}`;
41160
+ if (expressao.argumentos.length > 0) {
41161
+ texto += `, com argumentos: `;
41162
+ for (const argumento of expressao.argumentos) {
41163
+ const textoArgumento = await argumento.aceitar(this);
41164
+ texto += `${textoArgumento}, `;
41165
+ }
41166
+ texto = texto.slice(0, -2);
41167
+ }
41168
+ else {
41169
+ texto += `, sem argumentos`;
41170
+ }
41171
+ return Promise.resolve(texto);
41172
+ }
41173
+ async visitarExpressaoDefinirValor(expressao) {
41174
+ const textoObjeto = await expressao.objeto.aceitar(this);
41175
+ const textoValor = await expressao.valor.aceitar(this);
41176
+ return Promise.resolve(`${expressao.nome.lexema} em ${textoObjeto} recebe ${textoValor}`);
41177
+ }
41178
+ visitarExpressaoFuncaoConstruto(expressao) {
41179
+ throw new Error('Método não implementado.');
41180
+ }
41181
+ async visitarExpressaoDeVariavel(expressao) {
41182
+ return Promise.resolve(expressao.simbolo.lexema);
41183
+ }
41184
+ async visitarExpressaoDicionario(expressao) {
41185
+ let texto = `dicionário`;
41186
+ if (expressao.chaves.length > 0) {
41187
+ texto += `, com `;
41188
+ for (const [chave, indice] of Object.entries(expressao.chaves)) {
41189
+ texto += `chave ${chave} definida com o valor ${expressao.valores[0]}`;
41190
+ }
41191
+ }
41192
+ else {
41193
+ texto += ' vazio';
41194
+ }
41195
+ return Promise.resolve(texto);
41196
+ }
41197
+ visitarExpressaoExpressaoRegular(expressao) {
41198
+ throw new Error('Método não implementado.');
41199
+ }
41200
+ visitarExpressaoFalhar(expressao) {
41201
+ throw new Error('Método não implementado.');
41202
+ }
41203
+ visitarExpressaoFimPara(declaracao) {
41204
+ throw new Error('Método não implementado.');
41205
+ }
41206
+ visitarExpressaoFormatacaoEscrita(declaracao) {
41207
+ throw new Error('Método não implementado.');
41208
+ }
41209
+ async visitarExpressaoIsto(expressao) {
41210
+ return Promise.resolve('this');
41211
+ }
41212
+ async visitarExpressaoLeia(expressao) {
41213
+ let texto = 'leia da entrada';
41214
+ if (expressao.argumentos && expressao.argumentos.length > 0) {
41215
+ const textoArgumento = await expressao.argumentos[0].aceitar(this);
41216
+ texto += `, imprimindo antes: \\'${textoArgumento}\\'`;
41217
+ }
41218
+ return Promise.resolve(texto);
41219
+ }
41220
+ async visitarExpressaoLiteral(expressao) {
41221
+ switch (expressao.tipo) {
41222
+ case 'lógico':
41223
+ return Promise.resolve(expressao.valor ? 'verdadeiro' : 'falso');
41224
+ case 'texto':
41225
+ return Promise.resolve(`\\'${expressao.valor}\\'`);
41226
+ default:
41227
+ return Promise.resolve(String(expressao.valor));
41228
+ }
41229
+ }
41230
+ visitarExpressaoLogica(expressao) {
41231
+ throw new Error('Método não implementado.');
41232
+ }
41233
+ visitarExpressaoReferenciaFuncao(expressao) {
41234
+ throw new Error('Método não implementado.');
41235
+ }
41236
+ async visitarExpressaoRetornar(expressao) {
41237
+ let texto = `Linha${expressao.linha}(retorna`;
41238
+ if (expressao.valor) {
41239
+ texto += `: ${await expressao.valor.aceitar(this)}`;
40402
41240
  }
40403
41241
  texto += ')';
40404
- const aresta = new mermaid_1.ArestaFluxograma(declaracaoRetorna, texto);
41242
+ const aresta = new mermaid_1.ArestaFluxograma(expressao, texto);
40405
41243
  const vertices = this.logicaComumConexaoArestas(aresta);
40406
41244
  this.anteriores.push(aresta);
41245
+ return Promise.resolve(vertices);
41246
+ }
41247
+ async visitarExpressaoSeparador(expressao) {
41248
+ return Promise.resolve(`${expressao.conteudo} `);
41249
+ }
41250
+ visitarExpressaoSuper(expressao) {
41251
+ throw new Error('Método não implementado.');
41252
+ }
41253
+ visitarExpressaoSustar(declaracao) {
41254
+ throw new Error('Método não implementado.');
41255
+ }
41256
+ visitarExpressaoTupla(expressao) {
41257
+ throw new Error('Método não implementado.');
41258
+ }
41259
+ visitarExpressaoTuplaN(expressao) {
41260
+ throw new Error('Método não implementado.');
41261
+ }
41262
+ visitarExpressaoTipoDe(expressao) {
41263
+ throw new Error('Método não implementado.');
41264
+ }
41265
+ async visitarExpressaoUnaria(expressao) {
41266
+ const textoOperando = await expressao.operando.aceitar(this);
41267
+ let textoOperador = '';
41268
+ switch (expressao.operador.tipo) {
41269
+ case delegua_1.default.INCREMENTAR:
41270
+ textoOperador = `incrementar ${textoOperando} em 1`;
41271
+ break;
41272
+ case delegua_1.default.DECREMENTAR:
41273
+ textoOperador = `decrementar ${textoOperando} de 1`;
41274
+ break;
41275
+ }
41276
+ switch (expressao.incidenciaOperador) {
41277
+ case 'ANTES':
41278
+ return Promise.resolve(`${textoOperador}, devolver valor de ${textoOperando}`);
41279
+ case 'DEPOIS':
41280
+ return Promise.resolve(`devolver valor de ${textoOperando}, ${textoOperador}`);
41281
+ }
41282
+ }
41283
+ async visitarExpressaoVetor(expressao) {
41284
+ let texto = `vetor: `;
41285
+ for (const elemento of expressao.valores) {
41286
+ texto += await elemento.aceitar(this);
41287
+ }
41288
+ return Promise.resolve(texto);
41289
+ }
41290
+ /**
41291
+ * Traduz uma declaração de Expressao que contém uma chamada de função,
41292
+ * criando os vértices necessários para conectar ao subgrafo da função.
41293
+ */
41294
+ async traduzirChamadaFuncao(declaracaoExpressao, chamada) {
41295
+ // Verifica se é uma chamada a uma função conhecida
41296
+ if (chamada.entidadeChamada.constructor.name === 'Variavel') {
41297
+ const variavel = chamada.entidadeChamada;
41298
+ const nomeFuncao = variavel.simbolo.lexema;
41299
+ if (this.declaracoesFuncoes[nomeFuncao]) {
41300
+ const subgrafo = this.declaracoesFuncoes[nomeFuncao];
41301
+ let vertices = [];
41302
+ // Conecta do fluxo atual para a entrada da função
41303
+ const textoPreChamada = `Linha${declaracaoExpressao.linha}(${await chamada.aceitar(this)})`;
41304
+ const arestaPreChamada = new mermaid_1.ArestaFluxograma(declaracaoExpressao, textoPreChamada);
41305
+ vertices = vertices.concat(this.logicaComumConexaoArestas(arestaPreChamada));
41306
+ // Conecta a pré-chamada ao início da função
41307
+ vertices.push(new mermaid_1.VerticeFluxograma(arestaPreChamada, subgrafo.arestaInicial));
41308
+ // A saída da função volta para o fluxo principal
41309
+ this.anteriores = [subgrafo.arestaFinal];
41310
+ return Promise.resolve(vertices);
41311
+ }
41312
+ }
41313
+ // Se não for uma função conhecida, trata como expressão normal
41314
+ return Promise.resolve([]);
41315
+ }
41316
+ logicaComumConexaoArestas(aresta) {
41317
+ const vertices = [];
41318
+ while (this.anteriores.length > 0) {
41319
+ const anterior = this.anteriores.shift();
41320
+ let textoVertice = undefined;
41321
+ if (this.ultimaDicaVertice) {
41322
+ textoVertice = String(this.ultimaDicaVertice);
41323
+ this.ultimaDicaVertice = undefined;
41324
+ }
41325
+ vertices.push(new mermaid_1.VerticeFluxograma(anterior, aresta, textoVertice));
41326
+ }
40407
41327
  return vertices;
40408
41328
  }
41329
+ async logicaComumCaminhoEscolha(declaracaoEscolha, caminhoEscolha, linha, textoIdentificadorOuLiteral, caminhoPadrao) {
41330
+ let textoCaso = '';
41331
+ if (!caminhoPadrao) {
41332
+ textoCaso = `caso ${textoIdentificadorOuLiteral} seja igual a `;
41333
+ for (const condicao of caminhoEscolha.condicoes) {
41334
+ const textoCondicao = await condicao.aceitar(this);
41335
+ textoCaso += `${textoCondicao} ou `;
41336
+ }
41337
+ textoCaso = textoCaso.slice(0, -4);
41338
+ textoCaso += ':';
41339
+ }
41340
+ else {
41341
+ textoCaso = `caso ${textoIdentificadorOuLiteral} tenha qualquer outro valor:`;
41342
+ }
41343
+ let textoCaminho = `Linha${linha}(${textoCaso})`;
41344
+ const arestaCondicaoCaminho = new mermaid_1.ArestaFluxograma(declaracaoEscolha, textoCaminho);
41345
+ this.anteriores.push(arestaCondicaoCaminho);
41346
+ let verticesResolvidos = [];
41347
+ for (const declaracaoCaminho of caminhoEscolha.declaracoes) {
41348
+ const verticesDeclaracoes = await declaracaoCaminho.aceitar(this);
41349
+ verticesResolvidos = verticesResolvidos.concat(verticesDeclaracoes);
41350
+ this.anteriores.pop();
41351
+ this.anteriores.push(verticesDeclaracoes[verticesDeclaracoes.length - 1].destino);
41352
+ }
41353
+ this.anteriores.pop();
41354
+ return Promise.resolve({
41355
+ caminho: arestaCondicaoCaminho,
41356
+ declaracoesCaminho: verticesResolvidos,
41357
+ });
41358
+ }
41359
+ async logicaComumTraducaoVarEConst(declaracaoVarOuConst, textoInicial) {
41360
+ if (declaracaoVarOuConst.inicializador) {
41361
+ textoInicial += `, iniciada com: ${await declaracaoVarOuConst.inicializador.aceitar(this)}`;
41362
+ }
41363
+ textoInicial += ')';
41364
+ return Promise.resolve(textoInicial);
41365
+ }
40409
41366
  /**
40410
41367
  * Ponto de entrada para a tradução de declarações em um fluxograma
40411
41368
  * no formato MermaidJs.
40412
41369
  * @param {Declaracao[]} declaracoes As declarações a serem traduzidas.
40413
41370
  * @returns {string} Texto no formato MermaidJs representando o fluxograma.
40414
41371
  */
40415
- traduzir(declaracoes) {
41372
+ async traduzir(declaracoes) {
40416
41373
  this.anteriores = [];
40417
41374
  this.vertices = [];
40418
41375
  let resultado = 'graph TD;\n';
@@ -40420,7 +41377,7 @@ class TradutorMermaidJs {
40420
41377
  this.declaracoesFuncoes = {};
40421
41378
  this.declaracoesClasses = {};
40422
41379
  for (const declaracao of declaracoes) {
40423
- this.vertices = this.vertices.concat(this.dicionarioDeclaracoes[declaracao.constructor.name](declaracao));
41380
+ this.vertices = this.vertices.concat(await declaracao.aceitar(this));
40424
41381
  }
40425
41382
  // Renderiza os subgrafos de funções
40426
41383
  if (Object.keys(this.declaracoesFuncoes).length > 0) {
@@ -40463,7 +41420,7 @@ class TradutorMermaidJs {
40463
41420
  }
40464
41421
  exports.TradutorMermaidJs = TradutorMermaidJs;
40465
41422
 
40466
- },{"../tipos-de-simbolos/delegua":212,"./mermaid":222}],235:[function(require,module,exports){
41423
+ },{"../tipos-de-simbolos/delegua":212,"./mermaid":222}],236:[function(require,module,exports){
40467
41424
  "use strict";
40468
41425
  Object.defineProperty(exports, "__esModule", { value: true });
40469
41426
  exports.TradutorPortugolIpt = void 0;
@@ -40525,7 +41482,7 @@ class TradutorPortugolIpt {
40525
41482
  }
40526
41483
  exports.TradutorPortugolIpt = TradutorPortugolIpt;
40527
41484
 
40528
- },{"../avaliador-sintatico/dialetos":17,"../lexador/dialetos":182}],236:[function(require,module,exports){
41485
+ },{"../avaliador-sintatico/dialetos":17,"../lexador/dialetos":182}],237:[function(require,module,exports){
40529
41486
  "use strict";
40530
41487
  var __importDefault = (this && this.__importDefault) || function (mod) {
40531
41488
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -41211,7 +42168,7 @@ class TradutorPython {
41211
42168
  }
41212
42169
  exports.TradutorPython = TradutorPython;
41213
42170
 
41214
- },{"../construtos":62,"../declaracoes":109,"../tipos-de-simbolos/delegua":212}],237:[function(require,module,exports){
42171
+ },{"../construtos":62,"../declaracoes":109,"../tipos-de-simbolos/delegua":212}],238:[function(require,module,exports){
41215
42172
  "use strict";
41216
42173
  Object.defineProperty(exports, "__esModule", { value: true });
41217
42174
  exports.TradutorReversoJavaScript = void 0;
@@ -41606,7 +42563,7 @@ class TradutorReversoJavaScript {
41606
42563
  }
41607
42564
  exports.TradutorReversoJavaScript = TradutorReversoJavaScript;
41608
42565
 
41609
- },{}],238:[function(require,module,exports){
42566
+ },{}],239:[function(require,module,exports){
41610
42567
  "use strict";
41611
42568
  Object.defineProperty(exports, "__esModule", { value: true });
41612
42569
  exports.TradutorReversoPython = void 0;
@@ -41679,7 +42636,7 @@ class TradutorReversoPython {
41679
42636
  }
41680
42637
  exports.TradutorReversoPython = TradutorReversoPython;
41681
42638
 
41682
- },{"./python/python3-lexer":227,"./python/python3-parser":228,"antlr4ts":356,"antlr4ts/tree/ParseTreeWalker":375}],239:[function(require,module,exports){
42639
+ },{"./python/python3-lexer":227,"./python/python3-parser":228,"antlr4ts":357,"antlr4ts/tree/ParseTreeWalker":376}],240:[function(require,module,exports){
41683
42640
  "use strict";
41684
42641
  var __importDefault = (this && this.__importDefault) || function (mod) {
41685
42642
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -42273,7 +43230,7 @@ class TradutorReversoTenda {
42273
43230
  }
42274
43231
  exports.TradutorReversoTenda = TradutorReversoTenda;
42275
43232
 
42276
- },{"../construtos":62,"../tipos-de-simbolos/tenda":219}],240:[function(require,module,exports){
43233
+ },{"../construtos":62,"../tipos-de-simbolos/tenda":219}],241:[function(require,module,exports){
42277
43234
  "use strict";
42278
43235
  var __importDefault = (this && this.__importDefault) || function (mod) {
42279
43236
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -42961,7 +43918,7 @@ class TradutorRuby {
42961
43918
  }
42962
43919
  exports.TradutorRuby = TradutorRuby;
42963
43920
 
42964
- },{"../construtos":62,"../declaracoes":109,"../tipos-de-simbolos/delegua":212}],241:[function(require,module,exports){
43921
+ },{"../construtos":62,"../declaracoes":109,"../tipos-de-simbolos/delegua":212}],242:[function(require,module,exports){
42965
43922
  "use strict";
42966
43923
  /*!
42967
43924
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -42969,7 +43926,7 @@ exports.TradutorRuby = TradutorRuby;
42969
43926
  */
42970
43927
  Object.defineProperty(exports, "__esModule", { value: true });
42971
43928
 
42972
- },{}],242:[function(require,module,exports){
43929
+ },{}],243:[function(require,module,exports){
42973
43930
  "use strict";
42974
43931
  /*!
42975
43932
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -42977,7 +43934,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
42977
43934
  */
42978
43935
  Object.defineProperty(exports, "__esModule", { value: true });
42979
43936
 
42980
- },{}],243:[function(require,module,exports){
43937
+ },{}],244:[function(require,module,exports){
42981
43938
  "use strict";
42982
43939
  /*!
42983
43940
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -43139,7 +44096,7 @@ __decorate([
43139
44096
  ], ANTLRInputStream.prototype, "toString", null);
43140
44097
  exports.ANTLRInputStream = ANTLRInputStream;
43141
44098
 
43142
- },{"./Decorators":254,"./IntStream":260,"assert":397}],244:[function(require,module,exports){
44099
+ },{"./Decorators":255,"./IntStream":261,"assert":398}],245:[function(require,module,exports){
43143
44100
  "use strict";
43144
44101
  /*!
43145
44102
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -43222,7 +44179,7 @@ __decorate([
43222
44179
  ], BailErrorStrategy.prototype, "sync", null);
43223
44180
  exports.BailErrorStrategy = BailErrorStrategy;
43224
44181
 
43225
- },{"./Decorators":254,"./DefaultErrorStrategy":255,"./InputMismatchException":259,"./misc/ParseCancellationException":371}],245:[function(require,module,exports){
44182
+ },{"./Decorators":255,"./DefaultErrorStrategy":256,"./InputMismatchException":260,"./misc/ParseCancellationException":372}],246:[function(require,module,exports){
43226
44183
  "use strict";
43227
44184
  /*!
43228
44185
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -43712,7 +44669,7 @@ BufferedTokenStream = __decorate([
43712
44669
  ], BufferedTokenStream);
43713
44670
  exports.BufferedTokenStream = BufferedTokenStream;
43714
44671
 
43715
- },{"./CommonToken":250,"./Decorators":254,"./Lexer":262,"./Token":279,"./misc/Interval":366,"assert":397}],246:[function(require,module,exports){
44672
+ },{"./CommonToken":251,"./Decorators":255,"./Lexer":263,"./Token":280,"./misc/Interval":367,"assert":398}],247:[function(require,module,exports){
43716
44673
  "use strict";
43717
44674
  /*!
43718
44675
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -43720,7 +44677,7 @@ exports.BufferedTokenStream = BufferedTokenStream;
43720
44677
  */
43721
44678
  Object.defineProperty(exports, "__esModule", { value: true });
43722
44679
 
43723
- },{}],247:[function(require,module,exports){
44680
+ },{}],248:[function(require,module,exports){
43724
44681
  "use strict";
43725
44682
  /*!
43726
44683
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -43854,7 +44811,7 @@ var CharStreams;
43854
44811
  // }
43855
44812
  })(CharStreams = exports.CharStreams || (exports.CharStreams = {}));
43856
44813
 
43857
- },{"./CodePointBuffer":248,"./CodePointCharStream":249,"./IntStream":260}],248:[function(require,module,exports){
44814
+ },{"./CodePointBuffer":249,"./CodePointCharStream":250,"./IntStream":261}],249:[function(require,module,exports){
43858
44815
  "use strict";
43859
44816
  /*!
43860
44817
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -44089,7 +45046,7 @@ exports.CodePointBuffer = CodePointBuffer;
44089
45046
  CodePointBuffer.Builder = Builder;
44090
45047
  })(CodePointBuffer = exports.CodePointBuffer || (exports.CodePointBuffer = {}));
44091
45048
 
44092
- },{"./misc/Character":362,"assert":397}],249:[function(require,module,exports){
45049
+ },{"./misc/Character":363,"assert":398}],250:[function(require,module,exports){
44093
45050
  "use strict";
44094
45051
  /*!
44095
45052
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -44239,7 +45196,7 @@ __decorate([
44239
45196
  ], CodePointCharStream.prototype, "getText", null);
44240
45197
  exports.CodePointCharStream = CodePointCharStream;
44241
45198
 
44242
- },{"./Decorators":254,"./IntStream":260,"./misc/Interval":366,"assert":397}],250:[function(require,module,exports){
45199
+ },{"./Decorators":255,"./IntStream":261,"./misc/Interval":367,"assert":398}],251:[function(require,module,exports){
44243
45200
  "use strict";
44244
45201
  /*!
44245
45202
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -44469,7 +45426,7 @@ CommonToken = __decorate([
44469
45426
  ], CommonToken);
44470
45427
  exports.CommonToken = CommonToken;
44471
45428
 
44472
- },{"./Decorators":254,"./Token":279,"./misc/Interval":366}],251:[function(require,module,exports){
45429
+ },{"./Decorators":255,"./Token":280,"./misc/Interval":367}],252:[function(require,module,exports){
44473
45430
  "use strict";
44474
45431
  /*!
44475
45432
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -44533,7 +45490,7 @@ exports.CommonTokenFactory = CommonTokenFactory;
44533
45490
  CommonTokenFactory.DEFAULT = new CommonTokenFactory();
44534
45491
  })(CommonTokenFactory = exports.CommonTokenFactory || (exports.CommonTokenFactory = {}));
44535
45492
 
44536
- },{"./CommonToken":250,"./Decorators":254,"./misc/Interval":366}],252:[function(require,module,exports){
45493
+ },{"./CommonToken":251,"./Decorators":255,"./misc/Interval":367}],253:[function(require,module,exports){
44537
45494
  "use strict";
44538
45495
  /*!
44539
45496
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -44660,7 +45617,7 @@ CommonTokenStream = __decorate([
44660
45617
  ], CommonTokenStream);
44661
45618
  exports.CommonTokenStream = CommonTokenStream;
44662
45619
 
44663
- },{"./BufferedTokenStream":245,"./Decorators":254,"./Token":279}],253:[function(require,module,exports){
45620
+ },{"./BufferedTokenStream":246,"./Decorators":255,"./Token":280}],254:[function(require,module,exports){
44664
45621
  "use strict";
44665
45622
  /*!
44666
45623
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -44694,7 +45651,7 @@ exports.ConsoleErrorListener = ConsoleErrorListener;
44694
45651
  */
44695
45652
  ConsoleErrorListener.INSTANCE = new ConsoleErrorListener();
44696
45653
 
44697
- },{}],254:[function(require,module,exports){
45654
+ },{}],255:[function(require,module,exports){
44698
45655
  "use strict";
44699
45656
  /*!
44700
45657
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -44721,7 +45678,7 @@ function SuppressWarnings(options) {
44721
45678
  }
44722
45679
  exports.SuppressWarnings = SuppressWarnings;
44723
45680
 
44724
- },{}],255:[function(require,module,exports){
45681
+ },{}],256:[function(require,module,exports){
44725
45682
  "use strict";
44726
45683
  /*!
44727
45684
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -45535,7 +46492,7 @@ __decorate([
45535
46492
  ], DefaultErrorStrategy.prototype, "consumeUntil", null);
45536
46493
  exports.DefaultErrorStrategy = DefaultErrorStrategy;
45537
46494
 
45538
- },{"./Decorators":254,"./FailedPredicateException":258,"./InputMismatchException":259,"./NoViableAltException":266,"./Token":279,"./atn/ATNState":293,"./atn/ATNStateType":294,"./atn/PredictionContext":334,"./misc/IntervalSet":367}],256:[function(require,module,exports){
46495
+ },{"./Decorators":255,"./FailedPredicateException":259,"./InputMismatchException":260,"./NoViableAltException":267,"./Token":280,"./atn/ATNState":294,"./atn/ATNStateType":295,"./atn/PredictionContext":335,"./misc/IntervalSet":368}],257:[function(require,module,exports){
45539
46496
  "use strict";
45540
46497
  /*!
45541
46498
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -45611,7 +46568,7 @@ var Dependents;
45611
46568
  Dependents[Dependents["FOLLOWING"] = 9] = "FOLLOWING";
45612
46569
  })(Dependents = exports.Dependents || (exports.Dependents = {}));
45613
46570
 
45614
- },{}],257:[function(require,module,exports){
46571
+ },{}],258:[function(require,module,exports){
45615
46572
  "use strict";
45616
46573
  /*!
45617
46574
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -45759,7 +46716,7 @@ __decorate([
45759
46716
  ], DiagnosticErrorListener.prototype, "getConflictingAlts", null);
45760
46717
  exports.DiagnosticErrorListener = DiagnosticErrorListener;
45761
46718
 
45762
- },{"./Decorators":254,"./misc/BitSet":361,"./misc/Interval":366}],258:[function(require,module,exports){
46719
+ },{"./Decorators":255,"./misc/BitSet":362,"./misc/Interval":367}],259:[function(require,module,exports){
45763
46720
  "use strict";
45764
46721
  /*!
45765
46722
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -45824,7 +46781,7 @@ FailedPredicateException = __decorate([
45824
46781
  ], FailedPredicateException);
45825
46782
  exports.FailedPredicateException = FailedPredicateException;
45826
46783
 
45827
- },{"./Decorators":254,"./RecognitionException":273,"./atn/PredicateTransition":333}],259:[function(require,module,exports){
46784
+ },{"./Decorators":255,"./RecognitionException":274,"./atn/PredicateTransition":334}],260:[function(require,module,exports){
45828
46785
  "use strict";
45829
46786
  /*!
45830
46787
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -45864,7 +46821,7 @@ InputMismatchException = __decorate([
45864
46821
  ], InputMismatchException);
45865
46822
  exports.InputMismatchException = InputMismatchException;
45866
46823
 
45867
- },{"./Decorators":254,"./RecognitionException":273}],260:[function(require,module,exports){
46824
+ },{"./Decorators":255,"./RecognitionException":274}],261:[function(require,module,exports){
45868
46825
  "use strict";
45869
46826
  /*!
45870
46827
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -45887,7 +46844,7 @@ var IntStream;
45887
46844
  IntStream.UNKNOWN_SOURCE_NAME = "<unknown>";
45888
46845
  })(IntStream = exports.IntStream || (exports.IntStream = {}));
45889
46846
 
45890
- },{}],261:[function(require,module,exports){
46847
+ },{}],262:[function(require,module,exports){
45891
46848
  "use strict";
45892
46849
  /*!
45893
46850
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -45934,7 +46891,7 @@ __decorate([
45934
46891
  ], InterpreterRuleContext.prototype, "ruleIndex", null);
45935
46892
  exports.InterpreterRuleContext = InterpreterRuleContext;
45936
46893
 
45937
- },{"./Decorators":254,"./ParserRuleContext":270}],262:[function(require,module,exports){
46894
+ },{"./Decorators":255,"./ParserRuleContext":271}],263:[function(require,module,exports){
45938
46895
  "use strict";
45939
46896
  /*!
45940
46897
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -46270,7 +47227,7 @@ __decorate([
46270
47227
  ], Lexer.prototype, "charPositionInLine", null);
46271
47228
  exports.Lexer = Lexer;
46272
47229
 
46273
- },{"./CommonTokenFactory":251,"./Decorators":254,"./IntStream":260,"./LexerNoViableAltException":264,"./Recognizer":274,"./Token":279,"./atn/LexerATNSimulator":312,"./misc/IntegerStack":365,"./misc/Interval":366}],263:[function(require,module,exports){
47230
+ },{"./CommonTokenFactory":252,"./Decorators":255,"./IntStream":261,"./LexerNoViableAltException":265,"./Recognizer":275,"./Token":280,"./atn/LexerATNSimulator":313,"./misc/IntegerStack":366,"./misc/Interval":367}],264:[function(require,module,exports){
46274
47231
  "use strict";
46275
47232
  /*!
46276
47233
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -46350,7 +47307,7 @@ LexerInterpreter = __decorate([
46350
47307
  ], LexerInterpreter);
46351
47308
  exports.LexerInterpreter = LexerInterpreter;
46352
47309
 
46353
- },{"./Decorators":254,"./Lexer":262,"./atn/LexerATNSimulator":312}],264:[function(require,module,exports){
47310
+ },{"./Decorators":255,"./Lexer":263,"./atn/LexerATNSimulator":313}],265:[function(require,module,exports){
46354
47311
  "use strict";
46355
47312
  /*!
46356
47313
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -46407,7 +47364,7 @@ LexerNoViableAltException = __decorate([
46407
47364
  ], LexerNoViableAltException);
46408
47365
  exports.LexerNoViableAltException = LexerNoViableAltException;
46409
47366
 
46410
- },{"./Decorators":254,"./RecognitionException":273,"./misc/Interval":366,"./misc/Utils":373}],265:[function(require,module,exports){
47367
+ },{"./Decorators":255,"./RecognitionException":274,"./misc/Interval":367,"./misc/Utils":374}],266:[function(require,module,exports){
46411
47368
  "use strict";
46412
47369
  /*!
46413
47370
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -46617,7 +47574,7 @@ ListTokenSource = __decorate([
46617
47574
  ], ListTokenSource);
46618
47575
  exports.ListTokenSource = ListTokenSource;
46619
47576
 
46620
- },{"./CommonTokenFactory":251,"./Decorators":254,"./Token":279}],266:[function(require,module,exports){
47577
+ },{"./CommonTokenFactory":252,"./Decorators":255,"./Token":280}],267:[function(require,module,exports){
46621
47578
  "use strict";
46622
47579
  /*!
46623
47580
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -46672,7 +47629,7 @@ __decorate([
46672
47629
  ], NoViableAltException.prototype, "_startToken", void 0);
46673
47630
  exports.NoViableAltException = NoViableAltException;
46674
47631
 
46675
- },{"./Decorators":254,"./Parser":267,"./RecognitionException":273}],267:[function(require,module,exports){
47632
+ },{"./Decorators":255,"./Parser":268,"./RecognitionException":274}],268:[function(require,module,exports){
46676
47633
  (function (process){(function (){
46677
47634
  "use strict";
46678
47635
  /*!
@@ -47518,7 +48475,7 @@ __decorate([
47518
48475
  exports.Parser = Parser;
47519
48476
 
47520
48477
  }).call(this)}).call(this,require('_process'))
47521
- },{"./Decorators":254,"./DefaultErrorStrategy":255,"./Lexer":262,"./ProxyParserErrorListener":272,"./Recognizer":274,"./Token":279,"./atn/ATNDeserializationOptions":290,"./atn/ATNDeserializer":291,"./atn/ParseInfo":327,"./atn/ParserATNSimulator":328,"./atn/ProfilingATNSimulator":337,"./misc/IntegerStack":365,"./misc/Utils":373,"./tree/ErrorNode":374,"./tree/TerminalNode":377,"./tree/pattern/ParseTreePatternMatcher":382,"_process":456}],268:[function(require,module,exports){
48478
+ },{"./Decorators":255,"./DefaultErrorStrategy":256,"./Lexer":263,"./ProxyParserErrorListener":273,"./Recognizer":275,"./Token":280,"./atn/ATNDeserializationOptions":291,"./atn/ATNDeserializer":292,"./atn/ParseInfo":328,"./atn/ParserATNSimulator":329,"./atn/ProfilingATNSimulator":338,"./misc/IntegerStack":366,"./misc/Utils":374,"./tree/ErrorNode":375,"./tree/TerminalNode":378,"./tree/pattern/ParseTreePatternMatcher":383,"_process":457}],269:[function(require,module,exports){
47522
48479
  "use strict";
47523
48480
  /*!
47524
48481
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -47526,7 +48483,7 @@ exports.Parser = Parser;
47526
48483
  */
47527
48484
  Object.defineProperty(exports, "__esModule", { value: true });
47528
48485
 
47529
- },{}],269:[function(require,module,exports){
48486
+ },{}],270:[function(require,module,exports){
47530
48487
  "use strict";
47531
48488
  /*!
47532
48489
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -47934,7 +48891,7 @@ ParserInterpreter = __decorate([
47934
48891
  ], ParserInterpreter);
47935
48892
  exports.ParserInterpreter = ParserInterpreter;
47936
48893
 
47937
- },{"./Decorators":254,"./FailedPredicateException":258,"./InputMismatchException":259,"./InterpreterRuleContext":261,"./Parser":267,"./RecognitionException":273,"./Token":279,"./atn/ATNState":293,"./atn/ATNStateType":294,"./atn/LoopEndState":324,"./atn/ParserATNSimulator":328,"./atn/StarLoopEntryState":346,"./misc/BitSet":361}],270:[function(require,module,exports){
48894
+ },{"./Decorators":255,"./FailedPredicateException":259,"./InputMismatchException":260,"./InterpreterRuleContext":262,"./Parser":268,"./RecognitionException":274,"./Token":280,"./atn/ATNState":294,"./atn/ATNStateType":295,"./atn/LoopEndState":325,"./atn/ParserATNSimulator":329,"./atn/StarLoopEntryState":347,"./misc/BitSet":362}],271:[function(require,module,exports){
47938
48895
  "use strict";
47939
48896
  /*!
47940
48897
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -48235,7 +49192,7 @@ __decorate([
48235
49192
  ], ParserRuleContext.prototype, "sourceInterval", null);
48236
49193
  exports.ParserRuleContext = ParserRuleContext;
48237
49194
 
48238
- },{"./Decorators":254,"./RuleContext":275,"./misc/Interval":366,"./tree/ErrorNode":374,"./tree/TerminalNode":377}],271:[function(require,module,exports){
49195
+ },{"./Decorators":255,"./RuleContext":276,"./misc/Interval":367,"./tree/ErrorNode":375,"./tree/TerminalNode":378}],272:[function(require,module,exports){
48239
49196
  "use strict";
48240
49197
  /*!
48241
49198
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -48285,7 +49242,7 @@ __decorate([
48285
49242
  ], ProxyErrorListener.prototype, "syntaxError", null);
48286
49243
  exports.ProxyErrorListener = ProxyErrorListener;
48287
49244
 
48288
- },{"./Decorators":254}],272:[function(require,module,exports){
49245
+ },{"./Decorators":255}],273:[function(require,module,exports){
48289
49246
  "use strict";
48290
49247
  /*!
48291
49248
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -48344,7 +49301,7 @@ __decorate([
48344
49301
  ], ProxyParserErrorListener.prototype, "reportContextSensitivity", null);
48345
49302
  exports.ProxyParserErrorListener = ProxyParserErrorListener;
48346
49303
 
48347
- },{"./Decorators":254,"./ProxyErrorListener":271}],273:[function(require,module,exports){
49304
+ },{"./Decorators":255,"./ProxyErrorListener":272}],274:[function(require,module,exports){
48348
49305
  "use strict";
48349
49306
  /*!
48350
49307
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -48449,7 +49406,7 @@ class RecognitionException extends Error {
48449
49406
  }
48450
49407
  exports.RecognitionException = RecognitionException;
48451
49408
 
48452
- },{}],274:[function(require,module,exports){
49409
+ },{}],275:[function(require,module,exports){
48453
49410
  "use strict";
48454
49411
  /*!
48455
49412
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -48668,7 +49625,7 @@ __decorate([
48668
49625
  ], Recognizer.prototype, "getErrorListeners", null);
48669
49626
  exports.Recognizer = Recognizer;
48670
49627
 
48671
- },{"./ConsoleErrorListener":253,"./Decorators":254,"./ProxyErrorListener":271,"./Token":279,"./misc/Utils":373}],275:[function(require,module,exports){
49628
+ },{"./ConsoleErrorListener":254,"./Decorators":255,"./ProxyErrorListener":272,"./Token":280,"./misc/Utils":374}],276:[function(require,module,exports){
48672
49629
  "use strict";
48673
49630
  /*!
48674
49631
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -48885,7 +49842,7 @@ __decorate([
48885
49842
  ], RuleContext.prototype, "toStringTree", null);
48886
49843
  exports.RuleContext = RuleContext;
48887
49844
 
48888
- },{"./Decorators":254,"./ParserRuleContext":270,"./Recognizer":274,"./atn/ATN":287,"./misc/Interval":366,"./tree/RuleNode":376,"./tree/Trees":378}],276:[function(require,module,exports){
49845
+ },{"./Decorators":255,"./ParserRuleContext":271,"./Recognizer":275,"./atn/ATN":288,"./misc/Interval":367,"./tree/RuleNode":377,"./tree/Trees":379}],277:[function(require,module,exports){
48889
49846
  "use strict";
48890
49847
  /*!
48891
49848
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -48936,7 +49893,7 @@ __decorate([
48936
49893
  ], RuleContextWithAltNum.prototype, "altNumber", null);
48937
49894
  exports.RuleContextWithAltNum = RuleContextWithAltNum;
48938
49895
 
48939
- },{"./Decorators":254,"./ParserRuleContext":270,"./atn/ATN":287}],277:[function(require,module,exports){
49896
+ },{"./Decorators":255,"./ParserRuleContext":271,"./atn/ATN":288}],278:[function(require,module,exports){
48940
49897
  "use strict";
48941
49898
  /*!
48942
49899
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -48959,7 +49916,7 @@ function RuleDependency(dependency) {
48959
49916
  }
48960
49917
  exports.RuleDependency = RuleDependency;
48961
49918
 
48962
- },{}],278:[function(require,module,exports){
49919
+ },{}],279:[function(require,module,exports){
48963
49920
  "use strict";
48964
49921
  /*!
48965
49922
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -48978,7 +49935,7 @@ function RuleVersion(version) {
48978
49935
  }
48979
49936
  exports.RuleVersion = RuleVersion;
48980
49937
 
48981
- },{}],279:[function(require,module,exports){
49938
+ },{}],280:[function(require,module,exports){
48982
49939
  "use strict";
48983
49940
  /*!
48984
49941
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -49018,7 +49975,7 @@ var Token;
49018
49975
  Token.MIN_USER_CHANNEL_VALUE = 2;
49019
49976
  })(Token = exports.Token || (exports.Token = {}));
49020
49977
 
49021
- },{"./IntStream":260}],280:[function(require,module,exports){
49978
+ },{"./IntStream":261}],281:[function(require,module,exports){
49022
49979
  "use strict";
49023
49980
  /*!
49024
49981
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -49026,7 +49983,7 @@ var Token;
49026
49983
  */
49027
49984
  Object.defineProperty(exports, "__esModule", { value: true });
49028
49985
 
49029
- },{}],281:[function(require,module,exports){
49986
+ },{}],282:[function(require,module,exports){
49030
49987
  "use strict";
49031
49988
  /*!
49032
49989
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -49034,7 +49991,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
49034
49991
  */
49035
49992
  Object.defineProperty(exports, "__esModule", { value: true });
49036
49993
 
49037
- },{}],282:[function(require,module,exports){
49994
+ },{}],283:[function(require,module,exports){
49038
49995
  "use strict";
49039
49996
  /*!
49040
49997
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -49042,7 +49999,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
49042
49999
  */
49043
50000
  Object.defineProperty(exports, "__esModule", { value: true });
49044
50001
 
49045
- },{}],283:[function(require,module,exports){
50002
+ },{}],284:[function(require,module,exports){
49046
50003
  "use strict";
49047
50004
  /*!
49048
50005
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -49550,7 +50507,7 @@ __decorate([
49550
50507
  Decorators_1.Override
49551
50508
  ], ReplaceOp.prototype, "toString", null);
49552
50509
 
49553
- },{"./Decorators":254,"./Token":279,"./misc/Interval":366}],284:[function(require,module,exports){
50510
+ },{"./Decorators":255,"./Token":280,"./misc/Interval":367}],285:[function(require,module,exports){
49554
50511
  "use strict";
49555
50512
  /*!
49556
50513
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -49558,7 +50515,7 @@ __decorate([
49558
50515
  */
49559
50516
  Object.defineProperty(exports, "__esModule", { value: true });
49560
50517
 
49561
- },{}],285:[function(require,module,exports){
50518
+ },{}],286:[function(require,module,exports){
49562
50519
  "use strict";
49563
50520
  /*!
49564
50521
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -49678,7 +50635,7 @@ __decorate([
49678
50635
  ], VocabularyImpl, "EMPTY_VOCABULARY", void 0);
49679
50636
  exports.VocabularyImpl = VocabularyImpl;
49680
50637
 
49681
- },{"./Decorators":254,"./Token":279}],286:[function(require,module,exports){
50638
+ },{"./Decorators":255,"./Token":280}],287:[function(require,module,exports){
49682
50639
  "use strict";
49683
50640
  /*!
49684
50641
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -49686,7 +50643,7 @@ exports.VocabularyImpl = VocabularyImpl;
49686
50643
  */
49687
50644
  Object.defineProperty(exports, "__esModule", { value: true });
49688
50645
 
49689
- },{}],287:[function(require,module,exports){
50646
+ },{}],288:[function(require,module,exports){
49690
50647
  "use strict";
49691
50648
  /*!
49692
50649
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -49908,7 +50865,7 @@ exports.ATN = ATN;
49908
50865
  })(ATN = exports.ATN || (exports.ATN = {}));
49909
50866
  exports.ATN = ATN;
49910
50867
 
49911
- },{"../Decorators":254,"../Token":279,"../dfa/DFA":352,"../misc/Array2DHashMap":357,"../misc/IntervalSet":367,"../misc/ObjectEqualityComparator":370,"./InvalidState":310,"./LL1Analyzer":311,"./PredictionContext":334,"assert":397}],288:[function(require,module,exports){
50868
+ },{"../Decorators":255,"../Token":280,"../dfa/DFA":353,"../misc/Array2DHashMap":358,"../misc/IntervalSet":368,"../misc/ObjectEqualityComparator":371,"./InvalidState":311,"./LL1Analyzer":312,"./PredictionContext":335,"assert":398}],289:[function(require,module,exports){
49912
50869
  "use strict";
49913
50870
  /*!
49914
50871
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -50433,7 +51390,7 @@ ActionSemanticContextATNConfig = __decorate([
50433
51390
  __param(1, Decorators_1.NotNull), __param(2, Decorators_1.NotNull)
50434
51391
  ], ActionSemanticContextATNConfig);
50435
51392
 
50436
- },{"../Decorators":254,"../misc/Array2DHashMap":357,"../misc/MurmurHash":369,"../misc/ObjectEqualityComparator":370,"./DecisionState":307,"./PredictionContext":334,"./SemanticContext":342,"assert":397}],289:[function(require,module,exports){
51393
+ },{"../Decorators":255,"../misc/Array2DHashMap":358,"../misc/MurmurHash":370,"../misc/ObjectEqualityComparator":371,"./DecisionState":308,"./PredictionContext":335,"./SemanticContext":343,"assert":398}],290:[function(require,module,exports){
50437
51394
  "use strict";
50438
51395
  /*!
50439
51396
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -50880,7 +51837,7 @@ __decorate([
50880
51837
  ], ATNConfigSet.prototype, "hashCode", null);
50881
51838
  exports.ATNConfigSet = ATNConfigSet;
50882
51839
 
50883
- },{"../Decorators":254,"../misc/Array2DHashMap":357,"../misc/Array2DHashSet":358,"../misc/ArrayEqualityComparator":359,"../misc/BitSet":361,"../misc/ObjectEqualityComparator":370,"../misc/Utils":373,"./ATN":287,"./ATNConfig":288,"./PredictionContext":334,"./PredictionContextCache":335,"./SemanticContext":342,"assert":397}],290:[function(require,module,exports){
51840
+ },{"../Decorators":255,"../misc/Array2DHashMap":358,"../misc/Array2DHashSet":359,"../misc/ArrayEqualityComparator":360,"../misc/BitSet":362,"../misc/ObjectEqualityComparator":371,"../misc/Utils":374,"./ATN":288,"./ATNConfig":289,"./PredictionContext":335,"./PredictionContextCache":336,"./SemanticContext":343,"assert":398}],291:[function(require,module,exports){
50884
51841
  "use strict";
50885
51842
  /*!
50886
51843
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -50959,7 +51916,7 @@ __decorate([
50959
51916
  ], ATNDeserializationOptions, "defaultOptions", null);
50960
51917
  exports.ATNDeserializationOptions = ATNDeserializationOptions;
50961
51918
 
50962
- },{"../Decorators":254}],291:[function(require,module,exports){
51919
+ },{"../Decorators":255}],292:[function(require,module,exports){
50963
51920
  "use strict";
50964
51921
  /*!
50965
51922
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -52046,7 +53003,7 @@ __decorate([
52046
53003
  ], ATNDeserializer.prototype, "edgeFactory", null);
52047
53004
  exports.ATNDeserializer = ATNDeserializer;
52048
53005
 
52049
- },{"../Decorators":254,"../Token":279,"../dfa/DFA":352,"../misc/Array2DHashSet":358,"../misc/BitSet":361,"../misc/IntervalSet":367,"../misc/UUID":372,"./ATN":287,"./ATNDeserializationOptions":290,"./ATNStateType":294,"./ActionTransition":296,"./AtomTransition":298,"./BasicBlockStartState":299,"./BasicState":300,"./BlockEndState":301,"./BlockStartState":302,"./DecisionState":307,"./EpsilonTransition":308,"./InvalidState":310,"./LexerChannelAction":314,"./LexerCustomAction":315,"./LexerModeAction":317,"./LexerMoreAction":318,"./LexerPopModeAction":319,"./LexerPushModeAction":320,"./LexerSkipAction":321,"./LexerTypeAction":322,"./LoopEndState":324,"./NotSetTransition":325,"./ParserATNSimulator":328,"./PlusBlockStartState":329,"./PlusLoopbackState":330,"./PrecedencePredicateTransition":331,"./PredicateTransition":333,"./RangeTransition":338,"./RuleStartState":339,"./RuleStopState":340,"./RuleTransition":341,"./SetTransition":343,"./StarBlockStartState":345,"./StarLoopEntryState":346,"./StarLoopbackState":347,"./TokensStartState":348,"./WildcardTransition":350}],292:[function(require,module,exports){
53006
+ },{"../Decorators":255,"../Token":280,"../dfa/DFA":353,"../misc/Array2DHashSet":359,"../misc/BitSet":362,"../misc/IntervalSet":368,"../misc/UUID":373,"./ATN":288,"./ATNDeserializationOptions":291,"./ATNStateType":295,"./ActionTransition":297,"./AtomTransition":299,"./BasicBlockStartState":300,"./BasicState":301,"./BlockEndState":302,"./BlockStartState":303,"./DecisionState":308,"./EpsilonTransition":309,"./InvalidState":311,"./LexerChannelAction":315,"./LexerCustomAction":316,"./LexerModeAction":318,"./LexerMoreAction":319,"./LexerPopModeAction":320,"./LexerPushModeAction":321,"./LexerSkipAction":322,"./LexerTypeAction":323,"./LoopEndState":325,"./NotSetTransition":326,"./ParserATNSimulator":329,"./PlusBlockStartState":330,"./PlusLoopbackState":331,"./PrecedencePredicateTransition":332,"./PredicateTransition":334,"./RangeTransition":339,"./RuleStartState":340,"./RuleStopState":341,"./RuleTransition":342,"./SetTransition":344,"./StarBlockStartState":346,"./StarLoopEntryState":347,"./StarLoopbackState":348,"./TokensStartState":349,"./WildcardTransition":351}],293:[function(require,module,exports){
52050
53007
  "use strict";
52051
53008
  /*!
52052
53009
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -52110,7 +53067,7 @@ exports.ATNSimulator = ATNSimulator;
52110
53067
  })(ATNSimulator = exports.ATNSimulator || (exports.ATNSimulator = {}));
52111
53068
  exports.ATNSimulator = ATNSimulator;
52112
53069
 
52113
- },{"../Decorators":254,"../dfa/DFAState":354,"./ATNConfigSet":289,"./PredictionContext":334}],293:[function(require,module,exports){
53070
+ },{"../Decorators":255,"../dfa/DFAState":355,"./ATNConfigSet":290,"./PredictionContext":335}],294:[function(require,module,exports){
52114
53071
  "use strict";
52115
53072
  /*!
52116
53073
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -52297,7 +53254,7 @@ exports.ATNState = ATNState;
52297
53254
  ATNState.INVALID_STATE_NUMBER = -1;
52298
53255
  })(ATNState = exports.ATNState || (exports.ATNState = {}));
52299
53256
 
52300
- },{"../Decorators":254}],294:[function(require,module,exports){
53257
+ },{"../Decorators":255}],295:[function(require,module,exports){
52301
53258
  "use strict";
52302
53259
  /*!
52303
53260
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -52323,7 +53280,7 @@ var ATNStateType;
52323
53280
  ATNStateType[ATNStateType["LOOP_END"] = 12] = "LOOP_END";
52324
53281
  })(ATNStateType = exports.ATNStateType || (exports.ATNStateType = {}));
52325
53282
 
52326
- },{}],295:[function(require,module,exports){
53283
+ },{}],296:[function(require,module,exports){
52327
53284
  "use strict";
52328
53285
  /*!
52329
53286
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -52343,7 +53300,7 @@ class AbstractPredicateTransition extends Transition_1.Transition {
52343
53300
  }
52344
53301
  exports.AbstractPredicateTransition = AbstractPredicateTransition;
52345
53302
 
52346
- },{"./Transition":349}],296:[function(require,module,exports){
53303
+ },{"./Transition":350}],297:[function(require,module,exports){
52347
53304
  "use strict";
52348
53305
  /*!
52349
53306
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -52399,7 +53356,7 @@ ActionTransition = __decorate([
52399
53356
  ], ActionTransition);
52400
53357
  exports.ActionTransition = ActionTransition;
52401
53358
 
52402
- },{"../Decorators":254,"./Transition":349}],297:[function(require,module,exports){
53359
+ },{"../Decorators":255,"./Transition":350}],298:[function(require,module,exports){
52403
53360
  "use strict";
52404
53361
  /*!
52405
53362
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -52486,7 +53443,7 @@ AmbiguityInfo = __decorate([
52486
53443
  ], AmbiguityInfo);
52487
53444
  exports.AmbiguityInfo = AmbiguityInfo;
52488
53445
 
52489
- },{"../Decorators":254,"./DecisionEventInfo":305}],298:[function(require,module,exports){
53446
+ },{"../Decorators":255,"./DecisionEventInfo":306}],299:[function(require,module,exports){
52490
53447
  "use strict";
52491
53448
  /*!
52492
53449
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -52544,7 +53501,7 @@ AtomTransition = __decorate([
52544
53501
  ], AtomTransition);
52545
53502
  exports.AtomTransition = AtomTransition;
52546
53503
 
52547
- },{"../Decorators":254,"../misc/IntervalSet":367,"./Transition":349}],299:[function(require,module,exports){
53504
+ },{"../Decorators":255,"../misc/IntervalSet":368,"./Transition":350}],300:[function(require,module,exports){
52548
53505
  "use strict";
52549
53506
  /*!
52550
53507
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -52576,7 +53533,7 @@ __decorate([
52576
53533
  ], BasicBlockStartState.prototype, "stateType", null);
52577
53534
  exports.BasicBlockStartState = BasicBlockStartState;
52578
53535
 
52579
- },{"../Decorators":254,"./ATNStateType":294,"./BlockStartState":302}],300:[function(require,module,exports){
53536
+ },{"../Decorators":255,"./ATNStateType":295,"./BlockStartState":303}],301:[function(require,module,exports){
52580
53537
  "use strict";
52581
53538
  /*!
52582
53539
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -52608,7 +53565,7 @@ __decorate([
52608
53565
  ], BasicState.prototype, "stateType", null);
52609
53566
  exports.BasicState = BasicState;
52610
53567
 
52611
- },{"../Decorators":254,"./ATNState":293,"./ATNStateType":294}],301:[function(require,module,exports){
53568
+ },{"../Decorators":255,"./ATNState":294,"./ATNStateType":295}],302:[function(require,module,exports){
52612
53569
  "use strict";
52613
53570
  /*!
52614
53571
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -52637,7 +53594,7 @@ __decorate([
52637
53594
  ], BlockEndState.prototype, "stateType", null);
52638
53595
  exports.BlockEndState = BlockEndState;
52639
53596
 
52640
- },{"../Decorators":254,"./ATNState":293,"./ATNStateType":294}],302:[function(require,module,exports){
53597
+ },{"../Decorators":255,"./ATNState":294,"./ATNStateType":295}],303:[function(require,module,exports){
52641
53598
  "use strict";
52642
53599
  /*!
52643
53600
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -52651,7 +53608,7 @@ class BlockStartState extends DecisionState_1.DecisionState {
52651
53608
  }
52652
53609
  exports.BlockStartState = BlockStartState;
52653
53610
 
52654
- },{"./DecisionState":307}],303:[function(require,module,exports){
53611
+ },{"./DecisionState":308}],304:[function(require,module,exports){
52655
53612
  "use strict";
52656
53613
  /*!
52657
53614
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -52721,7 +53678,7 @@ __decorate([
52721
53678
  ], ConflictInfo.prototype, "hashCode", null);
52722
53679
  exports.ConflictInfo = ConflictInfo;
52723
53680
 
52724
- },{"../Decorators":254,"../misc/Utils":373}],304:[function(require,module,exports){
53681
+ },{"../Decorators":255,"../misc/Utils":374}],305:[function(require,module,exports){
52725
53682
  "use strict";
52726
53683
  /*!
52727
53684
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -52781,7 +53738,7 @@ ContextSensitivityInfo = __decorate([
52781
53738
  ], ContextSensitivityInfo);
52782
53739
  exports.ContextSensitivityInfo = ContextSensitivityInfo;
52783
53740
 
52784
- },{"../Decorators":254,"./DecisionEventInfo":305}],305:[function(require,module,exports){
53741
+ },{"../Decorators":255,"./DecisionEventInfo":306}],306:[function(require,module,exports){
52785
53742
  "use strict";
52786
53743
  /*!
52787
53744
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -52833,7 +53790,7 @@ DecisionEventInfo = __decorate([
52833
53790
  ], DecisionEventInfo);
52834
53791
  exports.DecisionEventInfo = DecisionEventInfo;
52835
53792
 
52836
- },{"../Decorators":254}],306:[function(require,module,exports){
53793
+ },{"../Decorators":255}],307:[function(require,module,exports){
52837
53794
  "use strict";
52838
53795
  /*!
52839
53796
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -53046,7 +54003,7 @@ __decorate([
53046
54003
  ], DecisionInfo.prototype, "toString", null);
53047
54004
  exports.DecisionInfo = DecisionInfo;
53048
54005
 
53049
- },{"../Decorators":254}],307:[function(require,module,exports){
54006
+ },{"../Decorators":255}],308:[function(require,module,exports){
53050
54007
  "use strict";
53051
54008
  /*!
53052
54009
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -53066,7 +54023,7 @@ class DecisionState extends ATNState_1.ATNState {
53066
54023
  }
53067
54024
  exports.DecisionState = DecisionState;
53068
54025
 
53069
- },{"./ATNState":293}],308:[function(require,module,exports){
54026
+ },{"./ATNState":294}],309:[function(require,module,exports){
53070
54027
  "use strict";
53071
54028
  /*!
53072
54029
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -53132,7 +54089,7 @@ EpsilonTransition = __decorate([
53132
54089
  ], EpsilonTransition);
53133
54090
  exports.EpsilonTransition = EpsilonTransition;
53134
54091
 
53135
- },{"../Decorators":254,"./Transition":349}],309:[function(require,module,exports){
54092
+ },{"../Decorators":255,"./Transition":350}],310:[function(require,module,exports){
53136
54093
  "use strict";
53137
54094
  /*!
53138
54095
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -53185,7 +54142,7 @@ ErrorInfo = __decorate([
53185
54142
  ], ErrorInfo);
53186
54143
  exports.ErrorInfo = ErrorInfo;
53187
54144
 
53188
- },{"../Decorators":254,"./DecisionEventInfo":305}],310:[function(require,module,exports){
54145
+ },{"../Decorators":255,"./DecisionEventInfo":306}],311:[function(require,module,exports){
53189
54146
  "use strict";
53190
54147
  /*!
53191
54148
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -53216,7 +54173,7 @@ __decorate([
53216
54173
  ], InvalidState.prototype, "stateType", null);
53217
54174
  exports.InvalidState = InvalidState;
53218
54175
 
53219
- },{"../Decorators":254,"./ATNStateType":294,"./BasicState":300}],311:[function(require,module,exports){
54176
+ },{"../Decorators":255,"./ATNStateType":295,"./BasicState":301}],312:[function(require,module,exports){
53220
54177
  "use strict";
53221
54178
  /*!
53222
54179
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -53438,7 +54395,7 @@ LL1Analyzer = __decorate([
53438
54395
  ], LL1Analyzer);
53439
54396
  exports.LL1Analyzer = LL1Analyzer;
53440
54397
 
53441
- },{"../Decorators":254,"../Token":279,"../misc/Array2DHashSet":358,"../misc/BitSet":361,"../misc/IntervalSet":367,"../misc/ObjectEqualityComparator":370,"./ATNConfig":288,"./AbstractPredicateTransition":295,"./NotSetTransition":325,"./PredictionContext":334,"./RuleStopState":340,"./RuleTransition":341,"./WildcardTransition":350}],312:[function(require,module,exports){
54398
+ },{"../Decorators":255,"../Token":280,"../misc/Array2DHashSet":359,"../misc/BitSet":362,"../misc/IntervalSet":368,"../misc/ObjectEqualityComparator":371,"./ATNConfig":289,"./AbstractPredicateTransition":296,"./NotSetTransition":326,"./PredictionContext":335,"./RuleStopState":341,"./RuleTransition":342,"./WildcardTransition":351}],313:[function(require,module,exports){
53442
54399
  "use strict";
53443
54400
  /*!
53444
54401
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -54155,7 +55112,7 @@ exports.LexerATNSimulator = LexerATNSimulator;
54155
55112
  })(LexerATNSimulator = exports.LexerATNSimulator || (exports.LexerATNSimulator = {}));
54156
55113
  exports.LexerATNSimulator = LexerATNSimulator;
54157
55114
 
54158
- },{"../Decorators":254,"../IntStream":260,"../Lexer":262,"../LexerNoViableAltException":264,"../Token":279,"../dfa/AcceptStateInfo":351,"../dfa/DFAState":354,"../misc/Interval":366,"./ATN":287,"./ATNConfig":288,"./ATNConfigSet":289,"./ATNSimulator":292,"./LexerActionExecutor":313,"./OrderedATNConfigSet":326,"./PredictionContext":334,"./RuleStopState":340,"assert":397}],313:[function(require,module,exports){
55115
+ },{"../Decorators":255,"../IntStream":261,"../Lexer":263,"../LexerNoViableAltException":265,"../Token":280,"../dfa/AcceptStateInfo":352,"../dfa/DFAState":355,"../misc/Interval":367,"./ATN":288,"./ATNConfig":289,"./ATNConfigSet":290,"./ATNSimulator":293,"./LexerActionExecutor":314,"./OrderedATNConfigSet":327,"./PredictionContext":335,"./RuleStopState":341,"assert":398}],314:[function(require,module,exports){
54159
55116
  "use strict";
54160
55117
  /*!
54161
55118
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -54356,7 +55313,7 @@ LexerActionExecutor = __decorate([
54356
55313
  ], LexerActionExecutor);
54357
55314
  exports.LexerActionExecutor = LexerActionExecutor;
54358
55315
 
54359
- },{"../Decorators":254,"../misc/ArrayEqualityComparator":359,"../misc/MurmurHash":369,"./LexerIndexedCustomAction":316}],314:[function(require,module,exports){
55316
+ },{"../Decorators":255,"../misc/ArrayEqualityComparator":360,"../misc/MurmurHash":370,"./LexerIndexedCustomAction":317}],315:[function(require,module,exports){
54360
55317
  "use strict";
54361
55318
  /*!
54362
55319
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -54461,7 +55418,7 @@ __decorate([
54461
55418
  ], LexerChannelAction.prototype, "toString", null);
54462
55419
  exports.LexerChannelAction = LexerChannelAction;
54463
55420
 
54464
- },{"../Decorators":254,"../misc/MurmurHash":369}],315:[function(require,module,exports){
55421
+ },{"../Decorators":255,"../misc/MurmurHash":370}],316:[function(require,module,exports){
54465
55422
  "use strict";
54466
55423
  /*!
54467
55424
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -54590,7 +55547,7 @@ __decorate([
54590
55547
  ], LexerCustomAction.prototype, "equals", null);
54591
55548
  exports.LexerCustomAction = LexerCustomAction;
54592
55549
 
54593
- },{"../Decorators":254,"../misc/MurmurHash":369}],316:[function(require,module,exports){
55550
+ },{"../Decorators":255,"../misc/MurmurHash":370}],317:[function(require,module,exports){
54594
55551
  "use strict";
54595
55552
  /*!
54596
55553
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -54725,7 +55682,7 @@ LexerIndexedCustomAction = __decorate([
54725
55682
  ], LexerIndexedCustomAction);
54726
55683
  exports.LexerIndexedCustomAction = LexerIndexedCustomAction;
54727
55684
 
54728
- },{"../Decorators":254,"../misc/MurmurHash":369}],317:[function(require,module,exports){
55685
+ },{"../Decorators":255,"../misc/MurmurHash":370}],318:[function(require,module,exports){
54729
55686
  "use strict";
54730
55687
  /*!
54731
55688
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -54830,7 +55787,7 @@ __decorate([
54830
55787
  ], LexerModeAction.prototype, "toString", null);
54831
55788
  exports.LexerModeAction = LexerModeAction;
54832
55789
 
54833
- },{"../Decorators":254,"../misc/MurmurHash":369}],318:[function(require,module,exports){
55790
+ },{"../Decorators":255,"../misc/MurmurHash":370}],319:[function(require,module,exports){
54834
55791
  "use strict";
54835
55792
  /*!
54836
55793
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -54926,7 +55883,7 @@ exports.LexerMoreAction = LexerMoreAction;
54926
55883
  LexerMoreAction.INSTANCE = new LexerMoreAction();
54927
55884
  })(LexerMoreAction = exports.LexerMoreAction || (exports.LexerMoreAction = {}));
54928
55885
 
54929
- },{"../Decorators":254,"../misc/MurmurHash":369}],319:[function(require,module,exports){
55886
+ },{"../Decorators":255,"../misc/MurmurHash":370}],320:[function(require,module,exports){
54930
55887
  "use strict";
54931
55888
  /*!
54932
55889
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -55022,7 +55979,7 @@ exports.LexerPopModeAction = LexerPopModeAction;
55022
55979
  LexerPopModeAction.INSTANCE = new LexerPopModeAction();
55023
55980
  })(LexerPopModeAction = exports.LexerPopModeAction || (exports.LexerPopModeAction = {}));
55024
55981
 
55025
- },{"../Decorators":254,"../misc/MurmurHash":369}],320:[function(require,module,exports){
55982
+ },{"../Decorators":255,"../misc/MurmurHash":370}],321:[function(require,module,exports){
55026
55983
  "use strict";
55027
55984
  /*!
55028
55985
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -55127,7 +56084,7 @@ __decorate([
55127
56084
  ], LexerPushModeAction.prototype, "toString", null);
55128
56085
  exports.LexerPushModeAction = LexerPushModeAction;
55129
56086
 
55130
- },{"../Decorators":254,"../misc/MurmurHash":369}],321:[function(require,module,exports){
56087
+ },{"../Decorators":255,"../misc/MurmurHash":370}],322:[function(require,module,exports){
55131
56088
  "use strict";
55132
56089
  /*!
55133
56090
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -55223,7 +56180,7 @@ exports.LexerSkipAction = LexerSkipAction;
55223
56180
  LexerSkipAction.INSTANCE = new LexerSkipAction();
55224
56181
  })(LexerSkipAction = exports.LexerSkipAction || (exports.LexerSkipAction = {}));
55225
56182
 
55226
- },{"../Decorators":254,"../misc/MurmurHash":369}],322:[function(require,module,exports){
56183
+ },{"../Decorators":255,"../misc/MurmurHash":370}],323:[function(require,module,exports){
55227
56184
  "use strict";
55228
56185
  /*!
55229
56186
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -55327,7 +56284,7 @@ __decorate([
55327
56284
  ], LexerTypeAction.prototype, "toString", null);
55328
56285
  exports.LexerTypeAction = LexerTypeAction;
55329
56286
 
55330
- },{"../Decorators":254,"../misc/MurmurHash":369}],323:[function(require,module,exports){
56287
+ },{"../Decorators":255,"../misc/MurmurHash":370}],324:[function(require,module,exports){
55331
56288
  "use strict";
55332
56289
  /*!
55333
56290
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -55379,7 +56336,7 @@ LookaheadEventInfo = __decorate([
55379
56336
  ], LookaheadEventInfo);
55380
56337
  exports.LookaheadEventInfo = LookaheadEventInfo;
55381
56338
 
55382
- },{"../Decorators":254,"./DecisionEventInfo":305}],324:[function(require,module,exports){
56339
+ },{"../Decorators":255,"./DecisionEventInfo":306}],325:[function(require,module,exports){
55383
56340
  "use strict";
55384
56341
  /*!
55385
56342
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -55408,7 +56365,7 @@ __decorate([
55408
56365
  ], LoopEndState.prototype, "stateType", null);
55409
56366
  exports.LoopEndState = LoopEndState;
55410
56367
 
55411
- },{"../Decorators":254,"./ATNState":293,"./ATNStateType":294}],325:[function(require,module,exports){
56368
+ },{"../Decorators":255,"./ATNState":294,"./ATNStateType":295}],326:[function(require,module,exports){
55412
56369
  "use strict";
55413
56370
  /*!
55414
56371
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -55457,7 +56414,7 @@ NotSetTransition = __decorate([
55457
56414
  ], NotSetTransition);
55458
56415
  exports.NotSetTransition = NotSetTransition;
55459
56416
 
55460
- },{"../Decorators":254,"./SetTransition":343}],326:[function(require,module,exports){
56417
+ },{"../Decorators":255,"./SetTransition":344}],327:[function(require,module,exports){
55461
56418
  "use strict";
55462
56419
  /*!
55463
56420
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -55512,7 +56469,7 @@ __decorate([
55512
56469
  ], OrderedATNConfigSet.prototype, "canMerge", null);
55513
56470
  exports.OrderedATNConfigSet = OrderedATNConfigSet;
55514
56471
 
55515
- },{"../Decorators":254,"./ATNConfigSet":289}],327:[function(require,module,exports){
56472
+ },{"../Decorators":255,"./ATNConfigSet":290}],328:[function(require,module,exports){
55516
56473
  "use strict";
55517
56474
  /*!
55518
56475
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -55674,7 +56631,7 @@ ParseInfo = __decorate([
55674
56631
  ], ParseInfo);
55675
56632
  exports.ParseInfo = ParseInfo;
55676
56633
 
55677
- },{"../Decorators":254}],328:[function(require,module,exports){
56634
+ },{"../Decorators":255}],329:[function(require,module,exports){
55678
56635
  "use strict";
55679
56636
  /*!
55680
56637
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -57947,7 +58904,7 @@ ParserATNSimulator = __decorate([
57947
58904
  ], ParserATNSimulator);
57948
58905
  exports.ParserATNSimulator = ParserATNSimulator;
57949
58906
 
57950
- },{"../Decorators":254,"../IntStream":260,"../NoViableAltException":266,"../ParserRuleContext":270,"../Token":279,"../VocabularyImpl":285,"../dfa/AcceptStateInfo":351,"../dfa/DFAState":354,"../misc/Array2DHashSet":358,"../misc/Arrays":360,"../misc/BitSet":361,"../misc/IntegerList":364,"../misc/Interval":366,"../misc/ObjectEqualityComparator":370,"./ATN":287,"./ATNConfig":288,"./ATNConfigSet":289,"./ATNSimulator":292,"./ATNStateType":294,"./ActionTransition":296,"./AtomTransition":298,"./ConflictInfo":303,"./DecisionState":307,"./NotSetTransition":325,"./PredictionContext":334,"./PredictionContextCache":335,"./PredictionMode":336,"./RuleStopState":340,"./RuleTransition":341,"./SemanticContext":342,"./SetTransition":343,"./SimulatorState":344,"assert":397}],329:[function(require,module,exports){
58907
+ },{"../Decorators":255,"../IntStream":261,"../NoViableAltException":267,"../ParserRuleContext":271,"../Token":280,"../VocabularyImpl":286,"../dfa/AcceptStateInfo":352,"../dfa/DFAState":355,"../misc/Array2DHashSet":359,"../misc/Arrays":361,"../misc/BitSet":362,"../misc/IntegerList":365,"../misc/Interval":367,"../misc/ObjectEqualityComparator":371,"./ATN":288,"./ATNConfig":289,"./ATNConfigSet":290,"./ATNSimulator":293,"./ATNStateType":295,"./ActionTransition":297,"./AtomTransition":299,"./ConflictInfo":304,"./DecisionState":308,"./NotSetTransition":326,"./PredictionContext":335,"./PredictionContextCache":336,"./PredictionMode":337,"./RuleStopState":341,"./RuleTransition":342,"./SemanticContext":343,"./SetTransition":344,"./SimulatorState":345,"assert":398}],330:[function(require,module,exports){
57951
58908
  "use strict";
57952
58909
  /*!
57953
58910
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -57980,7 +58937,7 @@ __decorate([
57980
58937
  ], PlusBlockStartState.prototype, "stateType", null);
57981
58938
  exports.PlusBlockStartState = PlusBlockStartState;
57982
58939
 
57983
- },{"../Decorators":254,"./ATNStateType":294,"./BlockStartState":302}],330:[function(require,module,exports){
58940
+ },{"../Decorators":255,"./ATNStateType":295,"./BlockStartState":303}],331:[function(require,module,exports){
57984
58941
  "use strict";
57985
58942
  /*!
57986
58943
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -58011,7 +58968,7 @@ __decorate([
58011
58968
  ], PlusLoopbackState.prototype, "stateType", null);
58012
58969
  exports.PlusLoopbackState = PlusLoopbackState;
58013
58970
 
58014
- },{"../Decorators":254,"./ATNStateType":294,"./DecisionState":307}],331:[function(require,module,exports){
58971
+ },{"../Decorators":255,"./ATNStateType":295,"./DecisionState":308}],332:[function(require,module,exports){
58015
58972
  "use strict";
58016
58973
  /*!
58017
58974
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -58074,7 +59031,7 @@ PrecedencePredicateTransition = __decorate([
58074
59031
  ], PrecedencePredicateTransition);
58075
59032
  exports.PrecedencePredicateTransition = PrecedencePredicateTransition;
58076
59033
 
58077
- },{"../Decorators":254,"./AbstractPredicateTransition":295,"./SemanticContext":342}],332:[function(require,module,exports){
59034
+ },{"../Decorators":255,"./AbstractPredicateTransition":296,"./SemanticContext":343}],333:[function(require,module,exports){
58078
59035
  "use strict";
58079
59036
  /*!
58080
59037
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -58137,7 +59094,7 @@ PredicateEvalInfo = __decorate([
58137
59094
  ], PredicateEvalInfo);
58138
59095
  exports.PredicateEvalInfo = PredicateEvalInfo;
58139
59096
 
58140
- },{"../Decorators":254,"./DecisionEventInfo":305}],333:[function(require,module,exports){
59097
+ },{"../Decorators":255,"./DecisionEventInfo":306}],334:[function(require,module,exports){
58141
59098
  "use strict";
58142
59099
  /*!
58143
59100
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -58203,7 +59160,7 @@ PredicateTransition = __decorate([
58203
59160
  ], PredicateTransition);
58204
59161
  exports.PredicateTransition = PredicateTransition;
58205
59162
 
58206
- },{"../Decorators":254,"./AbstractPredicateTransition":295,"./SemanticContext":342}],334:[function(require,module,exports){
59163
+ },{"../Decorators":255,"./AbstractPredicateTransition":296,"./SemanticContext":343}],335:[function(require,module,exports){
58207
59164
  "use strict";
58208
59165
  /*!
58209
59166
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -58894,7 +59851,7 @@ exports.SingletonPredictionContext = SingletonPredictionContext;
58894
59851
  PredictionContext.IdentityEqualityComparator = IdentityEqualityComparator;
58895
59852
  })(PredictionContext = exports.PredictionContext || (exports.PredictionContext = {}));
58896
59853
 
58897
- },{"../Decorators":254,"../misc/Array2DHashMap":357,"../misc/Array2DHashSet":358,"../misc/Arrays":360,"../misc/MurmurHash":369,"./PredictionContextCache":335,"assert":397}],335:[function(require,module,exports){
59854
+ },{"../Decorators":255,"../misc/Array2DHashMap":358,"../misc/Array2DHashSet":359,"../misc/Arrays":361,"../misc/MurmurHash":370,"./PredictionContextCache":336,"assert":398}],336:[function(require,module,exports){
58898
59855
  "use strict";
58899
59856
  /*!
58900
59857
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -59035,7 +59992,7 @@ PredictionContextCache.UNCACHED = new PredictionContextCache(false);
59035
59992
  PredictionContextCache.IdentityCommutativePredictionContextOperands = IdentityCommutativePredictionContextOperands;
59036
59993
  })(PredictionContextCache = exports.PredictionContextCache || (exports.PredictionContextCache = {}));
59037
59994
 
59038
- },{"../Decorators":254,"../misc/Array2DHashMap":357,"../misc/ObjectEqualityComparator":370,"./PredictionContext":334,"assert":397}],336:[function(require,module,exports){
59995
+ },{"../Decorators":255,"../misc/Array2DHashMap":358,"../misc/ObjectEqualityComparator":371,"./PredictionContext":335,"assert":398}],337:[function(require,module,exports){
59039
59996
  "use strict";
59040
59997
  /*!
59041
59998
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -59196,7 +60153,7 @@ var PredictionMode;
59196
60153
  PredictionMode.allConfigsInRuleStopStates = allConfigsInRuleStopStates;
59197
60154
  })(PredictionMode = exports.PredictionMode || (exports.PredictionMode = {}));
59198
60155
 
59199
- },{"../Decorators":254,"../misc/Array2DHashMap":357,"../misc/MurmurHash":369,"./RuleStopState":340}],337:[function(require,module,exports){
60156
+ },{"../Decorators":255,"../misc/Array2DHashMap":358,"../misc/MurmurHash":370,"./RuleStopState":341}],338:[function(require,module,exports){
59200
60157
  (function (process){(function (){
59201
60158
  "use strict";
59202
60159
  /*!
@@ -59465,7 +60422,7 @@ __decorate([
59465
60422
  exports.ProfilingATNSimulator = ProfilingATNSimulator;
59466
60423
 
59467
60424
  }).call(this)}).call(this,require('_process'))
59468
- },{"../Decorators":254,"./ATN":287,"./ATNSimulator":292,"./AmbiguityInfo":297,"./ContextSensitivityInfo":304,"./DecisionInfo":306,"./ErrorInfo":309,"./LookaheadEventInfo":323,"./ParserATNSimulator":328,"./PredicateEvalInfo":332,"./SemanticContext":342,"./SimulatorState":344,"_process":456}],338:[function(require,module,exports){
60425
+ },{"../Decorators":255,"./ATN":288,"./ATNSimulator":293,"./AmbiguityInfo":298,"./ContextSensitivityInfo":305,"./DecisionInfo":307,"./ErrorInfo":310,"./LookaheadEventInfo":324,"./ParserATNSimulator":329,"./PredicateEvalInfo":333,"./SemanticContext":343,"./SimulatorState":345,"_process":457}],339:[function(require,module,exports){
59469
60426
  "use strict";
59470
60427
  /*!
59471
60428
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -59523,7 +60480,7 @@ RangeTransition = __decorate([
59523
60480
  ], RangeTransition);
59524
60481
  exports.RangeTransition = RangeTransition;
59525
60482
 
59526
- },{"../Decorators":254,"../misc/IntervalSet":367,"./Transition":349}],339:[function(require,module,exports){
60483
+ },{"../Decorators":255,"../misc/IntervalSet":368,"./Transition":350}],340:[function(require,module,exports){
59527
60484
  "use strict";
59528
60485
  /*!
59529
60486
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -59556,7 +60513,7 @@ __decorate([
59556
60513
  ], RuleStartState.prototype, "stateType", null);
59557
60514
  exports.RuleStartState = RuleStartState;
59558
60515
 
59559
- },{"../Decorators":254,"./ATNState":293,"./ATNStateType":294}],340:[function(require,module,exports){
60516
+ },{"../Decorators":255,"./ATNState":294,"./ATNStateType":295}],341:[function(require,module,exports){
59560
60517
  "use strict";
59561
60518
  /*!
59562
60519
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -59595,7 +60552,7 @@ __decorate([
59595
60552
  ], RuleStopState.prototype, "stateType", null);
59596
60553
  exports.RuleStopState = RuleStopState;
59597
60554
 
59598
- },{"../Decorators":254,"./ATNState":293,"./ATNStateType":294}],341:[function(require,module,exports){
60555
+ },{"../Decorators":255,"./ATNState":294,"./ATNStateType":295}],342:[function(require,module,exports){
59599
60556
  "use strict";
59600
60557
  /*!
59601
60558
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -59651,7 +60608,7 @@ RuleTransition = __decorate([
59651
60608
  ], RuleTransition);
59652
60609
  exports.RuleTransition = RuleTransition;
59653
60610
 
59654
- },{"../Decorators":254,"./Transition":349}],342:[function(require,module,exports){
60611
+ },{"../Decorators":255,"./Transition":350}],343:[function(require,module,exports){
59655
60612
  "use strict";
59656
60613
  /*!
59657
60614
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -60131,7 +61088,7 @@ exports.SemanticContext = SemanticContext;
60131
61088
  SemanticContext.OR = OR;
60132
61089
  })(SemanticContext = exports.SemanticContext || (exports.SemanticContext = {}));
60133
61090
 
60134
- },{"../Decorators":254,"../misc/Array2DHashSet":358,"../misc/ArrayEqualityComparator":359,"../misc/MurmurHash":369,"../misc/ObjectEqualityComparator":370,"../misc/Utils":373}],343:[function(require,module,exports){
61091
+ },{"../Decorators":255,"../misc/Array2DHashSet":359,"../misc/ArrayEqualityComparator":360,"../misc/MurmurHash":370,"../misc/ObjectEqualityComparator":371,"../misc/Utils":374}],344:[function(require,module,exports){
60135
61092
  "use strict";
60136
61093
  /*!
60137
61094
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -60197,7 +61154,7 @@ SetTransition = __decorate([
60197
61154
  ], SetTransition);
60198
61155
  exports.SetTransition = SetTransition;
60199
61156
 
60200
- },{"../Decorators":254,"../Token":279,"../misc/IntervalSet":367,"./Transition":349}],344:[function(require,module,exports){
61157
+ },{"../Decorators":255,"../Token":280,"../misc/IntervalSet":368,"./Transition":350}],345:[function(require,module,exports){
60201
61158
  "use strict";
60202
61159
  /*!
60203
61160
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -60233,7 +61190,7 @@ SimulatorState = __decorate([
60233
61190
  ], SimulatorState);
60234
61191
  exports.SimulatorState = SimulatorState;
60235
61192
 
60236
- },{"../Decorators":254,"../ParserRuleContext":270}],345:[function(require,module,exports){
61193
+ },{"../Decorators":255,"../ParserRuleContext":271}],346:[function(require,module,exports){
60237
61194
  "use strict";
60238
61195
  /*!
60239
61196
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -60261,7 +61218,7 @@ __decorate([
60261
61218
  ], StarBlockStartState.prototype, "stateType", null);
60262
61219
  exports.StarBlockStartState = StarBlockStartState;
60263
61220
 
60264
- },{"../Decorators":254,"./ATNStateType":294,"./BlockStartState":302}],346:[function(require,module,exports){
61221
+ },{"../Decorators":255,"./ATNStateType":295,"./BlockStartState":303}],347:[function(require,module,exports){
60265
61222
  "use strict";
60266
61223
  /*!
60267
61224
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -60318,7 +61275,7 @@ __decorate([
60318
61275
  ], StarLoopEntryState.prototype, "stateType", null);
60319
61276
  exports.StarLoopEntryState = StarLoopEntryState;
60320
61277
 
60321
- },{"../Decorators":254,"../misc/BitSet":361,"./ATNStateType":294,"./DecisionState":307}],347:[function(require,module,exports){
61278
+ },{"../Decorators":255,"../misc/BitSet":362,"./ATNStateType":295,"./DecisionState":308}],348:[function(require,module,exports){
60322
61279
  "use strict";
60323
61280
  /*!
60324
61281
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -60349,7 +61306,7 @@ __decorate([
60349
61306
  ], StarLoopbackState.prototype, "stateType", null);
60350
61307
  exports.StarLoopbackState = StarLoopbackState;
60351
61308
 
60352
- },{"../Decorators":254,"./ATNState":293,"./ATNStateType":294}],348:[function(require,module,exports){
61309
+ },{"../Decorators":255,"./ATNState":294,"./ATNStateType":295}],349:[function(require,module,exports){
60353
61310
  "use strict";
60354
61311
  /*!
60355
61312
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -60378,7 +61335,7 @@ __decorate([
60378
61335
  ], TokensStartState.prototype, "stateType", null);
60379
61336
  exports.TokensStartState = TokensStartState;
60380
61337
 
60381
- },{"../Decorators":254,"./ATNStateType":294,"./DecisionState":307}],349:[function(require,module,exports){
61338
+ },{"../Decorators":255,"./ATNStateType":295,"./DecisionState":308}],350:[function(require,module,exports){
60382
61339
  "use strict";
60383
61340
  /*!
60384
61341
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -60452,7 +61409,7 @@ Transition = __decorate([
60452
61409
  ], Transition);
60453
61410
  exports.Transition = Transition;
60454
61411
 
60455
- },{"../Decorators":254}],350:[function(require,module,exports){
61412
+ },{"../Decorators":255}],351:[function(require,module,exports){
60456
61413
  "use strict";
60457
61414
  /*!
60458
61415
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -60500,7 +61457,7 @@ WildcardTransition = __decorate([
60500
61457
  ], WildcardTransition);
60501
61458
  exports.WildcardTransition = WildcardTransition;
60502
61459
 
60503
- },{"../Decorators":254,"./Transition":349}],351:[function(require,module,exports){
61460
+ },{"../Decorators":255,"./Transition":350}],352:[function(require,module,exports){
60504
61461
  "use strict";
60505
61462
  /*!
60506
61463
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -60542,7 +61499,7 @@ class AcceptStateInfo {
60542
61499
  }
60543
61500
  exports.AcceptStateInfo = AcceptStateInfo;
60544
61501
 
60545
- },{}],352:[function(require,module,exports){
61502
+ },{}],353:[function(require,module,exports){
60546
61503
  "use strict";
60547
61504
  /*!
60548
61505
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -60717,7 +61674,7 @@ DFA = __decorate([
60717
61674
  ], DFA);
60718
61675
  exports.DFA = DFA;
60719
61676
 
60720
- },{"../Decorators":254,"../VocabularyImpl":285,"../atn/ATNConfigSet":289,"../atn/StarLoopEntryState":346,"../misc/Array2DHashSet":358,"../misc/ObjectEqualityComparator":370,"./DFASerializer":353,"./DFAState":354,"./LexerDFASerializer":355}],353:[function(require,module,exports){
61677
+ },{"../Decorators":255,"../VocabularyImpl":286,"../atn/ATNConfigSet":290,"../atn/StarLoopEntryState":347,"../misc/Array2DHashSet":359,"../misc/ObjectEqualityComparator":371,"./DFASerializer":354,"./DFAState":355,"./LexerDFASerializer":356}],354:[function(require,module,exports){
60721
61678
  "use strict";
60722
61679
  /*!
60723
61680
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -60859,7 +61816,7 @@ __decorate([
60859
61816
  ], DFASerializer.prototype, "toString", null);
60860
61817
  exports.DFASerializer = DFASerializer;
60861
61818
 
60862
- },{"../Decorators":254,"../Recognizer":274,"../VocabularyImpl":285,"../atn/ATNSimulator":292,"../atn/PredictionContext":334}],354:[function(require,module,exports){
61819
+ },{"../Decorators":255,"../Recognizer":275,"../VocabularyImpl":286,"../atn/ATNSimulator":293,"../atn/PredictionContext":335}],355:[function(require,module,exports){
60863
61820
  "use strict";
60864
61821
  /*!
60865
61822
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -61090,7 +62047,7 @@ exports.DFAState = DFAState;
61090
62047
  DFAState.PredPrediction = PredPrediction;
61091
62048
  })(DFAState = exports.DFAState || (exports.DFAState = {}));
61092
62049
 
61093
- },{"../Decorators":254,"../atn/ATN":287,"../atn/PredictionContext":334,"../misc/BitSet":361,"../misc/MurmurHash":369,"assert":397}],355:[function(require,module,exports){
62050
+ },{"../Decorators":255,"../atn/ATN":288,"../atn/PredictionContext":335,"../misc/BitSet":362,"../misc/MurmurHash":370,"assert":398}],356:[function(require,module,exports){
61094
62051
  "use strict";
61095
62052
  /*!
61096
62053
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -61127,7 +62084,7 @@ LexerDFASerializer = __decorate([
61127
62084
  ], LexerDFASerializer);
61128
62085
  exports.LexerDFASerializer = LexerDFASerializer;
61129
62086
 
61130
- },{"../Decorators":254,"../VocabularyImpl":285,"./DFASerializer":353}],356:[function(require,module,exports){
62087
+ },{"../Decorators":255,"../VocabularyImpl":286,"./DFASerializer":354}],357:[function(require,module,exports){
61131
62088
  "use strict";
61132
62089
  /*!
61133
62090
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -61193,7 +62150,7 @@ __exportStar(require("./Vocabulary"), exports);
61193
62150
  __exportStar(require("./VocabularyImpl"), exports);
61194
62151
  __exportStar(require("./WritableToken"), exports);
61195
62152
 
61196
- },{"./ANTLRErrorListener":241,"./ANTLRErrorStrategy":242,"./ANTLRInputStream":243,"./BailErrorStrategy":244,"./BufferedTokenStream":245,"./CharStream":246,"./CharStreams":247,"./CodePointBuffer":248,"./CodePointCharStream":249,"./CommonToken":250,"./CommonTokenFactory":251,"./CommonTokenStream":252,"./ConsoleErrorListener":253,"./DefaultErrorStrategy":255,"./Dependents":256,"./DiagnosticErrorListener":257,"./FailedPredicateException":258,"./InputMismatchException":259,"./IntStream":260,"./InterpreterRuleContext":261,"./Lexer":262,"./LexerInterpreter":263,"./LexerNoViableAltException":264,"./ListTokenSource":265,"./NoViableAltException":266,"./Parser":267,"./ParserErrorListener":268,"./ParserInterpreter":269,"./ParserRuleContext":270,"./ProxyErrorListener":271,"./ProxyParserErrorListener":272,"./RecognitionException":273,"./Recognizer":274,"./RuleContext":275,"./RuleContextWithAltNum":276,"./RuleDependency":277,"./RuleVersion":278,"./Token":279,"./TokenFactory":280,"./TokenSource":281,"./TokenStream":282,"./TokenStreamRewriter":283,"./Vocabulary":284,"./VocabularyImpl":285,"./WritableToken":286}],357:[function(require,module,exports){
62153
+ },{"./ANTLRErrorListener":242,"./ANTLRErrorStrategy":243,"./ANTLRInputStream":244,"./BailErrorStrategy":245,"./BufferedTokenStream":246,"./CharStream":247,"./CharStreams":248,"./CodePointBuffer":249,"./CodePointCharStream":250,"./CommonToken":251,"./CommonTokenFactory":252,"./CommonTokenStream":253,"./ConsoleErrorListener":254,"./DefaultErrorStrategy":256,"./Dependents":257,"./DiagnosticErrorListener":258,"./FailedPredicateException":259,"./InputMismatchException":260,"./IntStream":261,"./InterpreterRuleContext":262,"./Lexer":263,"./LexerInterpreter":264,"./LexerNoViableAltException":265,"./ListTokenSource":266,"./NoViableAltException":267,"./Parser":268,"./ParserErrorListener":269,"./ParserInterpreter":270,"./ParserRuleContext":271,"./ProxyErrorListener":272,"./ProxyParserErrorListener":273,"./RecognitionException":274,"./Recognizer":275,"./RuleContext":276,"./RuleContextWithAltNum":277,"./RuleDependency":278,"./RuleVersion":279,"./Token":280,"./TokenFactory":281,"./TokenSource":282,"./TokenStream":283,"./TokenStreamRewriter":284,"./Vocabulary":285,"./VocabularyImpl":286,"./WritableToken":287}],358:[function(require,module,exports){
61197
62154
  "use strict";
61198
62155
  /*!
61199
62156
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -61276,7 +62233,7 @@ class Array2DHashMap {
61276
62233
  }
61277
62234
  exports.Array2DHashMap = Array2DHashMap;
61278
62235
 
61279
- },{"./Array2DHashSet":358}],358:[function(require,module,exports){
62236
+ },{"./Array2DHashSet":359}],359:[function(require,module,exports){
61280
62237
  "use strict";
61281
62238
  /*!
61282
62239
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -61643,7 +62600,7 @@ __decorate([
61643
62600
  ], Array2DHashSet.prototype, "createBuckets", null);
61644
62601
  exports.Array2DHashSet = Array2DHashSet;
61645
62602
 
61646
- },{"../Decorators":254,"./DefaultEqualityComparator":363,"./MurmurHash":369,"assert":397}],359:[function(require,module,exports){
62603
+ },{"../Decorators":255,"./DefaultEqualityComparator":364,"./MurmurHash":370,"assert":398}],360:[function(require,module,exports){
61647
62604
  "use strict";
61648
62605
  /*!
61649
62606
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -61715,7 +62672,7 @@ __decorate([
61715
62672
  ], ArrayEqualityComparator.prototype, "equals", null);
61716
62673
  exports.ArrayEqualityComparator = ArrayEqualityComparator;
61717
62674
 
61718
- },{"../Decorators":254,"./MurmurHash":369,"./ObjectEqualityComparator":370}],360:[function(require,module,exports){
62675
+ },{"../Decorators":255,"./MurmurHash":370,"./ObjectEqualityComparator":371}],361:[function(require,module,exports){
61719
62676
  "use strict";
61720
62677
  /*!
61721
62678
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -61785,7 +62742,7 @@ var Arrays;
61785
62742
  Arrays.toString = toString;
61786
62743
  })(Arrays = exports.Arrays || (exports.Arrays = {}));
61787
62744
 
61788
- },{}],361:[function(require,module,exports){
62745
+ },{}],362:[function(require,module,exports){
61789
62746
  "use strict";
61790
62747
  /*!
61791
62748
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -62457,7 +63414,7 @@ class BitSetIterator {
62457
63414
  [Symbol.iterator]() { return this; }
62458
63415
  }
62459
63416
 
62460
- },{"./MurmurHash":369,"util":461}],362:[function(require,module,exports){
63417
+ },{"./MurmurHash":370,"util":462}],363:[function(require,module,exports){
62461
63418
  "use strict";
62462
63419
  /*!
62463
63420
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -62478,7 +63435,7 @@ function isSupplementaryCodePoint(ch) {
62478
63435
  }
62479
63436
  exports.isSupplementaryCodePoint = isSupplementaryCodePoint;
62480
63437
 
62481
- },{}],363:[function(require,module,exports){
63438
+ },{}],364:[function(require,module,exports){
62482
63439
  "use strict";
62483
63440
  /*!
62484
63441
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -62549,7 +63506,7 @@ __decorate([
62549
63506
  ], DefaultEqualityComparator.prototype, "equals", null);
62550
63507
  exports.DefaultEqualityComparator = DefaultEqualityComparator;
62551
63508
 
62552
- },{"../Decorators":254,"./MurmurHash":369,"./ObjectEqualityComparator":370}],364:[function(require,module,exports){
63509
+ },{"../Decorators":255,"./MurmurHash":370,"./ObjectEqualityComparator":371}],365:[function(require,module,exports){
62553
63510
  "use strict";
62554
63511
  /*!
62555
63512
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -62843,7 +63800,7 @@ __decorate([
62843
63800
  ], IntegerList.prototype, "toString", null);
62844
63801
  exports.IntegerList = IntegerList;
62845
63802
 
62846
- },{"../Decorators":254,"./Arrays":360}],365:[function(require,module,exports){
63803
+ },{"../Decorators":255,"./Arrays":361}],366:[function(require,module,exports){
62847
63804
  "use strict";
62848
63805
  /*!
62849
63806
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -62873,7 +63830,7 @@ class IntegerStack extends IntegerList_1.IntegerList {
62873
63830
  }
62874
63831
  exports.IntegerStack = IntegerStack;
62875
63832
 
62876
- },{"./IntegerList":364}],366:[function(require,module,exports){
63833
+ },{"./IntegerList":365}],367:[function(require,module,exports){
62877
63834
  "use strict";
62878
63835
  /*!
62879
63836
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -63016,7 +63973,7 @@ __decorate([
63016
63973
  ], Interval.prototype, "toString", null);
63017
63974
  exports.Interval = Interval;
63018
63975
 
63019
- },{"../Decorators":254}],367:[function(require,module,exports){
63976
+ },{"../Decorators":255}],368:[function(require,module,exports){
63020
63977
  "use strict";
63021
63978
  /*!
63022
63979
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -63662,7 +64619,7 @@ __decorate([
63662
64619
  ], IntervalSet, "subtract", null);
63663
64620
  exports.IntervalSet = IntervalSet;
63664
64621
 
63665
- },{"../Decorators":254,"../Lexer":262,"../Token":279,"./ArrayEqualityComparator":359,"./IntegerList":364,"./Interval":366,"./MurmurHash":369}],368:[function(require,module,exports){
64622
+ },{"../Decorators":255,"../Lexer":263,"../Token":280,"./ArrayEqualityComparator":360,"./IntegerList":365,"./Interval":367,"./MurmurHash":370}],369:[function(require,module,exports){
63666
64623
  "use strict";
63667
64624
  /*!
63668
64625
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -63695,7 +64652,7 @@ class MultiMap extends Map {
63695
64652
  }
63696
64653
  exports.MultiMap = MultiMap;
63697
64654
 
63698
- },{}],369:[function(require,module,exports){
64655
+ },{}],370:[function(require,module,exports){
63699
64656
  "use strict";
63700
64657
  /*!
63701
64658
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -63810,7 +64767,7 @@ var MurmurHash;
63810
64767
  }
63811
64768
  })(MurmurHash = exports.MurmurHash || (exports.MurmurHash = {}));
63812
64769
 
63813
- },{}],370:[function(require,module,exports){
64770
+ },{}],371:[function(require,module,exports){
63814
64771
  "use strict";
63815
64772
  /*!
63816
64773
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -63869,7 +64826,7 @@ __decorate([
63869
64826
  ], ObjectEqualityComparator.prototype, "equals", null);
63870
64827
  exports.ObjectEqualityComparator = ObjectEqualityComparator;
63871
64828
 
63872
- },{"../Decorators":254}],371:[function(require,module,exports){
64829
+ },{"../Decorators":255}],372:[function(require,module,exports){
63873
64830
  "use strict";
63874
64831
  /*!
63875
64832
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -63898,7 +64855,7 @@ class ParseCancellationException extends Error {
63898
64855
  }
63899
64856
  exports.ParseCancellationException = ParseCancellationException;
63900
64857
 
63901
- },{}],372:[function(require,module,exports){
64858
+ },{}],373:[function(require,module,exports){
63902
64859
  "use strict";
63903
64860
  /*!
63904
64861
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -63952,7 +64909,7 @@ class UUID {
63952
64909
  }
63953
64910
  exports.UUID = UUID;
63954
64911
 
63955
- },{"./MurmurHash":369}],373:[function(require,module,exports){
64912
+ },{"./MurmurHash":370}],374:[function(require,module,exports){
63956
64913
  "use strict";
63957
64914
  /*!
63958
64915
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -64127,7 +65084,7 @@ exports.toCharArray = toCharArray;
64127
65084
  // return s;
64128
65085
  // }
64129
65086
 
64130
- },{}],374:[function(require,module,exports){
65087
+ },{}],375:[function(require,module,exports){
64131
65088
  "use strict";
64132
65089
  /*!
64133
65090
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -64163,7 +65120,7 @@ __decorate([
64163
65120
  ], ErrorNode.prototype, "accept", null);
64164
65121
  exports.ErrorNode = ErrorNode;
64165
65122
 
64166
- },{"../Decorators":254,"./TerminalNode":377}],375:[function(require,module,exports){
65123
+ },{"../Decorators":255,"./TerminalNode":378}],376:[function(require,module,exports){
64167
65124
  "use strict";
64168
65125
  /*!
64169
65126
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -64268,7 +65225,7 @@ exports.ParseTreeWalker = ParseTreeWalker;
64268
65225
  ParseTreeWalker.DEFAULT = new ParseTreeWalker();
64269
65226
  })(ParseTreeWalker = exports.ParseTreeWalker || (exports.ParseTreeWalker = {}));
64270
65227
 
64271
- },{"./ErrorNode":374,"./RuleNode":376,"./TerminalNode":377}],376:[function(require,module,exports){
65228
+ },{"./ErrorNode":375,"./RuleNode":377,"./TerminalNode":378}],377:[function(require,module,exports){
64272
65229
  "use strict";
64273
65230
  /*!
64274
65231
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -64280,7 +65237,7 @@ class RuleNode {
64280
65237
  }
64281
65238
  exports.RuleNode = RuleNode;
64282
65239
 
64283
- },{}],377:[function(require,module,exports){
65240
+ },{}],378:[function(require,module,exports){
64284
65241
  "use strict";
64285
65242
  /*!
64286
65243
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -64372,7 +65329,7 @@ __decorate([
64372
65329
  ], TerminalNode.prototype, "toString", null);
64373
65330
  exports.TerminalNode = TerminalNode;
64374
65331
 
64375
- },{"../Decorators":254,"../Token":279,"../misc/Interval":366}],378:[function(require,module,exports){
65332
+ },{"../Decorators":255,"../Token":280,"../misc/Interval":367}],379:[function(require,module,exports){
64376
65333
  "use strict";
64377
65334
  /*!
64378
65335
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -64616,7 +65573,7 @@ __decorate([
64616
65573
  ], Trees, "getRootOfSubtreeEnclosingRegion", null);
64617
65574
  exports.Trees = Trees;
64618
65575
 
64619
- },{"../CommonToken":250,"../Decorators":254,"../Parser":267,"../ParserRuleContext":270,"../Token":279,"../atn/ATN":287,"../misc/Utils":373,"./ErrorNode":374,"./RuleNode":376,"./TerminalNode":377}],379:[function(require,module,exports){
65576
+ },{"../CommonToken":251,"../Decorators":255,"../Parser":268,"../ParserRuleContext":271,"../Token":280,"../atn/ATN":288,"../misc/Utils":374,"./ErrorNode":375,"./RuleNode":377,"./TerminalNode":378}],380:[function(require,module,exports){
64620
65577
  "use strict";
64621
65578
  /*!
64622
65579
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -64640,7 +65597,7 @@ class Chunk {
64640
65597
  }
64641
65598
  exports.Chunk = Chunk;
64642
65599
 
64643
- },{}],380:[function(require,module,exports){
65600
+ },{}],381:[function(require,module,exports){
64644
65601
  "use strict";
64645
65602
  /*!
64646
65603
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -64820,7 +65777,7 @@ ParseTreeMatch = __decorate([
64820
65777
  ], ParseTreeMatch);
64821
65778
  exports.ParseTreeMatch = ParseTreeMatch;
64822
65779
 
64823
- },{"../../Decorators":254}],381:[function(require,module,exports){
65780
+ },{"../../Decorators":255}],382:[function(require,module,exports){
64824
65781
  "use strict";
64825
65782
  /*!
64826
65783
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -64978,7 +65935,7 @@ ParseTreePattern = __decorate([
64978
65935
  ], ParseTreePattern);
64979
65936
  exports.ParseTreePattern = ParseTreePattern;
64980
65937
 
64981
- },{"../../Decorators":254,"../xpath/XPath":387}],382:[function(require,module,exports){
65938
+ },{"../../Decorators":255,"../xpath/XPath":388}],383:[function(require,module,exports){
64982
65939
  "use strict";
64983
65940
  /*!
64984
65941
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -65456,7 +66413,7 @@ exports.ParseTreePatternMatcher = ParseTreePatternMatcher;
65456
66413
  ParseTreePatternMatcher.StartRuleDoesNotConsumeFullPattern = StartRuleDoesNotConsumeFullPattern;
65457
66414
  })(ParseTreePatternMatcher = exports.ParseTreePatternMatcher || (exports.ParseTreePatternMatcher = {}));
65458
66415
 
65459
- },{"../../BailErrorStrategy":244,"../../CharStreams":247,"../../CommonTokenStream":252,"../../Decorators":254,"../../ListTokenSource":265,"../../ParserInterpreter":269,"../../ParserRuleContext":270,"../../RecognitionException":273,"../../Token":279,"../../misc/MultiMap":368,"../../misc/ParseCancellationException":371,"../RuleNode":376,"../TerminalNode":377,"./ParseTreeMatch":380,"./ParseTreePattern":381,"./RuleTagToken":383,"./TagChunk":384,"./TextChunk":385,"./TokenTagToken":386}],383:[function(require,module,exports){
66416
+ },{"../../BailErrorStrategy":245,"../../CharStreams":248,"../../CommonTokenStream":253,"../../Decorators":255,"../../ListTokenSource":266,"../../ParserInterpreter":270,"../../ParserRuleContext":271,"../../RecognitionException":274,"../../Token":280,"../../misc/MultiMap":369,"../../misc/ParseCancellationException":372,"../RuleNode":377,"../TerminalNode":378,"./ParseTreeMatch":381,"./ParseTreePattern":382,"./RuleTagToken":384,"./TagChunk":385,"./TextChunk":386,"./TokenTagToken":387}],384:[function(require,module,exports){
65460
66417
  "use strict";
65461
66418
  /*!
65462
66419
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -65654,7 +66611,7 @@ RuleTagToken = __decorate([
65654
66611
  ], RuleTagToken);
65655
66612
  exports.RuleTagToken = RuleTagToken;
65656
66613
 
65657
- },{"../../Decorators":254,"../../Token":279}],384:[function(require,module,exports){
66614
+ },{"../../Decorators":255,"../../Token":280}],385:[function(require,module,exports){
65658
66615
  "use strict";
65659
66616
  /*!
65660
66617
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -65741,7 +66698,7 @@ __decorate([
65741
66698
  ], TagChunk.prototype, "toString", null);
65742
66699
  exports.TagChunk = TagChunk;
65743
66700
 
65744
- },{"../../Decorators":254,"./Chunk":379}],385:[function(require,module,exports){
66701
+ },{"../../Decorators":255,"./Chunk":380}],386:[function(require,module,exports){
65745
66702
  "use strict";
65746
66703
  /*!
65747
66704
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -65811,7 +66768,7 @@ TextChunk = __decorate([
65811
66768
  ], TextChunk);
65812
66769
  exports.TextChunk = TextChunk;
65813
66770
 
65814
- },{"../../Decorators":254,"./Chunk":379}],386:[function(require,module,exports){
66771
+ },{"../../Decorators":255,"./Chunk":380}],387:[function(require,module,exports){
65815
66772
  "use strict";
65816
66773
  /*!
65817
66774
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -65906,7 +66863,7 @@ TokenTagToken = __decorate([
65906
66863
  ], TokenTagToken);
65907
66864
  exports.TokenTagToken = TokenTagToken;
65908
66865
 
65909
- },{"../../CommonToken":250,"../../Decorators":254}],387:[function(require,module,exports){
66866
+ },{"../../CommonToken":251,"../../Decorators":255}],388:[function(require,module,exports){
65910
66867
  "use strict";
65911
66868
  /*!
65912
66869
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -66103,7 +67060,7 @@ exports.XPath = XPath;
66103
67060
  XPath.WILDCARD = "*"; // word not operator/separator
66104
67061
  XPath.NOT = "!"; // word for invert operator
66105
67062
 
66106
- },{"../../CharStreams":247,"../../CommonTokenStream":252,"../../LexerNoViableAltException":264,"../../ParserRuleContext":270,"../../Token":279,"./XPathLexer":389,"./XPathLexerErrorListener":390,"./XPathRuleAnywhereElement":391,"./XPathRuleElement":392,"./XPathTokenAnywhereElement":393,"./XPathTokenElement":394,"./XPathWildcardAnywhereElement":395,"./XPathWildcardElement":396}],388:[function(require,module,exports){
67063
+ },{"../../CharStreams":248,"../../CommonTokenStream":253,"../../LexerNoViableAltException":265,"../../ParserRuleContext":271,"../../Token":280,"./XPathLexer":390,"./XPathLexerErrorListener":391,"./XPathRuleAnywhereElement":392,"./XPathRuleElement":393,"./XPathTokenAnywhereElement":394,"./XPathTokenElement":395,"./XPathWildcardAnywhereElement":396,"./XPathWildcardElement":397}],389:[function(require,module,exports){
66107
67064
  "use strict";
66108
67065
  /*!
66109
67066
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -66138,7 +67095,7 @@ __decorate([
66138
67095
  ], XPathElement.prototype, "toString", null);
66139
67096
  exports.XPathElement = XPathElement;
66140
67097
 
66141
- },{"../../Decorators":254}],389:[function(require,module,exports){
67098
+ },{"../../Decorators":255}],390:[function(require,module,exports){
66142
67099
  "use strict";
66143
67100
  // Generated from XPathLexer.g4 by ANTLR 4.9.0-SNAPSHOT
66144
67101
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -66613,7 +67570,7 @@ XPathLexer._serializedATN = Utils.join([
66613
67570
  XPathLexer._serializedATNSegment1,
66614
67571
  ], "");
66615
67572
 
66616
- },{"../../Lexer":262,"../../VocabularyImpl":285,"../../atn/ATNDeserializer":291,"../../atn/LexerATNSimulator":312,"../../misc/Utils":373}],390:[function(require,module,exports){
67573
+ },{"../../Lexer":263,"../../VocabularyImpl":286,"../../atn/ATNDeserializer":292,"../../atn/LexerATNSimulator":313,"../../misc/Utils":374}],391:[function(require,module,exports){
66617
67574
  "use strict";
66618
67575
  /*!
66619
67576
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -66638,7 +67595,7 @@ __decorate([
66638
67595
  ], XPathLexerErrorListener.prototype, "syntaxError", null);
66639
67596
  exports.XPathLexerErrorListener = XPathLexerErrorListener;
66640
67597
 
66641
- },{"../../Decorators":254}],391:[function(require,module,exports){
67598
+ },{"../../Decorators":255}],392:[function(require,module,exports){
66642
67599
  "use strict";
66643
67600
  /*!
66644
67601
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -66672,7 +67629,7 @@ __decorate([
66672
67629
  ], XPathRuleAnywhereElement.prototype, "evaluate", null);
66673
67630
  exports.XPathRuleAnywhereElement = XPathRuleAnywhereElement;
66674
67631
 
66675
- },{"../../Decorators":254,"../Trees":378,"./XPathElement":388}],392:[function(require,module,exports){
67632
+ },{"../../Decorators":255,"../Trees":379,"./XPathElement":389}],393:[function(require,module,exports){
66676
67633
  "use strict";
66677
67634
  /*!
66678
67635
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -66715,7 +67672,7 @@ __decorate([
66715
67672
  ], XPathRuleElement.prototype, "evaluate", null);
66716
67673
  exports.XPathRuleElement = XPathRuleElement;
66717
67674
 
66718
- },{"../../Decorators":254,"../../ParserRuleContext":270,"../Trees":378,"./XPathElement":388}],393:[function(require,module,exports){
67675
+ },{"../../Decorators":255,"../../ParserRuleContext":271,"../Trees":379,"./XPathElement":389}],394:[function(require,module,exports){
66719
67676
  "use strict";
66720
67677
  /*!
66721
67678
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -66747,7 +67704,7 @@ __decorate([
66747
67704
  ], XPathTokenAnywhereElement.prototype, "evaluate", null);
66748
67705
  exports.XPathTokenAnywhereElement = XPathTokenAnywhereElement;
66749
67706
 
66750
- },{"../../Decorators":254,"../Trees":378,"./XPathElement":388}],394:[function(require,module,exports){
67707
+ },{"../../Decorators":255,"../Trees":379,"./XPathElement":389}],395:[function(require,module,exports){
66751
67708
  "use strict";
66752
67709
  /*!
66753
67710
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -66790,7 +67747,7 @@ __decorate([
66790
67747
  ], XPathTokenElement.prototype, "evaluate", null);
66791
67748
  exports.XPathTokenElement = XPathTokenElement;
66792
67749
 
66793
- },{"../../Decorators":254,"../TerminalNode":377,"../Trees":378,"./XPathElement":388}],395:[function(require,module,exports){
67750
+ },{"../../Decorators":255,"../TerminalNode":378,"../Trees":379,"./XPathElement":389}],396:[function(require,module,exports){
66794
67751
  "use strict";
66795
67752
  /*!
66796
67753
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -66826,7 +67783,7 @@ __decorate([
66826
67783
  ], XPathWildcardAnywhereElement.prototype, "evaluate", null);
66827
67784
  exports.XPathWildcardAnywhereElement = XPathWildcardAnywhereElement;
66828
67785
 
66829
- },{"../../Decorators":254,"../Trees":378,"./XPath":387,"./XPathElement":388}],396:[function(require,module,exports){
67786
+ },{"../../Decorators":255,"../Trees":379,"./XPath":388,"./XPathElement":389}],397:[function(require,module,exports){
66830
67787
  "use strict";
66831
67788
  /*!
66832
67789
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -66866,7 +67823,7 @@ __decorate([
66866
67823
  ], XPathWildcardElement.prototype, "evaluate", null);
66867
67824
  exports.XPathWildcardElement = XPathWildcardElement;
66868
67825
 
66869
- },{"../../Decorators":254,"../Trees":378,"./XPath":387,"./XPathElement":388}],397:[function(require,module,exports){
67826
+ },{"../../Decorators":255,"../Trees":379,"./XPath":388,"./XPathElement":389}],398:[function(require,module,exports){
66870
67827
  (function (global){(function (){
66871
67828
  'use strict';
66872
67829
 
@@ -67376,7 +68333,7 @@ var objectKeys = Object.keys || function (obj) {
67376
68333
  };
67377
68334
 
67378
68335
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
67379
- },{"object.assign/polyfill":454,"util/":400}],398:[function(require,module,exports){
68336
+ },{"object.assign/polyfill":455,"util/":401}],399:[function(require,module,exports){
67380
68337
  if (typeof Object.create === 'function') {
67381
68338
  // implementation from standard node.js 'util' module
67382
68339
  module.exports = function inherits(ctor, superCtor) {
@@ -67401,14 +68358,14 @@ if (typeof Object.create === 'function') {
67401
68358
  }
67402
68359
  }
67403
68360
 
67404
- },{}],399:[function(require,module,exports){
68361
+ },{}],400:[function(require,module,exports){
67405
68362
  module.exports = function isBuffer(arg) {
67406
68363
  return arg && typeof arg === 'object'
67407
68364
  && typeof arg.copy === 'function'
67408
68365
  && typeof arg.fill === 'function'
67409
68366
  && typeof arg.readUInt8 === 'function';
67410
68367
  }
67411
- },{}],400:[function(require,module,exports){
68368
+ },{}],401:[function(require,module,exports){
67412
68369
  (function (process,global){(function (){
67413
68370
  // Copyright Joyent, Inc. and other Node contributors.
67414
68371
  //
@@ -67998,7 +68955,7 @@ function hasOwnProperty(obj, prop) {
67998
68955
  }
67999
68956
 
68000
68957
  }).call(this)}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
68001
- },{"./support/isBuffer":399,"_process":456,"inherits":398}],401:[function(require,module,exports){
68958
+ },{"./support/isBuffer":400,"_process":457,"inherits":399}],402:[function(require,module,exports){
68002
68959
  (function (global){(function (){
68003
68960
  'use strict';
68004
68961
 
@@ -68019,7 +68976,7 @@ module.exports = function availableTypedArrays() {
68019
68976
  };
68020
68977
 
68021
68978
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
68022
- },{"possible-typed-array-names":455}],402:[function(require,module,exports){
68979
+ },{"possible-typed-array-names":456}],403:[function(require,module,exports){
68023
68980
  (function (process,global){(function (){
68024
68981
  module.exports = process.hrtime || hrtime
68025
68982
 
@@ -68050,7 +69007,7 @@ function hrtime(previousTimestamp){
68050
69007
  return [seconds,nanoseconds]
68051
69008
  }
68052
69009
  }).call(this)}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
68053
- },{"_process":456}],403:[function(require,module,exports){
69010
+ },{"_process":457}],404:[function(require,module,exports){
68054
69011
  'use strict';
68055
69012
 
68056
69013
  var bind = require('function-bind');
@@ -68062,7 +69019,7 @@ var $reflectApply = require('./reflectApply');
68062
69019
  /** @type {import('./actualApply')} */
68063
69020
  module.exports = $reflectApply || bind.call($call, $apply);
68064
69021
 
68065
- },{"./functionApply":405,"./functionCall":406,"./reflectApply":408,"function-bind":424}],404:[function(require,module,exports){
69022
+ },{"./functionApply":406,"./functionCall":407,"./reflectApply":409,"function-bind":425}],405:[function(require,module,exports){
68066
69023
  'use strict';
68067
69024
 
68068
69025
  var bind = require('function-bind');
@@ -68074,19 +69031,19 @@ module.exports = function applyBind() {
68074
69031
  return actualApply(bind, $apply, arguments);
68075
69032
  };
68076
69033
 
68077
- },{"./actualApply":403,"./functionApply":405,"function-bind":424}],405:[function(require,module,exports){
69034
+ },{"./actualApply":404,"./functionApply":406,"function-bind":425}],406:[function(require,module,exports){
68078
69035
  'use strict';
68079
69036
 
68080
69037
  /** @type {import('./functionApply')} */
68081
69038
  module.exports = Function.prototype.apply;
68082
69039
 
68083
- },{}],406:[function(require,module,exports){
69040
+ },{}],407:[function(require,module,exports){
68084
69041
  'use strict';
68085
69042
 
68086
69043
  /** @type {import('./functionCall')} */
68087
69044
  module.exports = Function.prototype.call;
68088
69045
 
68089
- },{}],407:[function(require,module,exports){
69046
+ },{}],408:[function(require,module,exports){
68090
69047
  'use strict';
68091
69048
 
68092
69049
  var bind = require('function-bind');
@@ -68103,13 +69060,13 @@ module.exports = function callBindBasic(args) {
68103
69060
  return $actualApply(bind, $call, args);
68104
69061
  };
68105
69062
 
68106
- },{"./actualApply":403,"./functionCall":406,"es-errors/type":419,"function-bind":424}],408:[function(require,module,exports){
69063
+ },{"./actualApply":404,"./functionCall":407,"es-errors/type":420,"function-bind":425}],409:[function(require,module,exports){
68107
69064
  'use strict';
68108
69065
 
68109
69066
  /** @type {import('./reflectApply')} */
68110
69067
  module.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;
68111
69068
 
68112
- },{}],409:[function(require,module,exports){
69069
+ },{}],410:[function(require,module,exports){
68113
69070
  'use strict';
68114
69071
 
68115
69072
  var setFunctionLength = require('set-function-length');
@@ -68135,7 +69092,7 @@ if ($defineProperty) {
68135
69092
  module.exports.apply = applyBind;
68136
69093
  }
68137
69094
 
68138
- },{"call-bind-apply-helpers":407,"call-bind-apply-helpers/applyBind":404,"es-define-property":413,"set-function-length":458}],410:[function(require,module,exports){
69095
+ },{"call-bind-apply-helpers":408,"call-bind-apply-helpers/applyBind":405,"es-define-property":414,"set-function-length":459}],411:[function(require,module,exports){
68139
69096
  'use strict';
68140
69097
 
68141
69098
  var GetIntrinsic = require('get-intrinsic');
@@ -68156,7 +69113,7 @@ module.exports = function callBoundIntrinsic(name, allowMissing) {
68156
69113
  return intrinsic;
68157
69114
  };
68158
69115
 
68159
- },{"call-bind-apply-helpers":407,"get-intrinsic":425}],411:[function(require,module,exports){
69116
+ },{"call-bind-apply-helpers":408,"get-intrinsic":426}],412:[function(require,module,exports){
68160
69117
  'use strict';
68161
69118
 
68162
69119
  var $defineProperty = require('es-define-property');
@@ -68214,7 +69171,7 @@ module.exports = function defineDataProperty(
68214
69171
  }
68215
69172
  };
68216
69173
 
68217
- },{"es-define-property":413,"es-errors/syntax":418,"es-errors/type":419,"gopd":430}],412:[function(require,module,exports){
69174
+ },{"es-define-property":414,"es-errors/syntax":419,"es-errors/type":420,"gopd":431}],413:[function(require,module,exports){
68218
69175
  'use strict';
68219
69176
 
68220
69177
  var callBind = require('call-bind-apply-helpers');
@@ -68246,7 +69203,7 @@ module.exports = desc && typeof desc.get === 'function'
68246
69203
  }
68247
69204
  : false;
68248
69205
 
68249
- },{"call-bind-apply-helpers":407,"gopd":430}],413:[function(require,module,exports){
69206
+ },{"call-bind-apply-helpers":408,"gopd":431}],414:[function(require,module,exports){
68250
69207
  'use strict';
68251
69208
 
68252
69209
  /** @type {import('.')} */
@@ -68262,55 +69219,55 @@ if ($defineProperty) {
68262
69219
 
68263
69220
  module.exports = $defineProperty;
68264
69221
 
68265
- },{}],414:[function(require,module,exports){
69222
+ },{}],415:[function(require,module,exports){
68266
69223
  'use strict';
68267
69224
 
68268
69225
  /** @type {import('./eval')} */
68269
69226
  module.exports = EvalError;
68270
69227
 
68271
- },{}],415:[function(require,module,exports){
69228
+ },{}],416:[function(require,module,exports){
68272
69229
  'use strict';
68273
69230
 
68274
69231
  /** @type {import('.')} */
68275
69232
  module.exports = Error;
68276
69233
 
68277
- },{}],416:[function(require,module,exports){
69234
+ },{}],417:[function(require,module,exports){
68278
69235
  'use strict';
68279
69236
 
68280
69237
  /** @type {import('./range')} */
68281
69238
  module.exports = RangeError;
68282
69239
 
68283
- },{}],417:[function(require,module,exports){
69240
+ },{}],418:[function(require,module,exports){
68284
69241
  'use strict';
68285
69242
 
68286
69243
  /** @type {import('./ref')} */
68287
69244
  module.exports = ReferenceError;
68288
69245
 
68289
- },{}],418:[function(require,module,exports){
69246
+ },{}],419:[function(require,module,exports){
68290
69247
  'use strict';
68291
69248
 
68292
69249
  /** @type {import('./syntax')} */
68293
69250
  module.exports = SyntaxError;
68294
69251
 
68295
- },{}],419:[function(require,module,exports){
69252
+ },{}],420:[function(require,module,exports){
68296
69253
  'use strict';
68297
69254
 
68298
69255
  /** @type {import('./type')} */
68299
69256
  module.exports = TypeError;
68300
69257
 
68301
- },{}],420:[function(require,module,exports){
69258
+ },{}],421:[function(require,module,exports){
68302
69259
  'use strict';
68303
69260
 
68304
69261
  /** @type {import('./uri')} */
68305
69262
  module.exports = URIError;
68306
69263
 
68307
- },{}],421:[function(require,module,exports){
69264
+ },{}],422:[function(require,module,exports){
68308
69265
  'use strict';
68309
69266
 
68310
69267
  /** @type {import('.')} */
68311
69268
  module.exports = Object;
68312
69269
 
68313
- },{}],422:[function(require,module,exports){
69270
+ },{}],423:[function(require,module,exports){
68314
69271
  'use strict';
68315
69272
 
68316
69273
  var isCallable = require('is-callable');
@@ -68381,7 +69338,7 @@ module.exports = function forEach(list, iterator, thisArg) {
68381
69338
  }
68382
69339
  };
68383
69340
 
68384
- },{"is-callable":438}],423:[function(require,module,exports){
69341
+ },{"is-callable":439}],424:[function(require,module,exports){
68385
69342
  'use strict';
68386
69343
 
68387
69344
  /* eslint no-invalid-this: 1 */
@@ -68467,14 +69424,14 @@ module.exports = function bind(that) {
68467
69424
  return bound;
68468
69425
  };
68469
69426
 
68470
- },{}],424:[function(require,module,exports){
69427
+ },{}],425:[function(require,module,exports){
68471
69428
  'use strict';
68472
69429
 
68473
69430
  var implementation = require('./implementation');
68474
69431
 
68475
69432
  module.exports = Function.prototype.bind || implementation;
68476
69433
 
68477
- },{"./implementation":423}],425:[function(require,module,exports){
69434
+ },{"./implementation":424}],426:[function(require,module,exports){
68478
69435
  'use strict';
68479
69436
 
68480
69437
  var undefined;
@@ -68854,7 +69811,7 @@ module.exports = function GetIntrinsic(name, allowMissing) {
68854
69811
  return value;
68855
69812
  };
68856
69813
 
68857
- },{"call-bind-apply-helpers/functionApply":405,"call-bind-apply-helpers/functionCall":406,"es-define-property":413,"es-errors":415,"es-errors/eval":414,"es-errors/range":416,"es-errors/ref":417,"es-errors/syntax":418,"es-errors/type":419,"es-errors/uri":420,"es-object-atoms":421,"function-bind":424,"get-proto":428,"get-proto/Object.getPrototypeOf":426,"get-proto/Reflect.getPrototypeOf":427,"gopd":430,"has-symbols":432,"hasown":435,"math-intrinsics/abs":442,"math-intrinsics/floor":443,"math-intrinsics/max":445,"math-intrinsics/min":446,"math-intrinsics/pow":447,"math-intrinsics/round":448,"math-intrinsics/sign":449}],426:[function(require,module,exports){
69814
+ },{"call-bind-apply-helpers/functionApply":406,"call-bind-apply-helpers/functionCall":407,"es-define-property":414,"es-errors":416,"es-errors/eval":415,"es-errors/range":417,"es-errors/ref":418,"es-errors/syntax":419,"es-errors/type":420,"es-errors/uri":421,"es-object-atoms":422,"function-bind":425,"get-proto":429,"get-proto/Object.getPrototypeOf":427,"get-proto/Reflect.getPrototypeOf":428,"gopd":431,"has-symbols":433,"hasown":436,"math-intrinsics/abs":443,"math-intrinsics/floor":444,"math-intrinsics/max":446,"math-intrinsics/min":447,"math-intrinsics/pow":448,"math-intrinsics/round":449,"math-intrinsics/sign":450}],427:[function(require,module,exports){
68858
69815
  'use strict';
68859
69816
 
68860
69817
  var $Object = require('es-object-atoms');
@@ -68862,13 +69819,13 @@ var $Object = require('es-object-atoms');
68862
69819
  /** @type {import('./Object.getPrototypeOf')} */
68863
69820
  module.exports = $Object.getPrototypeOf || null;
68864
69821
 
68865
- },{"es-object-atoms":421}],427:[function(require,module,exports){
69822
+ },{"es-object-atoms":422}],428:[function(require,module,exports){
68866
69823
  'use strict';
68867
69824
 
68868
69825
  /** @type {import('./Reflect.getPrototypeOf')} */
68869
69826
  module.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null;
68870
69827
 
68871
- },{}],428:[function(require,module,exports){
69828
+ },{}],429:[function(require,module,exports){
68872
69829
  'use strict';
68873
69830
 
68874
69831
  var reflectGetProto = require('./Reflect.getPrototypeOf');
@@ -68897,13 +69854,13 @@ module.exports = reflectGetProto
68897
69854
  }
68898
69855
  : null;
68899
69856
 
68900
- },{"./Object.getPrototypeOf":426,"./Reflect.getPrototypeOf":427,"dunder-proto/get":412}],429:[function(require,module,exports){
69857
+ },{"./Object.getPrototypeOf":427,"./Reflect.getPrototypeOf":428,"dunder-proto/get":413}],430:[function(require,module,exports){
68901
69858
  'use strict';
68902
69859
 
68903
69860
  /** @type {import('./gOPD')} */
68904
69861
  module.exports = Object.getOwnPropertyDescriptor;
68905
69862
 
68906
- },{}],430:[function(require,module,exports){
69863
+ },{}],431:[function(require,module,exports){
68907
69864
  'use strict';
68908
69865
 
68909
69866
  /** @type {import('.')} */
@@ -68920,7 +69877,7 @@ if ($gOPD) {
68920
69877
 
68921
69878
  module.exports = $gOPD;
68922
69879
 
68923
- },{"./gOPD":429}],431:[function(require,module,exports){
69880
+ },{"./gOPD":430}],432:[function(require,module,exports){
68924
69881
  'use strict';
68925
69882
 
68926
69883
  var $defineProperty = require('es-define-property');
@@ -68944,7 +69901,7 @@ hasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBu
68944
69901
 
68945
69902
  module.exports = hasPropertyDescriptors;
68946
69903
 
68947
- },{"es-define-property":413}],432:[function(require,module,exports){
69904
+ },{"es-define-property":414}],433:[function(require,module,exports){
68948
69905
  'use strict';
68949
69906
 
68950
69907
  var origSymbol = typeof Symbol !== 'undefined' && Symbol;
@@ -68960,7 +69917,7 @@ module.exports = function hasNativeSymbols() {
68960
69917
  return hasSymbolSham();
68961
69918
  };
68962
69919
 
68963
- },{"./shams":433}],433:[function(require,module,exports){
69920
+ },{"./shams":434}],434:[function(require,module,exports){
68964
69921
  'use strict';
68965
69922
 
68966
69923
  /** @type {import('./shams')} */
@@ -69007,7 +69964,7 @@ module.exports = function hasSymbols() {
69007
69964
  return true;
69008
69965
  };
69009
69966
 
69010
- },{}],434:[function(require,module,exports){
69967
+ },{}],435:[function(require,module,exports){
69011
69968
  'use strict';
69012
69969
 
69013
69970
  var hasSymbols = require('has-symbols/shams');
@@ -69017,7 +69974,7 @@ module.exports = function hasToStringTagShams() {
69017
69974
  return hasSymbols() && !!Symbol.toStringTag;
69018
69975
  };
69019
69976
 
69020
- },{"has-symbols/shams":433}],435:[function(require,module,exports){
69977
+ },{"has-symbols/shams":434}],436:[function(require,module,exports){
69021
69978
  'use strict';
69022
69979
 
69023
69980
  var call = Function.prototype.call;
@@ -69027,7 +69984,7 @@ var bind = require('function-bind');
69027
69984
  /** @type {import('.')} */
69028
69985
  module.exports = bind.call(call, $hasOwn);
69029
69986
 
69030
- },{"function-bind":424}],436:[function(require,module,exports){
69987
+ },{"function-bind":425}],437:[function(require,module,exports){
69031
69988
  if (typeof Object.create === 'function') {
69032
69989
  // implementation from standard node.js 'util' module
69033
69990
  module.exports = function inherits(ctor, superCtor) {
@@ -69056,7 +70013,7 @@ if (typeof Object.create === 'function') {
69056
70013
  }
69057
70014
  }
69058
70015
 
69059
- },{}],437:[function(require,module,exports){
70016
+ },{}],438:[function(require,module,exports){
69060
70017
  'use strict';
69061
70018
 
69062
70019
  var hasToStringTag = require('has-tostringtag/shams')();
@@ -69102,7 +70059,7 @@ isStandardArguments.isLegacyArguments = isLegacyArguments; // for tests
69102
70059
  /** @type {import('.')} */
69103
70060
  module.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;
69104
70061
 
69105
- },{"call-bound":410,"has-tostringtag/shams":434}],438:[function(require,module,exports){
70062
+ },{"call-bound":411,"has-tostringtag/shams":435}],439:[function(require,module,exports){
69106
70063
  'use strict';
69107
70064
 
69108
70065
  var fnToStr = Function.prototype.toString;
@@ -69205,7 +70162,7 @@ module.exports = reflectApply
69205
70162
  return tryFunctionObject(value);
69206
70163
  };
69207
70164
 
69208
- },{}],439:[function(require,module,exports){
70165
+ },{}],440:[function(require,module,exports){
69209
70166
  'use strict';
69210
70167
 
69211
70168
  var callBound = require('call-bound');
@@ -69254,7 +70211,7 @@ module.exports = function isGeneratorFunction(fn) {
69254
70211
  return getProto(fn) === GeneratorFunction;
69255
70212
  };
69256
70213
 
69257
- },{"call-bound":410,"get-proto":428,"has-tostringtag/shams":434,"safe-regex-test":457}],440:[function(require,module,exports){
70214
+ },{"call-bound":411,"get-proto":429,"has-tostringtag/shams":435,"safe-regex-test":458}],441:[function(require,module,exports){
69258
70215
  'use strict';
69259
70216
 
69260
70217
  var callBound = require('call-bound');
@@ -69325,7 +70282,7 @@ if (hasToStringTag) {
69325
70282
 
69326
70283
  module.exports = fn;
69327
70284
 
69328
- },{"call-bound":410,"gopd":430,"has-tostringtag/shams":434,"hasown":435}],441:[function(require,module,exports){
70285
+ },{"call-bound":411,"gopd":431,"has-tostringtag/shams":435,"hasown":436}],442:[function(require,module,exports){
69329
70286
  'use strict';
69330
70287
 
69331
70288
  var whichTypedArray = require('which-typed-array');
@@ -69335,19 +70292,19 @@ module.exports = function isTypedArray(value) {
69335
70292
  return !!whichTypedArray(value);
69336
70293
  };
69337
70294
 
69338
- },{"which-typed-array":462}],442:[function(require,module,exports){
70295
+ },{"which-typed-array":463}],443:[function(require,module,exports){
69339
70296
  'use strict';
69340
70297
 
69341
70298
  /** @type {import('./abs')} */
69342
70299
  module.exports = Math.abs;
69343
70300
 
69344
- },{}],443:[function(require,module,exports){
70301
+ },{}],444:[function(require,module,exports){
69345
70302
  'use strict';
69346
70303
 
69347
70304
  /** @type {import('./floor')} */
69348
70305
  module.exports = Math.floor;
69349
70306
 
69350
- },{}],444:[function(require,module,exports){
70307
+ },{}],445:[function(require,module,exports){
69351
70308
  'use strict';
69352
70309
 
69353
70310
  /** @type {import('./isNaN')} */
@@ -69355,31 +70312,31 @@ module.exports = Number.isNaN || function isNaN(a) {
69355
70312
  return a !== a;
69356
70313
  };
69357
70314
 
69358
- },{}],445:[function(require,module,exports){
70315
+ },{}],446:[function(require,module,exports){
69359
70316
  'use strict';
69360
70317
 
69361
70318
  /** @type {import('./max')} */
69362
70319
  module.exports = Math.max;
69363
70320
 
69364
- },{}],446:[function(require,module,exports){
70321
+ },{}],447:[function(require,module,exports){
69365
70322
  'use strict';
69366
70323
 
69367
70324
  /** @type {import('./min')} */
69368
70325
  module.exports = Math.min;
69369
70326
 
69370
- },{}],447:[function(require,module,exports){
70327
+ },{}],448:[function(require,module,exports){
69371
70328
  'use strict';
69372
70329
 
69373
70330
  /** @type {import('./pow')} */
69374
70331
  module.exports = Math.pow;
69375
70332
 
69376
- },{}],448:[function(require,module,exports){
70333
+ },{}],449:[function(require,module,exports){
69377
70334
  'use strict';
69378
70335
 
69379
70336
  /** @type {import('./round')} */
69380
70337
  module.exports = Math.round;
69381
70338
 
69382
- },{}],449:[function(require,module,exports){
70339
+ },{}],450:[function(require,module,exports){
69383
70340
  'use strict';
69384
70341
 
69385
70342
  var $isNaN = require('./isNaN');
@@ -69392,7 +70349,7 @@ module.exports = function sign(number) {
69392
70349
  return number < 0 ? -1 : +1;
69393
70350
  };
69394
70351
 
69395
- },{"./isNaN":444}],450:[function(require,module,exports){
70352
+ },{"./isNaN":445}],451:[function(require,module,exports){
69396
70353
  'use strict';
69397
70354
 
69398
70355
  var keysShim;
@@ -69516,7 +70473,7 @@ if (!Object.keys) {
69516
70473
  }
69517
70474
  module.exports = keysShim;
69518
70475
 
69519
- },{"./isArguments":452}],451:[function(require,module,exports){
70476
+ },{"./isArguments":453}],452:[function(require,module,exports){
69520
70477
  'use strict';
69521
70478
 
69522
70479
  var slice = Array.prototype.slice;
@@ -69550,7 +70507,7 @@ keysShim.shim = function shimObjectKeys() {
69550
70507
 
69551
70508
  module.exports = keysShim;
69552
70509
 
69553
- },{"./implementation":450,"./isArguments":452}],452:[function(require,module,exports){
70510
+ },{"./implementation":451,"./isArguments":453}],453:[function(require,module,exports){
69554
70511
  'use strict';
69555
70512
 
69556
70513
  var toStr = Object.prototype.toString;
@@ -69569,7 +70526,7 @@ module.exports = function isArguments(value) {
69569
70526
  return isArgs;
69570
70527
  };
69571
70528
 
69572
- },{}],453:[function(require,module,exports){
70529
+ },{}],454:[function(require,module,exports){
69573
70530
  'use strict';
69574
70531
 
69575
70532
  // modified from https://github.com/es-shims/es6-shim
@@ -69617,7 +70574,7 @@ module.exports = function assign(target, source1) {
69617
70574
  return to; // step 4
69618
70575
  };
69619
70576
 
69620
- },{"call-bound":410,"es-object-atoms":421,"has-symbols/shams":433,"object-keys":451}],454:[function(require,module,exports){
70577
+ },{"call-bound":411,"es-object-atoms":422,"has-symbols/shams":434,"object-keys":452}],455:[function(require,module,exports){
69621
70578
  'use strict';
69622
70579
 
69623
70580
  var implementation = require('./implementation');
@@ -69674,7 +70631,7 @@ module.exports = function getPolyfill() {
69674
70631
  return Object.assign;
69675
70632
  };
69676
70633
 
69677
- },{"./implementation":453}],455:[function(require,module,exports){
70634
+ },{"./implementation":454}],456:[function(require,module,exports){
69678
70635
  'use strict';
69679
70636
 
69680
70637
  /** @type {import('.')} */
@@ -69693,7 +70650,7 @@ module.exports = [
69693
70650
  'BigUint64Array'
69694
70651
  ];
69695
70652
 
69696
- },{}],456:[function(require,module,exports){
70653
+ },{}],457:[function(require,module,exports){
69697
70654
  // shim for using process in browser
69698
70655
  var process = module.exports = {};
69699
70656
 
@@ -69879,7 +70836,7 @@ process.chdir = function (dir) {
69879
70836
  };
69880
70837
  process.umask = function() { return 0; };
69881
70838
 
69882
- },{}],457:[function(require,module,exports){
70839
+ },{}],458:[function(require,module,exports){
69883
70840
  'use strict';
69884
70841
 
69885
70842
  var callBound = require('call-bound');
@@ -69898,7 +70855,7 @@ module.exports = function regexTester(regex) {
69898
70855
  };
69899
70856
  };
69900
70857
 
69901
- },{"call-bound":410,"es-errors/type":419,"is-regex":440}],458:[function(require,module,exports){
70858
+ },{"call-bound":411,"es-errors/type":420,"is-regex":441}],459:[function(require,module,exports){
69902
70859
  'use strict';
69903
70860
 
69904
70861
  var GetIntrinsic = require('get-intrinsic');
@@ -69942,9 +70899,9 @@ module.exports = function setFunctionLength(fn, length) {
69942
70899
  return fn;
69943
70900
  };
69944
70901
 
69945
- },{"define-data-property":411,"es-errors/type":419,"get-intrinsic":425,"gopd":430,"has-property-descriptors":431}],459:[function(require,module,exports){
69946
- arguments[4][399][0].apply(exports,arguments)
69947
- },{"dup":399}],460:[function(require,module,exports){
70902
+ },{"define-data-property":412,"es-errors/type":420,"get-intrinsic":426,"gopd":431,"has-property-descriptors":432}],460:[function(require,module,exports){
70903
+ arguments[4][400][0].apply(exports,arguments)
70904
+ },{"dup":400}],461:[function(require,module,exports){
69948
70905
  // Currently in sync with Node.js lib/internal/util/types.js
69949
70906
  // https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9
69950
70907
 
@@ -70280,7 +71237,7 @@ exports.isAnyArrayBuffer = isAnyArrayBuffer;
70280
71237
  });
70281
71238
  });
70282
71239
 
70283
- },{"is-arguments":437,"is-generator-function":439,"is-typed-array":441,"which-typed-array":462}],461:[function(require,module,exports){
71240
+ },{"is-arguments":438,"is-generator-function":440,"is-typed-array":442,"which-typed-array":463}],462:[function(require,module,exports){
70284
71241
  (function (process){(function (){
70285
71242
  // Copyright Joyent, Inc. and other Node contributors.
70286
71243
  //
@@ -70999,7 +71956,7 @@ function callbackify(original) {
70999
71956
  exports.callbackify = callbackify;
71000
71957
 
71001
71958
  }).call(this)}).call(this,require('_process'))
71002
- },{"./support/isBuffer":459,"./support/types":460,"_process":456,"inherits":436}],462:[function(require,module,exports){
71959
+ },{"./support/isBuffer":460,"./support/types":461,"_process":457,"inherits":437}],463:[function(require,module,exports){
71003
71960
  (function (global){(function (){
71004
71961
  'use strict';
71005
71962
 
@@ -71120,5 +72077,5 @@ module.exports = function whichTypedArray(value) {
71120
72077
  };
71121
72078
 
71122
72079
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
71123
- },{"available-typed-arrays":401,"call-bind":409,"call-bound":410,"for-each":422,"get-proto":428,"gopd":430,"has-tostringtag/shams":434}]},{},[134])(134)
72080
+ },{"available-typed-arrays":402,"call-bind":410,"call-bound":411,"for-each":423,"get-proto":429,"gopd":431,"has-tostringtag/shams":435}]},{},[134])(134)
71124
72081
  });