@designliquido/delegua 1.13.1 → 1.14.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.
package/umd/delegua.js CHANGED
@@ -4728,7 +4728,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
4728
4728
  }
4729
4729
  exports.AvaliadorSintatico = AvaliadorSintatico;
4730
4730
 
4731
- },{"../bibliotecas/primitivas-dicionario":29,"../bibliotecas/primitivas-numero":30,"../bibliotecas/primitivas-texto":31,"../bibliotecas/primitivas-vetor":32,"../construtos":62,"../construtos/tuplas":80,"../declaracoes":110,"../inferenciador":137,"../informacao-elemento-sintatico":138,"../tipos-de-dados/delegua":217,"../tipos-de-simbolos/delegua":222,"./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":413}],11:[function(require,module,exports){
4731
+ },{"../bibliotecas/primitivas-dicionario":29,"../bibliotecas/primitivas-numero":30,"../bibliotecas/primitivas-texto":31,"../bibliotecas/primitivas-vetor":32,"../construtos":62,"../construtos/tuplas":80,"../declaracoes":110,"../inferenciador":137,"../informacao-elemento-sintatico":138,"../tipos-de-dados/delegua":217,"../tipos-de-simbolos/delegua":222,"./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":415}],11:[function(require,module,exports){
4732
4732
  "use strict";
4733
4733
  Object.defineProperty(exports, "__esModule", { value: true });
4734
4734
  exports.buscarRetornos = buscarRetornos;
@@ -7201,7 +7201,7 @@ class AvaliadorSintaticoPitugues {
7201
7201
  }
7202
7202
  exports.AvaliadorSintaticoPitugues = AvaliadorSintaticoPitugues;
7203
7203
 
7204
- },{"../../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":110,"../../inferenciador":137,"../../informacao-elemento-sintatico":138,"../../lexador":207,"../../lexador/micro-lexador-pitugues":212,"../../tipos-de-dados/dialetos/pitugues":218,"../../tipos-de-simbolos/pitugues":226,"../comum":11,"../erro-avaliador-sintatico":20,"../informacao-escopo":22,"../pilha-escopos":26,"./micro-avaliador-sintatico-pitugues":18,"browser-process-hrtime":413}],14:[function(require,module,exports){
7204
+ },{"../../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":110,"../../inferenciador":137,"../../informacao-elemento-sintatico":138,"../../lexador":207,"../../lexador/micro-lexador-pitugues":212,"../../tipos-de-dados/dialetos/pitugues":218,"../../tipos-de-simbolos/pitugues":226,"../comum":11,"../erro-avaliador-sintatico":20,"../informacao-escopo":22,"../pilha-escopos":26,"./micro-avaliador-sintatico-pitugues":18,"browser-process-hrtime":415}],14:[function(require,module,exports){
7205
7205
  "use strict";
7206
7206
  var __importDefault = (this && this.__importDefault) || function (mod) {
7207
7207
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -8124,7 +8124,7 @@ class AvaliadorSintaticoPrisma extends avaliador_sintatico_base_1.AvaliadorSinta
8124
8124
  }
8125
8125
  exports.AvaliadorSintaticoPrisma = AvaliadorSintaticoPrisma;
8126
8126
 
8127
- },{"../../bibliotecas/primitivas-dicionario":29,"../../bibliotecas/primitivas-numero":30,"../../bibliotecas/primitivas-texto":31,"../../bibliotecas/primitivas-vetor":32,"../../construtos":62,"../../declaracoes":110,"../../inferenciador":137,"../../informacao-elemento-sintatico":138,"../../lexador":207,"../../tipos-de-simbolos/prisma":228,"../avaliador-sintatico-base":9,"../comum":11,"../informacao-escopo":22,"../pilha-escopos":26,"browser-process-hrtime":413}],16:[function(require,module,exports){
8127
+ },{"../../bibliotecas/primitivas-dicionario":29,"../../bibliotecas/primitivas-numero":30,"../../bibliotecas/primitivas-texto":31,"../../bibliotecas/primitivas-vetor":32,"../../construtos":62,"../../declaracoes":110,"../../inferenciador":137,"../../informacao-elemento-sintatico":138,"../../lexador":207,"../../tipos-de-simbolos/prisma":228,"../avaliador-sintatico-base":9,"../comum":11,"../informacao-escopo":22,"../pilha-escopos":26,"browser-process-hrtime":415}],16:[function(require,module,exports){
8128
8128
  "use strict";
8129
8129
  var __importDefault = (this && this.__importDefault) || function (mod) {
8130
8130
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -9106,7 +9106,7 @@ class AvaliadorSintaticoTenda extends avaliador_sintatico_base_1.AvaliadorSintat
9106
9106
  }
9107
9107
  exports.AvaliadorSintaticoTenda = AvaliadorSintaticoTenda;
9108
9108
 
9109
- },{"../../bibliotecas/primitivas-dicionario":29,"../../bibliotecas/primitivas-numero":30,"../../bibliotecas/primitivas-texto":31,"../../bibliotecas/primitivas-vetor":32,"../../construtos":62,"../../construtos/tuplas":80,"../../declaracoes":110,"../../inferenciador":137,"../../informacao-elemento-sintatico":138,"../../lexador/simbolo":215,"../../tipos-de-dados/delegua":217,"../../tipos-de-simbolos/tenda":229,"../avaliador-sintatico-base":9,"./../erro-avaliador-sintatico":20,"./../informacao-escopo":22,"./../pilha-escopos":26,"browser-process-hrtime":413}],17:[function(require,module,exports){
9109
+ },{"../../bibliotecas/primitivas-dicionario":29,"../../bibliotecas/primitivas-numero":30,"../../bibliotecas/primitivas-texto":31,"../../bibliotecas/primitivas-vetor":32,"../../construtos":62,"../../construtos/tuplas":80,"../../declaracoes":110,"../../inferenciador":137,"../../informacao-elemento-sintatico":138,"../../lexador/simbolo":215,"../../tipos-de-dados/delegua":217,"../../tipos-de-simbolos/tenda":229,"../avaliador-sintatico-base":9,"./../erro-avaliador-sintatico":20,"./../informacao-escopo":22,"./../pilha-escopos":26,"browser-process-hrtime":415}],17:[function(require,module,exports){
9110
9110
  "use strict";
9111
9111
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9112
9112
  if (k2 === undefined) k2 = k;
@@ -13795,6 +13795,7 @@ exports.Variavel = Variavel;
13795
13795
  "use strict";
13796
13796
  Object.defineProperty(exports, "__esModule", { value: true });
13797
13797
  exports.Vetor = void 0;
13798
+ const comentario_como_construto_1 = require("./comentario-como-construto");
13798
13799
  const separador_1 = require("./separador");
13799
13800
  class Vetor {
13800
13801
  constructor(hashArquivo, linha, valores, tipo) {
@@ -13808,7 +13809,7 @@ class Vetor {
13808
13809
  * (Separador, comentários) que podem aparecer entre os elementos.
13809
13810
  */
13810
13811
  get elementos() {
13811
- return this.valores.filter((v) => v.constructor !== separador_1.Separador);
13812
+ return this.valores.filter((v) => v.constructor !== separador_1.Separador && v.constructor !== comentario_como_construto_1.ComentarioComoConstruto);
13812
13813
  }
13813
13814
  get tamanho() {
13814
13815
  return this.elementos.length;
@@ -13825,7 +13826,7 @@ class Vetor {
13825
13826
  }
13826
13827
  exports.Vetor = Vetor;
13827
13828
 
13828
- },{"./separador":73}],91:[function(require,module,exports){
13829
+ },{"./comentario-como-construto":47,"./separador":73}],91:[function(require,module,exports){
13829
13830
  "use strict";
13830
13831
  Object.defineProperty(exports, "__esModule", { value: true });
13831
13832
  exports.Ajuda = void 0;
@@ -20660,10 +20661,10 @@ class InterpretadorBase {
20660
20661
  }
20661
20662
  async visitarExpressaoVetor(expressao) {
20662
20663
  const valores = [];
20663
- for (let i = 0; i < expressao.valores.length; i++) {
20664
- valores.push(this.resolverValor(await this.avaliar(expressao.valores[i])));
20664
+ for (let i = 0; i < expressao.elementos.length; i++) {
20665
+ valores.push(this.resolverValor(await this.avaliar(expressao.elementos[i])));
20665
20666
  }
20666
- return valores.filter((v) => v !== null && v !== undefined);
20667
+ return valores;
20667
20668
  }
20668
20669
  visitarExpressaoSuper(expressao) {
20669
20670
  const objeto = this.pilhaEscoposExecucao.obterVariavelPorNome('isto');
@@ -21045,7 +21046,7 @@ class InterpretadorBase {
21045
21046
  exports.InterpretadorBase = InterpretadorBase;
21046
21047
 
21047
21048
  }).call(this)}).call(this,require('_process'),require("timers").setImmediate)
21048
- },{"../avaliador-sintatico":21,"../bibliotecas/primitivas-dicionario":29,"../bibliotecas/primitivas-vetor":32,"../construtos":62,"../excecoes":131,"../inferenciador":137,"../lexador":207,"../quebras":216,"../tipos-de-dados/delegua":217,"../tipos-de-dados/primitivos":219,"../tipos-de-simbolos/delegua":222,"./espaco-memoria":171,"./estruturas":179,"./estruturas/metodo-primitiva":181,"./pilha-escopos-execucao":191,"_process":467,"browser-process-hrtime":413,"timers":470}],189:[function(require,module,exports){
21049
+ },{"../avaliador-sintatico":21,"../bibliotecas/primitivas-dicionario":29,"../bibliotecas/primitivas-vetor":32,"../construtos":62,"../excecoes":131,"../inferenciador":137,"../lexador":207,"../quebras":216,"../tipos-de-dados/delegua":217,"../tipos-de-dados/primitivos":219,"../tipos-de-simbolos/delegua":222,"./espaco-memoria":171,"./estruturas":179,"./estruturas/metodo-primitiva":181,"./pilha-escopos-execucao":191,"_process":469,"browser-process-hrtime":415,"timers":472}],189:[function(require,module,exports){
21049
21050
  "use strict";
21050
21051
  var __importDefault = (this && this.__importDefault) || function (mod) {
21051
21052
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -23875,7 +23876,7 @@ class LexadorPitugues {
23875
23876
  }
23876
23877
  exports.LexadorPitugues = LexadorPitugues;
23877
23878
 
23878
- },{"../../tipos-de-simbolos/pitugues":226,"../simbolo":215,"./palavras-reservadas/pitugues":203,"browser-process-hrtime":413}],197:[function(require,module,exports){
23879
+ },{"../../tipos-de-simbolos/pitugues":226,"../simbolo":215,"./palavras-reservadas/pitugues":203,"browser-process-hrtime":415}],197:[function(require,module,exports){
23879
23880
  "use strict";
23880
23881
  var __importDefault = (this && this.__importDefault) || function (mod) {
23881
23882
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -24515,7 +24516,7 @@ class LexadorPrisma {
24515
24516
  }
24516
24517
  exports.LexadorPrisma = LexadorPrisma;
24517
24518
 
24518
- },{"../../tipos-de-simbolos/prisma":228,"../simbolo":215,"./palavras-reservadas/prisma":205,"browser-process-hrtime":413}],199:[function(require,module,exports){
24519
+ },{"../../tipos-de-simbolos/prisma":228,"../simbolo":215,"./palavras-reservadas/prisma":205,"browser-process-hrtime":415}],199:[function(require,module,exports){
24519
24520
  "use strict";
24520
24521
  var __importDefault = (this && this.__importDefault) || function (mod) {
24521
24522
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -24909,7 +24910,7 @@ class LexadorTenda {
24909
24910
  }
24910
24911
  exports.LexadorTenda = LexadorTenda;
24911
24912
 
24912
- },{"../../tipos-de-simbolos/tenda":229,"../simbolo":215,"./palavras-reservadas/tenda":206,"browser-process-hrtime":413}],200:[function(require,module,exports){
24913
+ },{"../../tipos-de-simbolos/tenda":229,"../simbolo":215,"./palavras-reservadas/tenda":206,"browser-process-hrtime":415}],200:[function(require,module,exports){
24913
24914
  "use strict";
24914
24915
  var __importDefault = (this && this.__importDefault) || function (mod) {
24915
24916
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -26026,7 +26027,7 @@ class Lexador {
26026
26027
  }
26027
26028
  exports.Lexador = Lexador;
26028
26029
 
26029
- },{"../tipos-de-simbolos/delegua":222,"./palavras-reservadas":214,"./simbolo":215,"browser-process-hrtime":413}],211:[function(require,module,exports){
26030
+ },{"../tipos-de-simbolos/delegua":222,"./palavras-reservadas":214,"./simbolo":215,"browser-process-hrtime":415}],211:[function(require,module,exports){
26030
26031
  "use strict";
26031
26032
  var __importDefault = (this && this.__importDefault) || function (mod) {
26032
26033
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -27550,6 +27551,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
27550
27551
  };
27551
27552
  Object.defineProperty(exports, "__esModule", { value: true });
27552
27553
  __exportStar(require("./tradutor-assembly-arm"), exports);
27554
+ __exportStar(require("./tradutor-assembly-risc-v"), exports);
27555
+ __exportStar(require("./tradutor-webassembly"), exports);
27553
27556
  __exportStar(require("./tradutor-assembly-x64"), exports);
27554
27557
  __exportStar(require("./tradutor-assemblyscript"), exports);
27555
27558
  __exportStar(require("./tradutor-calango"), exports);
@@ -27563,7 +27566,7 @@ __exportStar(require("./tradutor-reverso-python"), exports);
27563
27566
  __exportStar(require("./tradutor-reverso-tenda"), exports);
27564
27567
  __exportStar(require("./tradutor-ruby"), exports);
27565
27568
 
27566
- },{"./tradutor-assembly-arm":239,"./tradutor-assembly-x64":240,"./tradutor-assemblyscript":241,"./tradutor-calango":242,"./tradutor-elixir":243,"./tradutor-javascript":244,"./tradutor-mermaidjs":245,"./tradutor-portugol-ipt":246,"./tradutor-python":247,"./tradutor-reverso-javascript":248,"./tradutor-reverso-python":249,"./tradutor-reverso-tenda":250,"./tradutor-ruby":251}],231:[function(require,module,exports){
27569
+ },{"./tradutor-assembly-arm":239,"./tradutor-assembly-risc-v":240,"./tradutor-assembly-x64":241,"./tradutor-assemblyscript":242,"./tradutor-calango":243,"./tradutor-elixir":244,"./tradutor-javascript":245,"./tradutor-mermaidjs":246,"./tradutor-portugol-ipt":247,"./tradutor-python":248,"./tradutor-reverso-javascript":249,"./tradutor-reverso-python":250,"./tradutor-reverso-tenda":251,"./tradutor-ruby":252,"./tradutor-webassembly":253}],231:[function(require,module,exports){
27567
27570
  "use strict";
27568
27571
  Object.defineProperty(exports, "__esModule", { value: true });
27569
27572
  exports.ArestaFluxograma = void 0;
@@ -28933,7 +28936,7 @@ __decorate([
28933
28936
  Decorators_1.Override
28934
28937
  ], Python3Lexer.prototype, "nextToken", null);
28935
28938
 
28936
- },{"./python3-parser":238,"antlr4ts/CommonToken":261,"antlr4ts/Decorators":265,"antlr4ts/Lexer":273,"antlr4ts/Token":290,"antlr4ts/VocabularyImpl":296,"antlr4ts/atn/ATNDeserializer":302,"antlr4ts/atn/LexerATNSimulator":323,"antlr4ts/misc/Utils":384}],238:[function(require,module,exports){
28939
+ },{"./python3-parser":238,"antlr4ts/CommonToken":263,"antlr4ts/Decorators":267,"antlr4ts/Lexer":275,"antlr4ts/Token":292,"antlr4ts/VocabularyImpl":298,"antlr4ts/atn/ATNDeserializer":304,"antlr4ts/atn/LexerATNSimulator":325,"antlr4ts/misc/Utils":386}],238:[function(require,module,exports){
28937
28940
  "use strict";
28938
28941
  // Generated from fontes\tradutores\python\Python3.g4 by ANTLR 4.9.0-SNAPSHOT
28939
28942
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
@@ -40180,7 +40183,7 @@ class Yield_argContext extends ParserRuleContext_1.ParserRuleContext {
40180
40183
  }
40181
40184
  exports.Yield_argContext = Yield_argContext;
40182
40185
 
40183
- },{"antlr4ts/FailedPredicateException":269,"antlr4ts/NoViableAltException":277,"antlr4ts/Parser":278,"antlr4ts/ParserRuleContext":281,"antlr4ts/RecognitionException":284,"antlr4ts/Token":290,"antlr4ts/VocabularyImpl":296,"antlr4ts/atn/ATN":298,"antlr4ts/atn/ATNDeserializer":302,"antlr4ts/atn/ParserATNSimulator":339,"antlr4ts/misc/Utils":384}],239:[function(require,module,exports){
40186
+ },{"antlr4ts/FailedPredicateException":271,"antlr4ts/NoViableAltException":279,"antlr4ts/Parser":280,"antlr4ts/ParserRuleContext":283,"antlr4ts/RecognitionException":286,"antlr4ts/Token":292,"antlr4ts/VocabularyImpl":298,"antlr4ts/atn/ATN":300,"antlr4ts/atn/ATNDeserializer":304,"antlr4ts/atn/ParserATNSimulator":341,"antlr4ts/misc/Utils":386}],239:[function(require,module,exports){
40184
40187
  "use strict";
40185
40188
  Object.defineProperty(exports, "__esModule", { value: true });
40186
40189
  exports.TradutorAssemblyARM = void 0;
@@ -40907,6 +40910,692 @@ exports.TradutorAssemblyARM = TradutorAssemblyARM;
40907
40910
  },{"../construtos":62,"../declaracoes":110}],240:[function(require,module,exports){
40908
40911
  "use strict";
40909
40912
  Object.defineProperty(exports, "__esModule", { value: true });
40913
+ exports.TradutorAssemblyRISCV = void 0;
40914
+ const construtos_1 = require("../construtos");
40915
+ const declaracoes_1 = require("../declaracoes");
40916
+ class TradutorAssemblyRISCV {
40917
+ constructor(alvo = 'linux-rv64') {
40918
+ this.alvo = alvo;
40919
+ this.indentacao = 0;
40920
+ this.contadorLabels = 0;
40921
+ this.variaveis = new Map();
40922
+ // s2-s9 são callee-saved — seguros para usar como scratch entre chamadas
40923
+ this.registradoresDisponiveis = ['s2', 's3', 's4', 's5', 's6', 's7', 's8', 's9'];
40924
+ this.pilhaRegistradores = [];
40925
+ this.bss = '.bss\n';
40926
+ this.data = '.data\n';
40927
+ this.dicionarioConstrutos = {
40928
+ AcessoIndiceVariavel: this.traduzirAcessoIndiceVariavel.bind(this),
40929
+ AcessoMetodoOuPropriedade: this.traduzirConstrutoAcessoMetodo.bind(this),
40930
+ Agrupamento: this.traduzirConstrutoAgrupamento.bind(this),
40931
+ AtribuicaoPorIndice: this.traduzirConstrutoAtribuicaoPorIndice.bind(this),
40932
+ Atribuir: this.traduzirConstrutoAtribuir.bind(this),
40933
+ Binario: this.traduzirConstrutoBinario.bind(this),
40934
+ Chamada: this.traduzirConstrutoChamada.bind(this),
40935
+ DefinirValor: this.traduzirConstrutoDefinirValor.bind(this),
40936
+ FuncaoConstruto: this.traduzirFuncaoConstruto.bind(this),
40937
+ Isto: () => 'this',
40938
+ Literal: this.traduzirConstrutoLiteral.bind(this),
40939
+ Logico: this.traduzirConstrutoLogico.bind(this),
40940
+ TipoDe: this.traduzirConstrutoTipoDe.bind(this),
40941
+ Unario: this.traduzirConstrutoUnario.bind(this),
40942
+ Variavel: this.traduzirConstrutoVariavel.bind(this),
40943
+ Vetor: this.traduzirConstrutoVetor.bind(this),
40944
+ };
40945
+ this.dicionarioDeclaracoes = {
40946
+ Bloco: this.traduzirDeclaracaoBloco.bind(this),
40947
+ Enquanto: this.traduzirDeclaracaoEnquanto.bind(this),
40948
+ Continua: () => 'j .continue_label',
40949
+ Escolha: this.traduzirDeclaracaoEscolha.bind(this),
40950
+ Escreva: this.traduzirDeclaracaoEscreva.bind(this),
40951
+ Expressao: this.traduzirDeclaracaoExpressao.bind(this),
40952
+ Fazer: this.traduzirDeclaracaoFazer.bind(this),
40953
+ Falhar: this.traduzirDeclaracaoFalhar.bind(this),
40954
+ FuncaoDeclaracao: this.traduzirDeclaracaoFuncao.bind(this),
40955
+ Importar: this.traduzirDeclaracaoImportar.bind(this),
40956
+ Leia: this.traduzirDeclaracaoLeia.bind(this),
40957
+ Para: this.traduzirDeclaracaoPara.bind(this),
40958
+ ParaCada: this.traduzirDeclaracaoParaCada.bind(this),
40959
+ Retorna: this.traduzirDeclaracaoRetorna.bind(this),
40960
+ Se: this.traduzirDeclaracaoSe.bind(this),
40961
+ Sustar: () => 'j .break_label',
40962
+ Classe: this.traduzirDeclaracaoClasse.bind(this),
40963
+ Tente: this.traduzirDeclaracaoTente.bind(this),
40964
+ Const: this.traduzirDeclaracaoConst.bind(this),
40965
+ Var: this.traduzirDeclaracaoVar.bind(this),
40966
+ };
40967
+ this.indentacao = 0;
40968
+ this.text = `
40969
+ .text
40970
+ .global _start
40971
+
40972
+ _start:`;
40973
+ }
40974
+ gerarDigitoAleatorio() {
40975
+ let result = '';
40976
+ const digits = '0123456789';
40977
+ for (let i = 0; i < 5; i++) {
40978
+ const randomIndex = Math.floor(Math.random() * digits.length);
40979
+ result += digits.charAt(randomIndex);
40980
+ }
40981
+ return result;
40982
+ }
40983
+ gerarLabel() {
40984
+ return `.L${this.contadorLabels++}`;
40985
+ }
40986
+ obterRegistrador() {
40987
+ if (this.registradoresDisponiveis.length > 0) {
40988
+ const reg = this.registradoresDisponiveis.pop();
40989
+ this.pilhaRegistradores.push(reg);
40990
+ return reg;
40991
+ }
40992
+ return 'a0'; // fallback
40993
+ }
40994
+ liberarRegistrador(reg) {
40995
+ const index = this.pilhaRegistradores.indexOf(reg);
40996
+ if (index > -1) {
40997
+ this.pilhaRegistradores.splice(index, 1);
40998
+ this.registradoresDisponiveis.push(reg);
40999
+ }
41000
+ }
41001
+ // Emite a instrução de carga correta para o registrador destino.
41002
+ // RISC-V não tem um `ldr reg, =value` polimórfico como ARM —
41003
+ // usa `li` para inteiros e `la` para endereços de símbolos.
41004
+ emitirCarga(registrador, valor) {
41005
+ if (valor === registrador)
41006
+ return;
41007
+ if (valor === 'null') {
41008
+ this.text += `\n li ${registrador}, 0`;
41009
+ }
41010
+ else if (/^-?\d+$/.test(valor) || valor === 'true' || valor === 'false') {
41011
+ const numVal = valor === 'true' ? '1' : valor === 'false' ? '0' : valor;
41012
+ this.text += `\n li ${registrador}, ${numVal}`;
41013
+ }
41014
+ else if (/^-?\d+\.\d+$/.test(valor)) {
41015
+ // Ponto flutuante: armazenar em .data e carregar endereço.
41016
+ // Operações FPU não são suportadas por esta implementação básica.
41017
+ const floatLabel = `float_${this.gerarDigitoAleatorio()}`;
41018
+ this.data += ` ${floatLabel}: .double ${valor}\n`;
41019
+ this.text += `\n la ${registrador}, ${floatLabel}`;
41020
+ }
41021
+ else {
41022
+ this.text += `\n la ${registrador}, ${valor}`;
41023
+ }
41024
+ }
41025
+ // Implementação dos Construtos
41026
+ traduzirAcessoIndiceVariavel(construto) {
41027
+ var _a;
41028
+ let nomeVar;
41029
+ if (construto.entidadeChamada instanceof construtos_1.Variavel) {
41030
+ nomeVar = (_a = construto.entidadeChamada.simbolo) === null || _a === void 0 ? void 0 : _a.lexema;
41031
+ }
41032
+ if (!nomeVar)
41033
+ nomeVar = 'unknown';
41034
+ const indice = this.dicionarioConstrutos[construto.indice.constructor.name](construto.indice);
41035
+ const reg = this.obterRegistrador();
41036
+ this.text += `\n la ${reg}, ${nomeVar}`;
41037
+ this.emitirCarga('a0', indice);
41038
+ this.text += `
41039
+ slli a0, a0, 3 # multiplicar índice por 8 (palavra de 64 bits)
41040
+ add ${reg}, ${reg}, a0
41041
+ ld a0, 0(${reg})`;
41042
+ this.liberarRegistrador(reg);
41043
+ return 'a0';
41044
+ }
41045
+ traduzirConstrutoAcessoMetodo(construto) {
41046
+ const objeto = this.dicionarioConstrutos[construto.objeto.constructor.name](construto.objeto);
41047
+ return `${objeto}_${construto.nomeMetodo}`;
41048
+ }
41049
+ traduzirConstrutoAgrupamento(construto) {
41050
+ return this.dicionarioConstrutos[construto.expressao.constructor.name](construto.expressao);
41051
+ }
41052
+ traduzirConstrutoAtribuicaoPorIndice(construto) {
41053
+ var _a;
41054
+ let nomeVar;
41055
+ if (construto.objeto instanceof construtos_1.Variavel) {
41056
+ nomeVar = (_a = construto.objeto.simbolo) === null || _a === void 0 ? void 0 : _a.lexema;
41057
+ }
41058
+ if (!nomeVar)
41059
+ nomeVar = 'unknown';
41060
+ const indice = this.dicionarioConstrutos[construto.indice.constructor.name](construto.indice);
41061
+ const valor = this.dicionarioConstrutos[construto.valor.constructor.name](construto.valor);
41062
+ const reg = this.obterRegistrador();
41063
+ this.text += `\n la ${reg}, ${nomeVar}`;
41064
+ this.emitirCarga('a1', indice);
41065
+ this.text += `
41066
+ slli a1, a1, 3 # multiplicar índice por 8
41067
+ add ${reg}, ${reg}, a1`;
41068
+ this.emitirCarga('a1', valor);
41069
+ this.text += `\n sd a1, 0(${reg})`;
41070
+ this.liberarRegistrador(reg);
41071
+ }
41072
+ traduzirConstrutoAtribuir(construto) {
41073
+ var _a;
41074
+ let nomeVar;
41075
+ if (construto.alvo instanceof construtos_1.Variavel) {
41076
+ nomeVar = (_a = construto.alvo.simbolo) === null || _a === void 0 ? void 0 : _a.lexema;
41077
+ }
41078
+ if (!nomeVar)
41079
+ return;
41080
+ const valor = this.dicionarioConstrutos[construto.valor.constructor.name](construto.valor);
41081
+ if (!this.variaveis.has(nomeVar)) {
41082
+ const varLabel = `var_${nomeVar}`;
41083
+ this.bss += ` ${varLabel}: .space 8\n`;
41084
+ this.variaveis.set(nomeVar, varLabel);
41085
+ }
41086
+ this.emitirCarga('a0', valor);
41087
+ this.text += `
41088
+ la a1, ${this.variaveis.get(nomeVar)}
41089
+ sd a0, 0(a1)`;
41090
+ }
41091
+ traduzirConstrutoBinario(construto) {
41092
+ const esquerda = this.dicionarioConstrutos[construto.esquerda.constructor.name](construto.esquerda);
41093
+ const direita = this.dicionarioConstrutos[construto.direita.constructor.name](construto.direita);
41094
+ const operador = construto.operador.lexema;
41095
+ const reg = this.obterRegistrador();
41096
+ // Carregar operando esquerdo em a0
41097
+ if (esquerda !== 'a0') {
41098
+ this.emitirCarga('a0', esquerda);
41099
+ }
41100
+ // Carregar operando direito no registrador scratch
41101
+ this.emitirCarga(reg, direita);
41102
+ switch (operador) {
41103
+ case '+':
41104
+ this.text += `\n add a0, a0, ${reg}`;
41105
+ break;
41106
+ case '-':
41107
+ this.text += `\n sub a0, a0, ${reg}`;
41108
+ break;
41109
+ case '*':
41110
+ this.text += `\n mul a0, a0, ${reg}`;
41111
+ break;
41112
+ case '/':
41113
+ this.text += `\n div a0, a0, ${reg}`;
41114
+ break;
41115
+ case '%':
41116
+ // `rem` é instrução única na extensão M (universal em rv64 Linux)
41117
+ this.text += `\n rem a0, a0, ${reg}`;
41118
+ break;
41119
+ case '<':
41120
+ // slt: a0 = 1 se a0 < reg
41121
+ this.text += `\n slt a0, a0, ${reg}`;
41122
+ break;
41123
+ case '>':
41124
+ // slt com operandos trocados: a0 = 1 se reg < a0, i.e., a0 > reg
41125
+ this.text += `\n slt a0, ${reg}, a0`;
41126
+ break;
41127
+ case '<=':
41128
+ // NOT(a0 > reg) = NOT(reg < a0)
41129
+ this.text += `\n slt a0, ${reg}, a0\n xori a0, a0, 1`;
41130
+ break;
41131
+ case '>=':
41132
+ // NOT(a0 < reg)
41133
+ this.text += `\n slt a0, a0, ${reg}\n xori a0, a0, 1`;
41134
+ break;
41135
+ case '==':
41136
+ case '===':
41137
+ // sub + seqz: a0 = 1 se a0 - reg == 0
41138
+ this.text += `\n sub a0, a0, ${reg}\n seqz a0, a0`;
41139
+ break;
41140
+ case '!=':
41141
+ case '!==':
41142
+ // sub + snez: a0 = 1 se a0 - reg != 0
41143
+ this.text += `\n sub a0, a0, ${reg}\n snez a0, a0`;
41144
+ break;
41145
+ default:
41146
+ this.text += `\n # Operador ${operador} não implementado`;
41147
+ }
41148
+ this.liberarRegistrador(reg);
41149
+ return 'a0';
41150
+ }
41151
+ traduzirConstrutoChamada(construto) {
41152
+ var _a;
41153
+ let nomeFuncao = 'funcao';
41154
+ if (construto.entidadeChamada instanceof construtos_1.Variavel) {
41155
+ nomeFuncao = ((_a = construto.entidadeChamada.simbolo) === null || _a === void 0 ? void 0 : _a.lexema) || 'funcao';
41156
+ }
41157
+ // Convenção RISC-V: a0-a7 para até 8 argumentos
41158
+ const registrosArgs = ['a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7'];
41159
+ construto.argumentos.forEach((arg, index) => {
41160
+ if (index < registrosArgs.length) {
41161
+ const valorArg = this.dicionarioConstrutos[arg.constructor.name](arg);
41162
+ if (valorArg !== registrosArgs[index]) {
41163
+ this.emitirCarga(registrosArgs[index], valorArg);
41164
+ }
41165
+ }
41166
+ });
41167
+ this.text += `\n call ${nomeFuncao}`;
41168
+ }
41169
+ traduzirConstrutoDefinirValor(construto) {
41170
+ const objeto = this.dicionarioConstrutos[construto.objeto.constructor.name](construto.objeto);
41171
+ const valor = this.dicionarioConstrutos[construto.valor.constructor.name](construto.valor);
41172
+ this.emitirCarga('a0', valor);
41173
+ this.text += `
41174
+ la a1, ${objeto}
41175
+ sd a0, 0(a1)`;
41176
+ }
41177
+ traduzirFuncaoConstruto(construto) {
41178
+ const labelFuncao = `func_${this.gerarDigitoAleatorio()}`;
41179
+ this.text += `
41180
+
41181
+ ${labelFuncao}:
41182
+ addi sp, sp, -16
41183
+ sd ra, 8(sp)
41184
+ sd s0, 0(sp)
41185
+ addi s0, sp, 16`;
41186
+ if (construto.corpo && Array.isArray(construto.corpo)) {
41187
+ construto.corpo.forEach((declaracao) => {
41188
+ if (this.dicionarioDeclaracoes[declaracao.constructor.name]) {
41189
+ this.dicionarioDeclaracoes[declaracao.constructor.name](declaracao);
41190
+ }
41191
+ });
41192
+ }
41193
+ this.text += `
41194
+ ld ra, 8(sp)
41195
+ ld s0, 0(sp)
41196
+ addi sp, sp, 16
41197
+ ret`;
41198
+ }
41199
+ traduzirConstrutoLiteral(construto) {
41200
+ if (typeof construto.valor === 'string') {
41201
+ return this.criaStringLiteral(construto);
41202
+ }
41203
+ return String(construto.valor);
41204
+ }
41205
+ traduzirConstrutoLogico(construto) {
41206
+ const esquerda = this.dicionarioConstrutos[construto.esquerda.constructor.name](construto.esquerda);
41207
+ const direita = this.dicionarioConstrutos[construto.direita.constructor.name](construto.direita);
41208
+ const operador = construto.operador.lexema;
41209
+ const labelVerdadeiro = this.gerarLabel();
41210
+ const labelFim = this.gerarLabel();
41211
+ this.emitirCarga('a0', esquerda);
41212
+ if (operador === 'e' || operador === '&&') {
41213
+ this.text += `\n beqz a0, ${labelFim}`;
41214
+ this.emitirCarga('a0', direita);
41215
+ this.text += `
41216
+ beqz a0, ${labelFim}
41217
+ ${labelVerdadeiro}:
41218
+ li a0, 1
41219
+ ${labelFim}:`;
41220
+ }
41221
+ else if (operador === 'ou' || operador === '||') {
41222
+ this.text += `\n bnez a0, ${labelVerdadeiro}`;
41223
+ this.emitirCarga('a0', direita);
41224
+ this.text += `
41225
+ bnez a0, ${labelVerdadeiro}
41226
+ li a0, 0
41227
+ j ${labelFim}
41228
+ ${labelVerdadeiro}:
41229
+ li a0, 1
41230
+ ${labelFim}:`;
41231
+ }
41232
+ return 'a0';
41233
+ }
41234
+ traduzirConstrutoTipoDe(construto) {
41235
+ return this.dicionarioConstrutos[construto.valor.constructor.name](construto.valor);
41236
+ }
41237
+ traduzirConstrutoUnario(construto) {
41238
+ const operando = this.dicionarioConstrutos[construto.operando.constructor.name](construto.operando);
41239
+ const operador = construto.operador.lexema;
41240
+ this.emitirCarga('a0', operando);
41241
+ if (operador === '-') {
41242
+ this.text += `\n neg a0, a0`;
41243
+ }
41244
+ else if (operador === '!' || operador === 'nao') {
41245
+ // seqz: a0 = 1 se a0 == 0, else 0
41246
+ this.text += `\n seqz a0, a0`;
41247
+ }
41248
+ return 'a0';
41249
+ }
41250
+ traduzirConstrutoVariavel(construto) {
41251
+ var _a;
41252
+ const nomeVar = (_a = construto.simbolo) === null || _a === void 0 ? void 0 : _a.lexema;
41253
+ if (nomeVar && this.variaveis.has(nomeVar)) {
41254
+ const varLabel = this.variaveis.get(nomeVar);
41255
+ this.text += `
41256
+ la a0, ${varLabel}
41257
+ ld a0, 0(a0)`;
41258
+ return 'a0';
41259
+ }
41260
+ return nomeVar || 'unknown';
41261
+ }
41262
+ traduzirConstrutoVetor(construto) {
41263
+ const labelVetor = `vetor_${this.gerarDigitoAleatorio()}`;
41264
+ // `elementos` filtra nós sintáticos (Separador, ComentarioComoConstruto)
41265
+ const elementos = construto.elementos;
41266
+ // Cada elemento ocupa 8 bytes em rv64
41267
+ this.bss += ` ${labelVetor}: .space ${elementos.length * 8}\n`;
41268
+ elementos.forEach((valor, index) => {
41269
+ if (this.dicionarioConstrutos[valor.constructor.name]) {
41270
+ const valorTraduzido = this.dicionarioConstrutos[valor.constructor.name](valor);
41271
+ this.emitirCarga('a0', valorTraduzido);
41272
+ this.text += `
41273
+ la a1, ${labelVetor}
41274
+ sd a0, ${index * 8}(a1)`;
41275
+ }
41276
+ });
41277
+ return labelVetor;
41278
+ }
41279
+ // Implementação das Declarações
41280
+ traduzirDeclaracaoBloco(declaracao) {
41281
+ if (declaracao.declaracoes && Array.isArray(declaracao.declaracoes)) {
41282
+ declaracao.declaracoes.forEach((decl) => {
41283
+ if (this.dicionarioDeclaracoes[decl.constructor.name]) {
41284
+ this.dicionarioDeclaracoes[decl.constructor.name](decl);
41285
+ }
41286
+ });
41287
+ }
41288
+ }
41289
+ traduzirDeclaracaoEnquanto(declaracao) {
41290
+ const labelInicio = this.gerarLabel();
41291
+ const labelFim = this.gerarLabel();
41292
+ this.text += `\n${labelInicio}:`;
41293
+ const condicao = this.dicionarioConstrutos[declaracao.condicao.constructor.name](declaracao.condicao);
41294
+ if (condicao !== 'a0') {
41295
+ this.emitirCarga('a0', condicao);
41296
+ }
41297
+ this.text += `\n beqz a0, ${labelFim}`;
41298
+ if (this.dicionarioDeclaracoes[declaracao.corpo.constructor.name]) {
41299
+ this.dicionarioDeclaracoes[declaracao.corpo.constructor.name](declaracao.corpo);
41300
+ }
41301
+ this.text += `
41302
+ j ${labelInicio}
41303
+ ${labelFim}:`;
41304
+ }
41305
+ traduzirDeclaracaoEscolha(declaracao) {
41306
+ const labelFim = this.gerarLabel();
41307
+ const valorEscolha = this.dicionarioConstrutos[declaracao.identificadorOuLiteral.constructor.name](declaracao.identificadorOuLiteral);
41308
+ if (declaracao.caminhos && Array.isArray(declaracao.caminhos)) {
41309
+ declaracao.caminhos.forEach((caminho) => {
41310
+ const labelProximo = this.gerarLabel();
41311
+ if (caminho.condicoes && caminho.condicoes[0]) {
41312
+ const valorCaso = this.dicionarioConstrutos[caminho.condicoes[0].constructor.name](caminho.condicoes[0]);
41313
+ this.emitirCarga('a0', valorEscolha);
41314
+ this.emitirCarga('a1', valorCaso);
41315
+ this.text += `\n bne a0, a1, ${labelProximo}`;
41316
+ if (caminho.declaracoes && Array.isArray(caminho.declaracoes)) {
41317
+ caminho.declaracoes.forEach((decl) => {
41318
+ if (this.dicionarioDeclaracoes[decl.constructor.name]) {
41319
+ this.dicionarioDeclaracoes[decl.constructor.name](decl);
41320
+ }
41321
+ });
41322
+ }
41323
+ this.text += `
41324
+ j ${labelFim}
41325
+ ${labelProximo}:`;
41326
+ }
41327
+ });
41328
+ }
41329
+ this.text += `\n${labelFim}:`;
41330
+ }
41331
+ traduzirDeclaracaoExpressao(declaracao) {
41332
+ if (declaracao.expressao &&
41333
+ this.dicionarioConstrutos[declaracao.expressao.constructor.name]) {
41334
+ this.dicionarioConstrutos[declaracao.expressao.constructor.name](declaracao.expressao);
41335
+ }
41336
+ }
41337
+ traduzirDeclaracaoFazer(declaracao) {
41338
+ const labelInicio = this.gerarLabel();
41339
+ this.text += `\n${labelInicio}:`;
41340
+ if (declaracao.caminhoFazer && declaracao.caminhoFazer.declaracoes) {
41341
+ declaracao.caminhoFazer.declaracoes.forEach((decl) => {
41342
+ if (this.dicionarioDeclaracoes[decl.constructor.name]) {
41343
+ this.dicionarioDeclaracoes[decl.constructor.name](decl);
41344
+ }
41345
+ });
41346
+ }
41347
+ if (declaracao.condicaoEnquanto) {
41348
+ const condicao = this.dicionarioConstrutos[declaracao.condicaoEnquanto.constructor.name](declaracao.condicaoEnquanto);
41349
+ if (condicao !== 'a0') {
41350
+ this.emitirCarga('a0', condicao);
41351
+ }
41352
+ this.text += `\n bnez a0, ${labelInicio}`;
41353
+ }
41354
+ }
41355
+ traduzirDeclaracaoFalhar(declaracao) {
41356
+ let mensagem = '"Erro"';
41357
+ if (declaracao.explicacao &&
41358
+ typeof declaracao.explicacao === 'object' &&
41359
+ 'constructor' in declaracao.explicacao) {
41360
+ const explicacao = declaracao.explicacao;
41361
+ if (explicacao.constructor && this.dicionarioConstrutos[explicacao.constructor.name]) {
41362
+ mensagem = this.dicionarioConstrutos[explicacao.constructor.name](explicacao);
41363
+ }
41364
+ }
41365
+ this.text += `
41366
+ # Falhar com mensagem: ${mensagem}
41367
+ li a0, 1
41368
+ li a7, 93 # sys_exit
41369
+ ecall`;
41370
+ }
41371
+ traduzirDeclaracaoFuncao(declaracao) {
41372
+ var _a;
41373
+ const nomeFuncao = ((_a = declaracao.simbolo) === null || _a === void 0 ? void 0 : _a.lexema) || 'funcao';
41374
+ this.text += `
41375
+
41376
+ ${nomeFuncao}:
41377
+ addi sp, sp, -16
41378
+ sd ra, 8(sp)
41379
+ sd s0, 0(sp)
41380
+ addi s0, sp, 16`;
41381
+ if (declaracao.funcao &&
41382
+ declaracao.funcao.corpo &&
41383
+ Array.isArray(declaracao.funcao.corpo)) {
41384
+ declaracao.funcao.corpo.forEach((decl) => {
41385
+ if (this.dicionarioDeclaracoes[decl.constructor.name]) {
41386
+ this.dicionarioDeclaracoes[decl.constructor.name](decl);
41387
+ }
41388
+ });
41389
+ }
41390
+ this.text += `
41391
+ ld ra, 8(sp)
41392
+ ld s0, 0(sp)
41393
+ addi sp, sp, 16
41394
+ ret`;
41395
+ }
41396
+ traduzirDeclaracaoImportar(declaracao) {
41397
+ this.text += `\n # Importar: ${declaracao.caminho || 'unknown'}`;
41398
+ }
41399
+ traduzirDeclaracaoLeia(declaracao) {
41400
+ var _a;
41401
+ let nomeVar;
41402
+ if (declaracao.argumentos &&
41403
+ declaracao.argumentos[0] &&
41404
+ declaracao.argumentos[0] instanceof construtos_1.Variavel) {
41405
+ nomeVar = (_a = declaracao.argumentos[0].simbolo) === null || _a === void 0 ? void 0 : _a.lexema;
41406
+ }
41407
+ if (!nomeVar)
41408
+ return;
41409
+ if (!this.variaveis.has(nomeVar)) {
41410
+ const varLabel = `var_${nomeVar}`;
41411
+ this.bss += ` ${varLabel}: .space 256\n`;
41412
+ this.variaveis.set(nomeVar, varLabel);
41413
+ }
41414
+ this.text += `
41415
+ li a0, 0 # fd stdin
41416
+ la a1, ${this.variaveis.get(nomeVar)}
41417
+ li a2, 256
41418
+ li a7, 63 # sys_read
41419
+ ecall`;
41420
+ }
41421
+ traduzirDeclaracaoPara(declaracao) {
41422
+ const labelInicio = this.gerarLabel();
41423
+ const labelFim = this.gerarLabel();
41424
+ if (declaracao.inicializador) {
41425
+ const tipoInicializador = declaracao.inicializador.constructor.name;
41426
+ if (this.dicionarioDeclaracoes[tipoInicializador]) {
41427
+ this.dicionarioDeclaracoes[tipoInicializador](declaracao.inicializador);
41428
+ }
41429
+ else if (this.dicionarioConstrutos[tipoInicializador]) {
41430
+ this.dicionarioConstrutos[tipoInicializador](declaracao.inicializador);
41431
+ }
41432
+ }
41433
+ this.text += `\n${labelInicio}:`;
41434
+ if (declaracao.condicao) {
41435
+ const condicao = this.dicionarioConstrutos[declaracao.condicao.constructor.name](declaracao.condicao);
41436
+ if (condicao !== 'a0') {
41437
+ this.emitirCarga('a0', condicao);
41438
+ }
41439
+ this.text += `\n beqz a0, ${labelFim}`;
41440
+ }
41441
+ if (this.dicionarioDeclaracoes[declaracao.corpo.constructor.name]) {
41442
+ this.dicionarioDeclaracoes[declaracao.corpo.constructor.name](declaracao.corpo);
41443
+ }
41444
+ if (declaracao.incrementar) {
41445
+ if (this.dicionarioConstrutos[declaracao.incrementar.constructor.name]) {
41446
+ this.dicionarioConstrutos[declaracao.incrementar.constructor.name](declaracao.incrementar);
41447
+ }
41448
+ }
41449
+ this.text += `
41450
+ j ${labelInicio}
41451
+ ${labelFim}:`;
41452
+ }
41453
+ traduzirDeclaracaoParaCada(declaracao) {
41454
+ const labelInicio = this.gerarLabel();
41455
+ const labelFim = this.gerarLabel();
41456
+ const vetor = declaracao.vetorOuDicionario;
41457
+ let tamanhoVetor = 0;
41458
+ if (vetor instanceof construtos_1.Vetor) {
41459
+ tamanhoVetor = vetor.tamanho || 0;
41460
+ }
41461
+ // t0: contador; t1: limite (caller-saved, seguros aqui)
41462
+ this.text += `
41463
+ li t0, 0 # contador
41464
+ li t1, ${tamanhoVetor}
41465
+ ${labelInicio}:
41466
+ bge t0, t1, ${labelFim}`;
41467
+ if (this.dicionarioDeclaracoes[declaracao.corpo.constructor.name]) {
41468
+ this.dicionarioDeclaracoes[declaracao.corpo.constructor.name](declaracao.corpo);
41469
+ }
41470
+ this.text += `
41471
+ addi t0, t0, 1
41472
+ j ${labelInicio}
41473
+ ${labelFim}:`;
41474
+ }
41475
+ traduzirDeclaracaoRetorna(declaracao) {
41476
+ if (declaracao.valor) {
41477
+ const valor = this.dicionarioConstrutos[declaracao.valor.constructor.name](declaracao.valor);
41478
+ this.emitirCarga('a0', valor);
41479
+ }
41480
+ this.text += `
41481
+ ld ra, 8(sp)
41482
+ ld s0, 0(sp)
41483
+ addi sp, sp, 16
41484
+ ret`;
41485
+ }
41486
+ traduzirDeclaracaoSe(declaracao) {
41487
+ const labelSenao = this.gerarLabel();
41488
+ const labelFim = this.gerarLabel();
41489
+ const condicao = this.dicionarioConstrutos[declaracao.condicao.constructor.name](declaracao.condicao);
41490
+ if (condicao !== 'a0') {
41491
+ this.emitirCarga('a0', condicao);
41492
+ }
41493
+ this.text += `\n beqz a0, ${labelSenao}`;
41494
+ if (this.dicionarioDeclaracoes[declaracao.caminhoEntao.constructor.name]) {
41495
+ this.dicionarioDeclaracoes[declaracao.caminhoEntao.constructor.name](declaracao.caminhoEntao);
41496
+ }
41497
+ this.text += `
41498
+ j ${labelFim}
41499
+ ${labelSenao}:`;
41500
+ if (declaracao.caminhoSenao &&
41501
+ this.dicionarioDeclaracoes[declaracao.caminhoSenao.constructor.name]) {
41502
+ this.dicionarioDeclaracoes[declaracao.caminhoSenao.constructor.name](declaracao.caminhoSenao);
41503
+ }
41504
+ this.text += `\n${labelFim}:`;
41505
+ }
41506
+ traduzirDeclaracaoClasse(declaracao) {
41507
+ var _a;
41508
+ this.text += `\n # Classe: ${((_a = declaracao.simbolo) === null || _a === void 0 ? void 0 : _a.lexema) || 'unknown'}`;
41509
+ }
41510
+ traduzirDeclaracaoTente(declaracao) {
41511
+ this.text += `\n # Tente-pegue`;
41512
+ if (declaracao.caminhoTente && Array.isArray(declaracao.caminhoTente)) {
41513
+ declaracao.caminhoTente.forEach((decl) => {
41514
+ if (this.dicionarioDeclaracoes[decl.constructor.name]) {
41515
+ this.dicionarioDeclaracoes[decl.constructor.name](decl);
41516
+ }
41517
+ });
41518
+ }
41519
+ }
41520
+ traduzirDeclaracaoConst(declaracao) {
41521
+ var _a;
41522
+ const nomeVar = (_a = declaracao.simbolo) === null || _a === void 0 ? void 0 : _a.lexema;
41523
+ if (!nomeVar)
41524
+ return;
41525
+ const valor = this.dicionarioConstrutos[declaracao.inicializador.constructor.name](declaracao.inicializador);
41526
+ const varLabel = `const_${nomeVar}`;
41527
+ this.data += ` ${varLabel}: .dword ${valor}\n`;
41528
+ this.variaveis.set(nomeVar, varLabel);
41529
+ }
41530
+ traduzirDeclaracaoVar(declaracao) {
41531
+ var _a;
41532
+ const nomeVar = (_a = declaracao.simbolo) === null || _a === void 0 ? void 0 : _a.lexema;
41533
+ if (!nomeVar)
41534
+ return;
41535
+ const varLabel = `var_${nomeVar}`;
41536
+ this.bss += ` ${varLabel}: .space 8\n`;
41537
+ this.variaveis.set(nomeVar, varLabel);
41538
+ if (declaracao.inicializador && declaracao.inicializador.valor !== null) {
41539
+ const tipoInicializador = declaracao.inicializador.constructor.name;
41540
+ if (declaracao.inicializador instanceof construtos_1.Vetor) {
41541
+ const labelVetor = this.traduzirConstrutoVetor(declaracao.inicializador);
41542
+ this.variaveis.set(nomeVar, labelVetor);
41543
+ }
41544
+ else if (this.dicionarioConstrutos[tipoInicializador]) {
41545
+ const valor = this.dicionarioConstrutos[tipoInicializador](declaracao.inicializador);
41546
+ this.emitirCarga('a0', valor);
41547
+ this.text += `
41548
+ la a1, ${varLabel}
41549
+ sd a0, 0(a1)`;
41550
+ }
41551
+ }
41552
+ }
41553
+ criaStringLiteral(literal) {
41554
+ const varLiteral = `Delegua_${this.gerarDigitoAleatorio()}`;
41555
+ this.data += ` ${varLiteral}: .asciz "${literal.valor}"\n`;
41556
+ return varLiteral;
41557
+ }
41558
+ criaTamanhoNaMemoriaReferenteAVar(nomeStringLiteral) {
41559
+ return `tam_${nomeStringLiteral}`;
41560
+ }
41561
+ traduzirDeclaracaoEscreva(declaracaoEscreva) {
41562
+ let nomeStringLiteral = '';
41563
+ let tamanhoString = '';
41564
+ if (declaracaoEscreva.argumentos[0] instanceof construtos_1.Literal) {
41565
+ nomeStringLiteral = this.criaStringLiteral(declaracaoEscreva.argumentos[0]);
41566
+ const stringValue = declaracaoEscreva.argumentos[0].valor;
41567
+ tamanhoString = String(stringValue.length);
41568
+ }
41569
+ // sys_write(fd=1, buf, count): a7=64, a0=fd, a1=buf, a2=count
41570
+ this.text += `
41571
+ la a1, ${nomeStringLiteral}
41572
+ li a2, ${tamanhoString}
41573
+ li a0, 1 # fd stdout
41574
+ li a7, 64 # sys_write
41575
+ ecall`;
41576
+ }
41577
+ saidaSistema() {
41578
+ this.text += `
41579
+ li a0, 0 # código de saída
41580
+ li a7, 93 # sys_exit
41581
+ ecall`;
41582
+ }
41583
+ traduzir(declaracoes) {
41584
+ this.declaracoesDeClasses = declaracoes.filter((declaracao) => declaracao instanceof declaracoes_1.Classe);
41585
+ for (const declaracao of declaracoes) {
41586
+ if (this.dicionarioDeclaracoes[declaracao.constructor.name]) {
41587
+ this.dicionarioDeclaracoes[declaracao.constructor.name](declaracao);
41588
+ }
41589
+ }
41590
+ this.saidaSistema();
41591
+ return this.bss + '\n' + this.data + '\n' + this.text;
41592
+ }
41593
+ }
41594
+ exports.TradutorAssemblyRISCV = TradutorAssemblyRISCV;
41595
+
41596
+ },{"../construtos":62,"../declaracoes":110}],241:[function(require,module,exports){
41597
+ "use strict";
41598
+ Object.defineProperty(exports, "__esModule", { value: true });
40910
41599
  exports.TradutorAssemblyX64 = void 0;
40911
41600
  const construtos_1 = require("../construtos");
40912
41601
  const declaracoes_1 = require("../declaracoes");
@@ -40918,6 +41607,9 @@ class TradutorAssemblyX64 {
40918
41607
  this.variaveis = new Map();
40919
41608
  this.registradoresDisponiveis = ['rbx', 'r12', 'r13', 'r14', 'r15'];
40920
41609
  this.pilhaRegistradores = [];
41610
+ this.helperPrintIntEmitido = false;
41611
+ this.fmtIntWindowsEmitido = false;
41612
+ this.helpers = '';
40921
41613
  this.bss = 'section .bss\n';
40922
41614
  this.data = 'section .data\n';
40923
41615
  this.dicionarioConstrutos = {
@@ -40961,15 +41653,15 @@ class TradutorAssemblyX64 {
40961
41653
  Escreva: this.traduzirDeclaracaoEscreva.bind(this),
40962
41654
  };
40963
41655
  this.indentacao = 0;
40964
- this.text = `
41656
+ this.textoSaida = `
40965
41657
  section .text
40966
41658
  ${this.alvo === 'linux' ? 'global _start' : 'global main'}
40967
41659
  ${this.alvo === 'linux' ? '_start:' : 'main:'}`;
40968
41660
  if (this.alvo === 'windows') {
40969
- this.text =
41661
+ this.textoSaida =
40970
41662
  `
40971
41663
  extern printf
40972
- ` + this.text;
41664
+ ` + this.textoSaida;
40973
41665
  }
40974
41666
  }
40975
41667
  gerarDigitoAleatorio() {
@@ -41030,7 +41722,7 @@ extern printf
41030
41722
  }
41031
41723
  const indice = this.dicionarioConstrutos[construto.indice.constructor.name](construto.indice);
41032
41724
  const valor = this.dicionarioConstrutos[construto.valor.constructor.name](construto.valor);
41033
- this.text += `
41725
+ this.textoSaida += `
41034
41726
  mov rax, ${valor}
41035
41727
  mov [${nomeVar} + ${indice} * 8], rax`;
41036
41728
  }
@@ -41050,7 +41742,7 @@ extern printf
41050
41742
  this.bss += ` ${varLabel} resq 1\n`;
41051
41743
  this.variaveis.set(nomeVar, varLabel);
41052
41744
  }
41053
- this.text += `
41745
+ this.textoSaida += `
41054
41746
  mov rax, ${valor}
41055
41747
  mov [${this.variaveis.get(nomeVar)}], rax`;
41056
41748
  }
@@ -41058,39 +41750,75 @@ extern printf
41058
41750
  const esquerda = this.dicionarioConstrutos[construto.esquerda.constructor.name](construto.esquerda);
41059
41751
  const direita = this.dicionarioConstrutos[construto.direita.constructor.name](construto.direita);
41060
41752
  const operador = construto.operador.lexema;
41061
- const reg = this.obterRegistrador();
41062
- this.text += `
41753
+ const registrador = this.obterRegistrador();
41754
+ this.textoSaida += `
41063
41755
  mov rax, ${esquerda}
41064
- mov ${reg}, ${direita}`;
41756
+ mov ${registrador}, ${direita}`;
41065
41757
  switch (operador) {
41066
41758
  case '+':
41067
- this.text += `
41068
- add rax, ${reg}`;
41759
+ this.textoSaida += `
41760
+ add rax, ${registrador}`;
41069
41761
  break;
41070
41762
  case '-':
41071
- this.text += `
41072
- sub rax, ${reg}`;
41763
+ this.textoSaida += `
41764
+ sub rax, ${registrador}`;
41073
41765
  break;
41074
41766
  case '*':
41075
- this.text += `
41076
- imul rax, ${reg}`;
41767
+ this.textoSaida += `
41768
+ imul rax, ${registrador}`;
41077
41769
  break;
41078
41770
  case '/':
41079
- this.text += `
41771
+ this.textoSaida += `
41080
41772
  xor rdx, rdx
41081
- idiv ${reg}`;
41773
+ idiv ${registrador}`;
41082
41774
  break;
41083
41775
  case '%':
41084
- this.text += `
41776
+ this.textoSaida += `
41085
41777
  xor rdx, rdx
41086
- idiv ${reg}
41778
+ idiv ${registrador}
41087
41779
  mov rax, rdx`;
41088
41780
  break;
41781
+ case '<':
41782
+ this.textoSaida += `
41783
+ cmp rax, ${registrador}
41784
+ setl al
41785
+ movzx rax, al`;
41786
+ break;
41787
+ case '>':
41788
+ this.textoSaida += `
41789
+ cmp rax, ${registrador}
41790
+ setg al
41791
+ movzx rax, al`;
41792
+ break;
41793
+ case '<=':
41794
+ this.textoSaida += `
41795
+ cmp rax, ${registrador}
41796
+ setle al
41797
+ movzx rax, al`;
41798
+ break;
41799
+ case '>=':
41800
+ this.textoSaida += `
41801
+ cmp rax, ${registrador}
41802
+ setge al
41803
+ movzx rax, al`;
41804
+ break;
41805
+ case '==':
41806
+ this.textoSaida += `
41807
+ cmp rax, ${registrador}
41808
+ sete al
41809
+ movzx rax, al`;
41810
+ break;
41811
+ case '!=':
41812
+ this.textoSaida += `
41813
+ cmp rax, ${registrador}
41814
+ setne al
41815
+ movzx rax, al`;
41816
+ break;
41089
41817
  default:
41090
- this.text += `
41818
+ this.textoSaida += `
41091
41819
  ; Operador ${operador} não implementado`;
41092
41820
  }
41093
- this.liberarRegistrador(reg);
41821
+ this.liberarRegistrador(registrador);
41094
41822
  return 'rax';
41095
41823
  }
41096
41824
  traduzirConstrutoChamada(construto) {
@@ -41106,26 +41834,26 @@ extern printf
41106
41834
  construto.argumentos.forEach((arg, index) => {
41107
41835
  if (index < registrosArgs.length) {
41108
41836
  const valorArg = this.dicionarioConstrutos[arg.constructor.name](arg);
41109
- this.text += `
41837
+ this.textoSaida += `
41110
41838
  mov ${registrosArgs[index]}, ${valorArg}`;
41111
41839
  }
41112
41840
  else {
41113
41841
  // TODO: push extra args on stack according to target ABI
41114
41842
  }
41115
41843
  });
41116
- this.text += `
41844
+ this.textoSaida += `
41117
41845
  call ${nomeFuncao}`;
41118
41846
  }
41119
41847
  traduzirConstrutoDefinirValor(construto) {
41120
41848
  const objeto = this.dicionarioConstrutos[construto.objeto.constructor.name](construto.objeto);
41121
41849
  const valor = this.dicionarioConstrutos[construto.valor.constructor.name](construto.valor);
41122
- this.text += `
41850
+ this.textoSaida += `
41123
41851
  mov rax, ${valor}
41124
41852
  mov [${objeto}], rax`;
41125
41853
  }
41126
41854
  traduzirFuncaoConstruto(construto) {
41127
41855
  const labelFuncao = `func_${this.gerarDigitoAleatorio()}`;
41128
- this.text += `
41856
+ this.textoSaida += `
41129
41857
  ${labelFuncao}:
41130
41858
  push rbp
41131
41859
  mov rbp, rsp`;
@@ -41137,7 +41865,7 @@ ${labelFuncao}:
41137
41865
  }
41138
41866
  });
41139
41867
  }
41140
- this.text += `
41868
+ this.textoSaida += `
41141
41869
  pop rbp
41142
41870
  ret`;
41143
41871
  }
@@ -41153,11 +41881,11 @@ ${labelFuncao}:
41153
41881
  const operador = construto.operador.lexema;
41154
41882
  const labelVerdadeiro = this.gerarLabel();
41155
41883
  const labelFim = this.gerarLabel();
41156
- this.text += `
41884
+ this.textoSaida += `
41157
41885
  mov rax, ${esquerda}
41158
41886
  cmp rax, 0`;
41159
41887
  if (operador === 'e' || operador === '&&') {
41160
- this.text += `
41888
+ this.textoSaida += `
41161
41889
  je ${labelFim}
41162
41890
  mov rax, ${direita}
41163
41891
  cmp rax, 0
@@ -41167,7 +41895,7 @@ ${labelVerdadeiro}:
41167
41895
  ${labelFim}:`;
41168
41896
  }
41169
41897
  else if (operador === 'ou' || operador === '||') {
41170
- this.text += `
41898
+ this.textoSaida += `
41171
41899
  jne ${labelVerdadeiro}
41172
41900
  mov rax, ${direita}
41173
41901
  cmp rax, 0
@@ -41188,17 +41916,27 @@ ${labelFim}:`;
41188
41916
  traduzirConstrutoUnario(construto) {
41189
41917
  const operando = this.dicionarioConstrutos[construto.operando.constructor.name](construto.operando);
41190
41918
  const operador = construto.operador.lexema;
41191
- this.text += `
41919
+ this.textoSaida += `
41192
41920
  mov rax, ${operando}`;
41193
41921
  if (operador === '-') {
41194
- this.text += `
41922
+ this.textoSaida += `
41195
41923
  neg rax`;
41196
41924
  }
41197
41925
  else if (operador === '!' || operador === 'nao') {
41198
- this.text += `
41926
+ this.textoSaida += `
41199
41927
  cmp rax, 0
41200
41928
  sete al
41201
41929
  movzx rax, al`;
41930
+ }
41931
+ else if (operador === '++') {
41932
+ this.textoSaida += `
41933
+ inc rax
41934
+ mov ${operando}, rax`;
41935
+ }
41936
+ else if (operador === '--') {
41937
+ this.textoSaida += `
41938
+ dec rax
41939
+ mov ${operando}, rax`;
41202
41940
  }
41203
41941
  return 'rax';
41204
41942
  }
@@ -41212,27 +41950,27 @@ ${labelFim}:`;
41212
41950
  }
41213
41951
  traduzirConstrutoVetor(construto) {
41214
41952
  var _a;
41215
- const labelVetor = `vetor_${this.gerarDigitoAleatorio()}`;
41953
+ const rotuloVetor = `vetor_${this.gerarDigitoAleatorio()}`;
41216
41954
  const tamanho = ((_a = construto.valores) === null || _a === void 0 ? void 0 : _a.length) || 0;
41217
- this.bss += ` ${labelVetor} resq ${tamanho}\n`;
41955
+ this.bss += ` ${rotuloVetor} resq ${tamanho}\n`;
41218
41956
  if (construto.valores && Array.isArray(construto.valores)) {
41219
41957
  construto.valores.forEach((valor, index) => {
41220
41958
  if (this.dicionarioConstrutos[valor.constructor.name]) {
41221
41959
  const valorTraduzido = this.dicionarioConstrutos[valor.constructor.name](valor);
41222
- this.text += `
41960
+ this.textoSaida += `
41223
41961
  mov rax, ${valorTraduzido}
41224
- mov [${labelVetor} + ${index * 8}], rax`;
41962
+ mov [${rotuloVetor} + ${index * 8}], rax`;
41225
41963
  }
41226
41964
  });
41227
41965
  }
41228
- return labelVetor;
41966
+ return rotuloVetor;
41229
41967
  }
41230
41968
  // Implementação das Declarações
41231
41969
  traduzirDeclaracaoBloco(declaracao) {
41232
41970
  if (declaracao.declaracoes && Array.isArray(declaracao.declaracoes)) {
41233
- declaracao.declaracoes.forEach((decl) => {
41234
- if (this.dicionarioDeclaracoes[decl.constructor.name]) {
41235
- this.dicionarioDeclaracoes[decl.constructor.name](decl);
41971
+ declaracao.declaracoes.forEach((declaracao) => {
41972
+ if (this.dicionarioDeclaracoes[declaracao.constructor.name]) {
41973
+ this.dicionarioDeclaracoes[declaracao.constructor.name](declaracao);
41236
41974
  }
41237
41975
  });
41238
41976
  }
@@ -41240,16 +41978,16 @@ ${labelFim}:`;
41240
41978
  traduzirDeclaracaoEnquanto(declaracao) {
41241
41979
  const labelInicio = this.gerarLabel();
41242
41980
  const labelFim = this.gerarLabel();
41243
- this.text += `
41981
+ this.textoSaida += `
41244
41982
  ${labelInicio}:`;
41245
41983
  const condicao = this.dicionarioConstrutos[declaracao.condicao.constructor.name](declaracao.condicao);
41246
- this.text += `
41984
+ this.textoSaida += `
41247
41985
  cmp ${condicao}, 0
41248
41986
  je ${labelFim}`;
41249
41987
  if (this.dicionarioDeclaracoes[declaracao.corpo.constructor.name]) {
41250
41988
  this.dicionarioDeclaracoes[declaracao.corpo.constructor.name](declaracao.corpo);
41251
41989
  }
41252
- this.text += `
41990
+ this.textoSaida += `
41253
41991
  jmp ${labelInicio}
41254
41992
  ${labelFim}:`;
41255
41993
  }
@@ -41261,24 +41999,24 @@ ${labelFim}:`;
41261
41999
  const labelProximo = this.gerarLabel();
41262
42000
  if (caminho.condicoes && caminho.condicoes[0]) {
41263
42001
  const valorCaso = this.dicionarioConstrutos[caminho.condicoes[0].constructor.name](caminho.condicoes[0]);
41264
- this.text += `
42002
+ this.textoSaida += `
41265
42003
  mov rax, ${valorEscolha}
41266
42004
  cmp rax, ${valorCaso}
41267
42005
  jne ${labelProximo}`;
41268
42006
  if (caminho.declaracoes && Array.isArray(caminho.declaracoes)) {
41269
- caminho.declaracoes.forEach((decl) => {
41270
- if (this.dicionarioDeclaracoes[decl.constructor.name]) {
41271
- this.dicionarioDeclaracoes[decl.constructor.name](decl);
42007
+ caminho.declaracoes.forEach((declaracao) => {
42008
+ if (this.dicionarioDeclaracoes[declaracao.constructor.name]) {
42009
+ this.dicionarioDeclaracoes[declaracao.constructor.name](declaracao);
41272
42010
  }
41273
42011
  });
41274
42012
  }
41275
- this.text += `
42013
+ this.textoSaida += `
41276
42014
  jmp ${labelFim}
41277
42015
  ${labelProximo}:`;
41278
42016
  }
41279
42017
  });
41280
42018
  }
41281
- this.text += `
42019
+ this.textoSaida += `
41282
42020
  ${labelFim}:`;
41283
42021
  }
41284
42022
  traduzirDeclaracaoExpressao(declaracao) {
@@ -41289,19 +42027,19 @@ ${labelFim}:`;
41289
42027
  }
41290
42028
  traduzirDeclaracaoFazer(declaracao) {
41291
42029
  const labelInicio = this.gerarLabel();
41292
- this.text += `
42030
+ this.textoSaida += `
41293
42031
  ${labelInicio}:`;
41294
42032
  // Em Delégua, fazer-enquanto tem caminhoFazer que é um Bloco
41295
42033
  if (declaracao.caminhoFazer && declaracao.caminhoFazer.declaracoes) {
41296
- declaracao.caminhoFazer.declaracoes.forEach((decl) => {
41297
- if (this.dicionarioDeclaracoes[decl.constructor.name]) {
41298
- this.dicionarioDeclaracoes[decl.constructor.name](decl);
42034
+ declaracao.caminhoFazer.declaracoes.forEach((declaracao) => {
42035
+ if (this.dicionarioDeclaracoes[declaracao.constructor.name]) {
42036
+ this.dicionarioDeclaracoes[declaracao.constructor.name](declaracao);
41299
42037
  }
41300
42038
  });
41301
42039
  }
41302
42040
  if (declaracao.condicaoEnquanto) {
41303
42041
  const condicao = this.dicionarioConstrutos[declaracao.condicaoEnquanto.constructor.name](declaracao.condicaoEnquanto);
41304
- this.text += `
42042
+ this.textoSaida += `
41305
42043
  cmp ${condicao}, 0
41306
42044
  jne ${labelInicio}`;
41307
42045
  }
@@ -41317,14 +42055,14 @@ ${labelInicio}:`;
41317
42055
  }
41318
42056
  }
41319
42057
  if (this.alvo === 'linux') {
41320
- this.text += `
42058
+ this.textoSaida += `
41321
42059
  ; Falhar com mensagem: ${mensagem}
41322
42060
  mov eax, 1
41323
42061
  mov ebx, 1
41324
42062
  int 0x80`;
41325
42063
  }
41326
42064
  else {
41327
- this.text += `
42065
+ this.textoSaida += `
41328
42066
  ; Falhar com mensagem: ${mensagem}
41329
42067
  mov eax, 1
41330
42068
  ret`;
@@ -41333,7 +42071,7 @@ ${labelInicio}:`;
41333
42071
  traduzirDeclaracaoFuncao(declaracao) {
41334
42072
  var _a;
41335
42073
  const nomeFuncao = ((_a = declaracao.simbolo) === null || _a === void 0 ? void 0 : _a.lexema) || 'funcao';
41336
- this.text += `
42074
+ this.textoSaida += `
41337
42075
  ${nomeFuncao}:
41338
42076
  push rbp
41339
42077
  mov rbp, rsp`;
@@ -41346,13 +42084,13 @@ ${nomeFuncao}:
41346
42084
  }
41347
42085
  });
41348
42086
  }
41349
- this.text += `
42087
+ this.textoSaida += `
41350
42088
  pop rbp
41351
42089
  ret`;
41352
42090
  }
41353
42091
  traduzirDeclaracaoImportar(declaracao) {
41354
42092
  // Importação é tratada em tempo de linkagem
41355
- this.text += `
42093
+ this.textoSaida += `
41356
42094
  ; Importar: ${declaracao.caminho || 'unknown'}`;
41357
42095
  }
41358
42096
  traduzirDeclaracaoLeia(declaracao) {
@@ -41370,7 +42108,7 @@ ${nomeFuncao}:
41370
42108
  this.bss += ` ${varLabel} resb 256\n`;
41371
42109
  this.variaveis.set(nomeVar, varLabel);
41372
42110
  }
41373
- this.text += `
42111
+ this.textoSaida += `
41374
42112
  mov eax, 3
41375
42113
  mov ebx, 0
41376
42114
  mov ecx, ${this.variaveis.get(nomeVar)}
@@ -41380,21 +42118,31 @@ ${nomeFuncao}:
41380
42118
  traduzirDeclaracaoPara(declaracao) {
41381
42119
  const labelInicio = this.gerarLabel();
41382
42120
  const labelFim = this.gerarLabel();
41383
- // Inicializador pode ser uma declaração ou construto
42121
+ // Inicializador pode ser um array de declarações, uma declaração ou um construto
41384
42122
  if (declaracao.inicializador) {
41385
- const tipoInicializador = declaracao.inicializador.constructor.name;
41386
- if (this.dicionarioDeclaracoes[tipoInicializador]) {
41387
- this.dicionarioDeclaracoes[tipoInicializador](declaracao.inicializador);
42123
+ if (Array.isArray(declaracao.inicializador)) {
42124
+ for (const decl of declaracao.inicializador) {
42125
+ const tipo = decl.constructor.name;
42126
+ if (this.dicionarioDeclaracoes[tipo]) {
42127
+ this.dicionarioDeclaracoes[tipo](decl);
42128
+ }
42129
+ }
41388
42130
  }
41389
- else if (this.dicionarioConstrutos[tipoInicializador]) {
41390
- this.dicionarioConstrutos[tipoInicializador](declaracao.inicializador);
42131
+ else {
42132
+ const tipoInicializador = declaracao.inicializador.constructor.name;
42133
+ if (this.dicionarioDeclaracoes[tipoInicializador]) {
42134
+ this.dicionarioDeclaracoes[tipoInicializador](declaracao.inicializador);
42135
+ }
42136
+ else if (this.dicionarioConstrutos[tipoInicializador]) {
42137
+ this.dicionarioConstrutos[tipoInicializador](declaracao.inicializador);
42138
+ }
41391
42139
  }
41392
42140
  }
41393
- this.text += `
42141
+ this.textoSaida += `
41394
42142
  ${labelInicio}:`;
41395
42143
  if (declaracao.condicao) {
41396
42144
  const condicao = this.dicionarioConstrutos[declaracao.condicao.constructor.name](declaracao.condicao);
41397
- this.text += `
42145
+ this.textoSaida += `
41398
42146
  cmp ${condicao}, 0
41399
42147
  je ${labelFim}`;
41400
42148
  }
@@ -41406,14 +42154,14 @@ ${labelInicio}:`;
41406
42154
  this.dicionarioConstrutos[declaracao.incrementar.constructor.name](declaracao.incrementar);
41407
42155
  }
41408
42156
  }
41409
- this.text += `
42157
+ this.textoSaida += `
41410
42158
  jmp ${labelInicio}
41411
42159
  ${labelFim}:`;
41412
42160
  }
41413
42161
  traduzirDeclaracaoParaCada(declaracao) {
41414
42162
  var _a;
41415
- const labelInicio = this.gerarLabel();
41416
- const labelFim = this.gerarLabel();
42163
+ const rotuloInicio = this.gerarLabel();
42164
+ const rotuloFim = this.gerarLabel();
41417
42165
  let nomeVar;
41418
42166
  if (declaracao.variavelIteracao instanceof construtos_1.Variavel) {
41419
42167
  nomeVar = (_a = declaracao.variavelIteracao.simbolo) === null || _a === void 0 ? void 0 : _a.lexema;
@@ -41423,63 +42171,63 @@ ${labelFim}:`;
41423
42171
  if (vetor instanceof construtos_1.Vetor) {
41424
42172
  tamanhoVetor = vetor.tamanho || 0;
41425
42173
  }
41426
- this.text += `
42174
+ this.textoSaida += `
41427
42175
  xor rcx, rcx
41428
- ${labelInicio}:
42176
+ ${rotuloInicio}:
41429
42177
  cmp rcx, ${tamanhoVetor}
41430
- jge ${labelFim}`;
42178
+ jge ${rotuloFim}`;
41431
42179
  if (this.dicionarioDeclaracoes[declaracao.corpo.constructor.name]) {
41432
42180
  this.dicionarioDeclaracoes[declaracao.corpo.constructor.name](declaracao.corpo);
41433
42181
  }
41434
- this.text += `
42182
+ this.textoSaida += `
41435
42183
  inc rcx
41436
- jmp ${labelInicio}
41437
- ${labelFim}:`;
42184
+ jmp ${rotuloInicio}
42185
+ ${rotuloFim}:`;
41438
42186
  }
41439
42187
  traduzirDeclaracaoRetorna(declaracao) {
41440
42188
  if (declaracao.valor) {
41441
42189
  const valor = this.dicionarioConstrutos[declaracao.valor.constructor.name](declaracao.valor);
41442
- this.text += `
42190
+ this.textoSaida += `
41443
42191
  mov rax, ${valor}`;
41444
42192
  }
41445
- this.text += `
42193
+ this.textoSaida += `
41446
42194
  pop rbp
41447
42195
  ret`;
41448
42196
  }
41449
42197
  traduzirDeclaracaoSe(declaracao) {
41450
- const labelSenao = this.gerarLabel();
41451
- const labelFim = this.gerarLabel();
42198
+ const rotuloSenao = this.gerarLabel();
42199
+ const rotuloFim = this.gerarLabel();
41452
42200
  const condicao = this.dicionarioConstrutos[declaracao.condicao.constructor.name](declaracao.condicao);
41453
- this.text += `
42201
+ this.textoSaida += `
41454
42202
  cmp ${condicao}, 0
41455
- je ${labelSenao}`;
42203
+ je ${rotuloSenao}`;
41456
42204
  if (this.dicionarioDeclaracoes[declaracao.caminhoEntao.constructor.name]) {
41457
42205
  this.dicionarioDeclaracoes[declaracao.caminhoEntao.constructor.name](declaracao.caminhoEntao);
41458
42206
  }
41459
- this.text += `
41460
- jmp ${labelFim}
41461
- ${labelSenao}:`;
42207
+ this.textoSaida += `
42208
+ jmp ${rotuloFim}
42209
+ ${rotuloSenao}:`;
41462
42210
  if (declaracao.caminhoSenao &&
41463
42211
  this.dicionarioDeclaracoes[declaracao.caminhoSenao.constructor.name]) {
41464
42212
  this.dicionarioDeclaracoes[declaracao.caminhoSenao.constructor.name](declaracao.caminhoSenao);
41465
42213
  }
41466
- this.text += `
41467
- ${labelFim}:`;
42214
+ this.textoSaida += `
42215
+ ${rotuloFim}:`;
41468
42216
  }
41469
42217
  traduzirDeclaracaoClasse(declaracao) {
41470
42218
  var _a;
41471
42219
  // Classes em assembly são complexas - implementação básica
41472
- this.text += `
42220
+ this.textoSaida += `
41473
42221
  ; Classe: ${((_a = declaracao.simbolo) === null || _a === void 0 ? void 0 : _a.lexema) || 'unknown'}`;
41474
42222
  }
41475
42223
  traduzirDeclaracaoTente(declaracao) {
41476
42224
  // Try-catch em assembly requer handler complexo
41477
- this.text += `
42225
+ this.textoSaida += `
41478
42226
  ; Tente-pegue`;
41479
42227
  if (declaracao.caminhoTente && Array.isArray(declaracao.caminhoTente)) {
41480
- declaracao.caminhoTente.forEach((decl) => {
41481
- if (this.dicionarioDeclaracoes[decl.constructor.name]) {
41482
- this.dicionarioDeclaracoes[decl.constructor.name](decl);
42228
+ declaracao.caminhoTente.forEach((declaracao) => {
42229
+ if (this.dicionarioDeclaracoes[declaracao.constructor.name]) {
42230
+ this.dicionarioDeclaracoes[declaracao.constructor.name](declaracao);
41483
42231
  }
41484
42232
  });
41485
42233
  }
@@ -41513,7 +42261,7 @@ ${labelFim}:`;
41513
42261
  }
41514
42262
  else if (this.dicionarioConstrutos[tipoInicializador]) {
41515
42263
  const valor = this.dicionarioConstrutos[tipoInicializador](declaracao.inicializador);
41516
- this.text += `
42264
+ this.textoSaida += `
41517
42265
  mov rax, ${valor}
41518
42266
  mov [${varLabel}], rax`;
41519
42267
  }
@@ -41529,39 +42277,89 @@ ${labelFim}:`;
41529
42277
  this.data += ` ${varTamanho} equ $ - ${nomeStringLiteral}\n`;
41530
42278
  return varTamanho;
41531
42279
  }
42280
+ emitirHelperPrintInt() {
42281
+ if (this.helperPrintIntEmitido)
42282
+ return;
42283
+ this.helperPrintIntEmitido = true;
42284
+ this.bss += ` __print_buf resb 24\n`;
42285
+ this.helpers += `
42286
+ __delegua_print_int:
42287
+ push rbx
42288
+ push rcx
42289
+ push rdx
42290
+ push rsi
42291
+ mov rcx, 10
42292
+ lea rsi, [__print_buf + 22]
42293
+ mov byte [rsi], 10
42294
+ .print_digitloop:
42295
+ xor rdx, rdx
42296
+ div rcx
42297
+ add dl, '0'
42298
+ dec rsi
42299
+ mov [rsi], dl
42300
+ test rax, rax
42301
+ jnz .print_digitloop
42302
+ lea rdx, [__print_buf + 23]
42303
+ sub rdx, rsi
42304
+ mov ecx, esi
42305
+ mov ebx, 1
42306
+ mov eax, 4
42307
+ int 0x80
42308
+ pop rsi
42309
+ pop rdx
42310
+ pop rcx
42311
+ pop rbx
42312
+ ret`;
42313
+ }
41532
42314
  traduzirDeclaracaoEscreva(declaracaoEscreva) {
41533
- let tam_string_literal = '';
41534
- let nome_string_literal = '';
41535
- if (declaracaoEscreva.argumentos[0] instanceof construtos_1.Literal) {
41536
- nome_string_literal = this.criaStringLiteral(declaracaoEscreva.argumentos[0]);
41537
- tam_string_literal = this.criaTamanhoNaMemoriaReferenteAVar(nome_string_literal);
41538
- }
41539
- if (this.alvo === 'linux') {
41540
- this.text += `
42315
+ const arg = declaracaoEscreva.argumentos[0];
42316
+ if (arg instanceof construtos_1.Literal) {
42317
+ const nome_string_literal = this.criaStringLiteral(arg);
42318
+ const tam_string_literal = this.criaTamanhoNaMemoriaReferenteAVar(nome_string_literal);
42319
+ if (this.alvo === 'linux') {
42320
+ this.textoSaida += `
41541
42321
  mov edx, ${tam_string_literal}
41542
42322
  mov ecx, ${nome_string_literal}
41543
42323
  mov ebx, 1 ; fd stdout
41544
42324
  mov eax, 4 ; sys_write
41545
42325
  int 0x80`;
42326
+ }
42327
+ else {
42328
+ this.textoSaida += `
42329
+ lea rcx, [rel ${nome_string_literal}]
42330
+ call printf`;
42331
+ }
41546
42332
  }
41547
42333
  else {
41548
- // Windows: prototype `extern printf` and follow Win64 calling convention
41549
- // RCX = format pointer; here we use the literal directly as a C string
41550
- this.text += `
41551
- lea rcx, [rel ${nome_string_literal}]
42334
+ const valor = this.dicionarioConstrutos[arg.constructor.name](arg);
42335
+ if (this.alvo === 'linux') {
42336
+ this.emitirHelperPrintInt();
42337
+ this.textoSaida += `
42338
+ mov rax, ${valor}
42339
+ call __delegua_print_int`;
42340
+ }
42341
+ else {
42342
+ if (!this.fmtIntWindowsEmitido) {
42343
+ this.data += ` __fmt_int db '%d', 10, 0\n`;
42344
+ this.fmtIntWindowsEmitido = true;
42345
+ }
42346
+ this.textoSaida += `
42347
+ mov rdx, ${valor}
42348
+ lea rcx, [rel __fmt_int]
41552
42349
  call printf`;
42350
+ }
41553
42351
  }
41554
42352
  }
41555
42353
  saidaSistema() {
41556
42354
  if (this.alvo === 'linux') {
41557
- this.text += `
42355
+ this.textoSaida += `
41558
42356
  mov eax, 1 ; sys_exit
41559
42357
  xor ebx, ebx ; status 0
41560
42358
  int 0x80`;
41561
42359
  }
41562
42360
  else {
41563
42361
  // Windows: return from main with 0 in EAX
41564
- this.text += `
42362
+ this.textoSaida += `
41565
42363
  xor eax, eax
41566
42364
  ret`;
41567
42365
  }
@@ -41575,13 +42373,14 @@ ${labelFim}:`;
41575
42373
  }
41576
42374
  }
41577
42375
  this.saidaSistema();
41578
- resultado += this.bss + '\n' + this.data + '\n' + this.text;
42376
+ this.textoSaida += this.helpers;
42377
+ resultado += this.bss + '\n' + this.data + '\n' + this.textoSaida;
41579
42378
  return resultado;
41580
42379
  }
41581
42380
  }
41582
42381
  exports.TradutorAssemblyX64 = TradutorAssemblyX64;
41583
42382
 
41584
- },{"../construtos":62,"../declaracoes":110}],241:[function(require,module,exports){
42383
+ },{"../construtos":62,"../declaracoes":110}],242:[function(require,module,exports){
41585
42384
  "use strict";
41586
42385
  var __importDefault = (this && this.__importDefault) || function (mod) {
41587
42386
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -42349,7 +43148,7 @@ class TradutorAssemblyScript {
42349
43148
  let resultado = '';
42350
43149
  this.indentacao += 4;
42351
43150
  resultado += ' '.repeat(this.indentacao);
42352
- for (let condicao of caminho.condicoes) {
43151
+ for (let condicao of (caminho.condicoes || [])) {
42353
43152
  resultado +=
42354
43153
  'case ' + this.dicionarioConstrutos[condicao.constructor.name](condicao) + ':\n';
42355
43154
  resultado += ' '.repeat(this.indentacao);
@@ -42725,7 +43524,7 @@ class TradutorAssemblyScript {
42725
43524
  }
42726
43525
  exports.TradutorAssemblyScript = TradutorAssemblyScript;
42727
43526
 
42728
- },{"../construtos":62,"../declaracoes":110,"../tipos-de-simbolos/delegua":222}],242:[function(require,module,exports){
43527
+ },{"../construtos":62,"../declaracoes":110,"../tipos-de-simbolos/delegua":222}],243:[function(require,module,exports){
42729
43528
  "use strict";
42730
43529
  Object.defineProperty(exports, "__esModule", { value: true });
42731
43530
  exports.TradutorCalango = void 0;
@@ -42780,7 +43579,7 @@ class TradutorCalango {
42780
43579
  }
42781
43580
  exports.TradutorCalango = TradutorCalango;
42782
43581
 
42783
- },{}],243:[function(require,module,exports){
43582
+ },{}],244:[function(require,module,exports){
42784
43583
  "use strict";
42785
43584
  var __importDefault = (this && this.__importDefault) || function (mod) {
42786
43585
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -43709,7 +44508,7 @@ class TradutorElixir {
43709
44508
  }
43710
44509
  exports.TradutorElixir = TradutorElixir;
43711
44510
 
43712
- },{"../tipos-de-simbolos/delegua":222}],244:[function(require,module,exports){
44511
+ },{"../tipos-de-simbolos/delegua":222}],245:[function(require,module,exports){
43713
44512
  "use strict";
43714
44513
  var __importDefault = (this && this.__importDefault) || function (mod) {
43715
44514
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -44504,7 +45303,7 @@ class TradutorJavaScript {
44504
45303
  }
44505
45304
  exports.TradutorJavaScript = TradutorJavaScript;
44506
45305
 
44507
- },{"../construtos":62,"../declaracoes":110,"../tipos-de-simbolos/delegua":222}],245:[function(require,module,exports){
45306
+ },{"../construtos":62,"../declaracoes":110,"../tipos-de-simbolos/delegua":222}],246:[function(require,module,exports){
44508
45307
  "use strict";
44509
45308
  var __importDefault = (this && this.__importDefault) || function (mod) {
44510
45309
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -45328,7 +46127,7 @@ class TradutorMermaidJs {
45328
46127
  }
45329
46128
  exports.TradutorMermaidJs = TradutorMermaidJs;
45330
46129
 
45331
- },{"../construtos":62,"../declaracoes":110,"../tipos-de-simbolos/delegua":222,"./mermaid":232}],246:[function(require,module,exports){
46130
+ },{"../construtos":62,"../declaracoes":110,"../tipos-de-simbolos/delegua":222,"./mermaid":232}],247:[function(require,module,exports){
45332
46131
  "use strict";
45333
46132
  Object.defineProperty(exports, "__esModule", { value: true });
45334
46133
  exports.TradutorPortugolIpt = void 0;
@@ -45390,7 +46189,7 @@ class TradutorPortugolIpt {
45390
46189
  }
45391
46190
  exports.TradutorPortugolIpt = TradutorPortugolIpt;
45392
46191
 
45393
- },{"../avaliador-sintatico/dialetos":17,"../lexador/dialetos":192}],247:[function(require,module,exports){
46192
+ },{"../avaliador-sintatico/dialetos":17,"../lexador/dialetos":192}],248:[function(require,module,exports){
45394
46193
  "use strict";
45395
46194
  var __importDefault = (this && this.__importDefault) || function (mod) {
45396
46195
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -46076,7 +46875,7 @@ class TradutorPython {
46076
46875
  }
46077
46876
  exports.TradutorPython = TradutorPython;
46078
46877
 
46079
- },{"../construtos":62,"../declaracoes":110,"../tipos-de-simbolos/delegua":222}],248:[function(require,module,exports){
46878
+ },{"../construtos":62,"../declaracoes":110,"../tipos-de-simbolos/delegua":222}],249:[function(require,module,exports){
46080
46879
  "use strict";
46081
46880
  Object.defineProperty(exports, "__esModule", { value: true });
46082
46881
  exports.TradutorReversoJavaScript = void 0;
@@ -46471,7 +47270,7 @@ class TradutorReversoJavaScript {
46471
47270
  }
46472
47271
  exports.TradutorReversoJavaScript = TradutorReversoJavaScript;
46473
47272
 
46474
- },{}],249:[function(require,module,exports){
47273
+ },{}],250:[function(require,module,exports){
46475
47274
  "use strict";
46476
47275
  Object.defineProperty(exports, "__esModule", { value: true });
46477
47276
  exports.TradutorReversoPython = void 0;
@@ -46544,7 +47343,7 @@ class TradutorReversoPython {
46544
47343
  }
46545
47344
  exports.TradutorReversoPython = TradutorReversoPython;
46546
47345
 
46547
- },{"./python/python3-lexer":237,"./python/python3-parser":238,"antlr4ts":367,"antlr4ts/tree/ParseTreeWalker":386}],250:[function(require,module,exports){
47346
+ },{"./python/python3-lexer":237,"./python/python3-parser":238,"antlr4ts":369,"antlr4ts/tree/ParseTreeWalker":388}],251:[function(require,module,exports){
46548
47347
  "use strict";
46549
47348
  var __importDefault = (this && this.__importDefault) || function (mod) {
46550
47349
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -47138,7 +47937,7 @@ class TradutorReversoTenda {
47138
47937
  }
47139
47938
  exports.TradutorReversoTenda = TradutorReversoTenda;
47140
47939
 
47141
- },{"../construtos":62,"../tipos-de-simbolos/tenda":229}],251:[function(require,module,exports){
47940
+ },{"../construtos":62,"../tipos-de-simbolos/tenda":229}],252:[function(require,module,exports){
47142
47941
  "use strict";
47143
47942
  var __importDefault = (this && this.__importDefault) || function (mod) {
47144
47943
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -47826,7 +48625,903 @@ class TradutorRuby {
47826
48625
  }
47827
48626
  exports.TradutorRuby = TradutorRuby;
47828
48627
 
47829
- },{"../construtos":62,"../declaracoes":110,"../tipos-de-simbolos/delegua":222}],252:[function(require,module,exports){
48628
+ },{"../construtos":62,"../declaracoes":110,"../tipos-de-simbolos/delegua":222}],253:[function(require,module,exports){
48629
+ "use strict";
48630
+ Object.defineProperty(exports, "__esModule", { value: true });
48631
+ exports.TradutorWebAssembly = void 0;
48632
+ const construtos_1 = require("../construtos");
48633
+ const declaracoes_1 = require("../declaracoes");
48634
+ class TradutorWebAssembly {
48635
+ constructor() {
48636
+ // ── Seções do módulo WAT ───────────────────────────────────────────────
48637
+ /** Segmentos de dados estáticos para strings literais */
48638
+ this.segmentosTexto = [];
48639
+ /** Próximo byte livre na memória linear para strings */
48640
+ this.deslocamentoTexto = 0;
48641
+ /** Texto WAT completo de cada função declarada pelo usuário */
48642
+ this.funcoesCompletas = [];
48643
+ /** Declarações WAT de variáveis globais `(global ...)` */
48644
+ this.declaracoesGlobais = [];
48645
+ // ── Contexto da função sendo traduzida no momento ──────────────────────
48646
+ /** Instruções WAT emitidas no corpo da função corrente */
48647
+ this.corpoDaFuncaoAtual = '';
48648
+ /** Declarações `(param ...)` e `(local ...)` da função corrente */
48649
+ this.declaracoesLocaisAtual = '';
48650
+ /** Nomes de locais/params já declarados (evita duplicatas) */
48651
+ this.locaisDeclaradosAtual = new Set();
48652
+ /** Estamos dentro do corpo de uma função nomeada? */
48653
+ this.dentroFuncao = false;
48654
+ /** A função corrente possui ao menos um `retorna` com valor? */
48655
+ this.funcaoTemRetorno = false;
48656
+ // ── Mapa de variáveis ─────────────────────────────────────────────────
48657
+ /** Nome Delégua → metadados WAT */
48658
+ this.variaveis = new Map();
48659
+ // ── Controle de fluxo (break/continue) ───────────────────────────────
48660
+ /** Pilha de rótulos de laço para `sustar`/`continua` */
48661
+ this.pilhaDeControle = [];
48662
+ // ── Geração de rótulos ────────────────────────────────────────────────
48663
+ this.contadorRotulos = 0;
48664
+ // =========================================================================
48665
+ // Dicionário de construtos (expressões)
48666
+ // =========================================================================
48667
+ this.dicionarioConstrutos = {
48668
+ AcessoIndiceVariavel: this.traduzirAcessoIndiceVariavel.bind(this),
48669
+ AcessoMetodoOuPropriedade: this.traduzirAcessoMetodo.bind(this),
48670
+ Agrupamento: this.traduzirAgrupamento.bind(this),
48671
+ AtribuicaoPorIndice: this.traduzirAtribuicaoPorIndice.bind(this),
48672
+ Atribuir: this.traduzirAtribuir.bind(this),
48673
+ Binario: this.traduzirBinario.bind(this),
48674
+ Chamada: this.traduzirChamada.bind(this),
48675
+ DefinirValor: this.traduzirDefinirValor.bind(this),
48676
+ FuncaoConstruto: this.traduzirFuncaoConstruto.bind(this),
48677
+ Literal: this.traduzirLiteral.bind(this),
48678
+ Logico: this.traduzirLogico.bind(this),
48679
+ TipoDe: this.traduzirTipoDe.bind(this),
48680
+ Unario: this.traduzirUnario.bind(this),
48681
+ Variavel: this.traduzirVariavel.bind(this),
48682
+ Vetor: this.traduzirVetor.bind(this),
48683
+ };
48684
+ // =========================================================================
48685
+ // Dicionário de declarações (instruções)
48686
+ // =========================================================================
48687
+ this.dicionarioDeclaracoes = {
48688
+ Bloco: this.traduzirBloco.bind(this),
48689
+ Classe: this.traduzirClasse.bind(this),
48690
+ Const: this.traduzirConst.bind(this),
48691
+ Continua: this.traduzirContinua.bind(this),
48692
+ Enquanto: this.traduzirEnquanto.bind(this),
48693
+ Escolha: this.traduzirEscolha.bind(this),
48694
+ Escreva: this.traduzirEscreva.bind(this),
48695
+ EscrevaMesmaLinha: this.traduzirEscreva.bind(this),
48696
+ Expressao: this.traduzirExpressao.bind(this),
48697
+ Falhar: this.traduzirFalhar.bind(this),
48698
+ Fazer: this.traduzirFazer.bind(this),
48699
+ FuncaoDeclaracao: this.traduzirFuncaoDeclaracao.bind(this),
48700
+ Importar: this.traduzirImportar.bind(this),
48701
+ Para: this.traduzirPara.bind(this),
48702
+ ParaCada: this.traduzirParaCada.bind(this),
48703
+ Retorna: this.traduzirRetorna.bind(this),
48704
+ Se: this.traduzirSe.bind(this),
48705
+ Sustar: this.traduzirSustar.bind(this),
48706
+ Tente: this.traduzirTente.bind(this),
48707
+ Var: this.traduzirVar.bind(this),
48708
+ };
48709
+ }
48710
+ // =========================================================================
48711
+ // Helpers internos
48712
+ // =========================================================================
48713
+ gerarRotulo() {
48714
+ return `$L${this.contadorRotulos++}`;
48715
+ }
48716
+ /** Emite uma instrução indentada no corpo da função corrente. */
48717
+ emitir(instrucao) {
48718
+ this.corpoDaFuncaoAtual += ` ${instrucao}\n`;
48719
+ }
48720
+ /**
48721
+ * Converte uma string JavaScript para bytes UTF-8.
48722
+ * Usa `encodeURIComponent` para extrair os bytes — funciona em qualquer ambiente JS
48723
+ * sem depender de APIs específicas de Node.js (Buffer) ou browser (TextEncoder).
48724
+ */
48725
+ stringParaBytesUtf8(valor) {
48726
+ const encoded = encodeURIComponent(valor);
48727
+ const bytes = [];
48728
+ for (let i = 0; i < encoded.length;) {
48729
+ if (encoded[i] === '%') {
48730
+ bytes.push(parseInt(encoded.slice(i + 1, i + 3), 16));
48731
+ i += 3;
48732
+ }
48733
+ else {
48734
+ bytes.push(encoded.charCodeAt(i));
48735
+ i++;
48736
+ }
48737
+ }
48738
+ return bytes;
48739
+ }
48740
+ /**
48741
+ * Converte uma string JavaScript para o formato de literal de string WAT.
48742
+ * Bytes não-ASCII e caracteres especiais são hex-escapados como `\xx`.
48743
+ * Retorna o literal pronto para uso em `(data ...)` e o comprimento em bytes UTF-8.
48744
+ */
48745
+ escaparStringWat(valor) {
48746
+ const bytes = this.stringParaBytesUtf8(valor);
48747
+ let watLiteral = '';
48748
+ for (const byte of bytes) {
48749
+ if (byte === 0x22) {
48750
+ watLiteral += '\\"'; // aspas duplas
48751
+ }
48752
+ else if (byte === 0x5c) {
48753
+ watLiteral += '\\\\'; // contrabarra
48754
+ }
48755
+ else if (byte >= 0x20 && byte <= 0x7e) {
48756
+ watLiteral += String.fromCharCode(byte); // ASCII imprimível
48757
+ }
48758
+ else {
48759
+ watLiteral += `\\${byte.toString(16).padStart(2, '0')}`; // \xx
48760
+ }
48761
+ }
48762
+ return { watLiteral, byteLen: bytes.length };
48763
+ }
48764
+ /**
48765
+ * Internaliza uma string literal na memória linear estática.
48766
+ * Strings idênticas são deduplicadas.
48767
+ * O comprimento armazenado é o comprimento em bytes UTF-8, não em caracteres.
48768
+ */
48769
+ internalizarTexto(valor) {
48770
+ const existente = this.segmentosTexto.find((s) => s.conteudo === valor);
48771
+ if (existente) {
48772
+ return { offset: existente.deslocamento, len: existente.tamanho };
48773
+ }
48774
+ const { byteLen } = this.escaparStringWat(valor);
48775
+ const offset = this.deslocamentoTexto;
48776
+ this.segmentosTexto.push({ deslocamento: offset, conteudo: valor, tamanho: byteLen });
48777
+ this.deslocamentoTexto += byteLen;
48778
+ return { offset, len: byteLen };
48779
+ }
48780
+ /**
48781
+ * Infere o tipo WAT de um construto.
48782
+ * Strings → i32 (ponteiro). Tudo mais → i64 (padrão, inclusive booleanos).
48783
+ */
48784
+ inferirTipo(construto) {
48785
+ if (construto instanceof construtos_1.Literal && typeof construto.valor === 'string')
48786
+ return 'i32';
48787
+ return 'i64';
48788
+ }
48789
+ /**
48790
+ * Declara um parâmetro ou variável local para a função corrente.
48791
+ * `ehParam = true` emite `(param ...)`, senão `(local ...)`.
48792
+ */
48793
+ declararParamLocal(nome, tipo, ehParam) {
48794
+ if (this.locaisDeclaradosAtual.has(nome))
48795
+ return;
48796
+ this.locaisDeclaradosAtual.add(nome);
48797
+ const watNome = `$${nome}`;
48798
+ const diretiva = ehParam ? 'param' : 'local';
48799
+ this.declaracoesLocaisAtual += ` (${diretiva} ${watNome} ${tipo})`;
48800
+ this.variaveis.set(nome, { watNome, tipo, escopo: 'local' });
48801
+ }
48802
+ /** Salva o contexto da função corrente e inicializa um novo. */
48803
+ salvarEIniciarContextoFuncao() {
48804
+ const snapshot = {
48805
+ corpoDaFuncaoAtual: this.corpoDaFuncaoAtual,
48806
+ declaracoesLocaisAtual: this.declaracoesLocaisAtual,
48807
+ locaisDeclaradosAtual: this.locaisDeclaradosAtual,
48808
+ dentroFuncao: this.dentroFuncao,
48809
+ funcaoTemRetorno: this.funcaoTemRetorno,
48810
+ variaveis: new Map(this.variaveis),
48811
+ };
48812
+ this.corpoDaFuncaoAtual = '';
48813
+ this.declaracoesLocaisAtual = '';
48814
+ this.locaisDeclaradosAtual = new Set();
48815
+ this.dentroFuncao = true;
48816
+ this.funcaoTemRetorno = false;
48817
+ // Remove locais do mapa — globais permanecem
48818
+ for (const [nome, meta] of this.variaveis) {
48819
+ if (meta.escopo === 'local')
48820
+ this.variaveis.delete(nome);
48821
+ }
48822
+ return snapshot;
48823
+ }
48824
+ /** Restaura o contexto de função a partir de um snapshot. */
48825
+ restaurarContextoFuncao(snapshot) {
48826
+ this.corpoDaFuncaoAtual = snapshot.corpoDaFuncaoAtual;
48827
+ this.declaracoesLocaisAtual = snapshot.declaracoesLocaisAtual;
48828
+ this.locaisDeclaradosAtual = snapshot.locaisDeclaradosAtual;
48829
+ this.dentroFuncao = snapshot.dentroFuncao;
48830
+ this.funcaoTemRetorno = snapshot.funcaoTemRetorno;
48831
+ this.variaveis = snapshot.variaveis;
48832
+ }
48833
+ /**
48834
+ * Garante que uma variável existe no escopo correto.
48835
+ * Retorna o nome WAT da variável (e.g. `$x`).
48836
+ */
48837
+ garantirVariavel(nome, tipo = 'i64') {
48838
+ if (this.variaveis.has(nome)) {
48839
+ return this.variaveis.get(nome).watNome;
48840
+ }
48841
+ if (this.dentroFuncao) {
48842
+ this.declararParamLocal(nome, tipo, false);
48843
+ return `$${nome}`;
48844
+ }
48845
+ // Global
48846
+ const watNome = `$${nome}`;
48847
+ this.declaracoesGlobais.push(` (global ${watNome} (mut ${tipo}) (${tipo}.const 0))`);
48848
+ this.variaveis.set(nome, { watNome, tipo, escopo: 'global' });
48849
+ return watNome;
48850
+ }
48851
+ // =========================================================================
48852
+ // Dispatch helpers
48853
+ // =========================================================================
48854
+ traduzirConstruto(construto) {
48855
+ const handler = this.dicionarioConstrutos[construto.constructor.name];
48856
+ if (handler)
48857
+ return handler(construto);
48858
+ return `(i64.const 0) ;; construto não suportado: ${construto.constructor.name}`;
48859
+ }
48860
+ traduzirDeclaracaoInterna(declaracao) {
48861
+ const handler = this.dicionarioDeclaracoes[declaracao.constructor.name];
48862
+ if (handler)
48863
+ handler(declaracao);
48864
+ else
48865
+ this.emitir(`;; declaração não suportada: ${declaracao.constructor.name}`);
48866
+ }
48867
+ // =========================================================================
48868
+ // Construtos
48869
+ // =========================================================================
48870
+ traduzirLiteral(construto) {
48871
+ if (typeof construto.valor === 'boolean') {
48872
+ return `(i64.const ${construto.valor ? 1 : 0})`;
48873
+ }
48874
+ if (typeof construto.valor === 'string') {
48875
+ // Retorna apenas o ponteiro; `escreva` usa internalizarTexto diretamente
48876
+ // para obter o comprimento também.
48877
+ const { offset } = this.internalizarTexto(construto.valor);
48878
+ return `(i32.const ${offset})`;
48879
+ }
48880
+ if (typeof construto.valor === 'bigint') {
48881
+ return `(i64.const ${construto.valor})`;
48882
+ }
48883
+ // Número: trunca para i64
48884
+ return `(i64.const ${Math.trunc(Number(construto.valor))})`;
48885
+ }
48886
+ traduzirVariavel(construto) {
48887
+ var _a;
48888
+ const nome = (_a = construto.simbolo) === null || _a === void 0 ? void 0 : _a.lexema;
48889
+ if (!nome)
48890
+ return '(i64.const 0)';
48891
+ const meta = this.variaveis.get(nome);
48892
+ if (!meta)
48893
+ return `(i64.const 0) ;; variável desconhecida: ${nome}`;
48894
+ const instrucao = meta.escopo === 'local' ? 'local.get' : 'global.get';
48895
+ return `(${instrucao} ${meta.watNome})`;
48896
+ }
48897
+ traduzirAtribuir(construto) {
48898
+ var _a;
48899
+ let nome;
48900
+ if (construto.alvo instanceof construtos_1.Variavel) {
48901
+ nome = (_a = construto.alvo.simbolo) === null || _a === void 0 ? void 0 : _a.lexema;
48902
+ }
48903
+ if (!nome)
48904
+ return '(i64.const 0)';
48905
+ const tipoInferido = this.inferirTipo(construto.valor);
48906
+ const watNome = this.garantirVariavel(nome, tipoInferido);
48907
+ const valor = this.traduzirConstruto(construto.valor);
48908
+ const meta = this.variaveis.get(nome);
48909
+ const instrucao = meta.escopo === 'local' ? 'local.set' : 'global.set';
48910
+ return `(${instrucao} ${watNome} ${valor})`;
48911
+ }
48912
+ traduzirBinario(construto) {
48913
+ const esq = this.traduzirConstruto(construto.esquerda);
48914
+ const dir = this.traduzirConstruto(construto.direita);
48915
+ const op = construto.operador.lexema;
48916
+ switch (op) {
48917
+ case '+': return `(i64.add ${esq} ${dir})`;
48918
+ case '-': return `(i64.sub ${esq} ${dir})`;
48919
+ case '*': return `(i64.mul ${esq} ${dir})`;
48920
+ case '/': return `(i64.div_s ${esq} ${dir})`;
48921
+ case '%': return `(i64.rem_s ${esq} ${dir})`;
48922
+ case '<': return `(i64.extend_i32_s (i64.lt_s ${esq} ${dir}))`;
48923
+ case '>': return `(i64.extend_i32_s (i64.gt_s ${esq} ${dir}))`;
48924
+ case '<=': return `(i64.extend_i32_s (i64.le_s ${esq} ${dir}))`;
48925
+ case '>=': return `(i64.extend_i32_s (i64.ge_s ${esq} ${dir}))`;
48926
+ case '==':
48927
+ case '===': return `(i64.extend_i32_s (i64.eq ${esq} ${dir}))`;
48928
+ case '!=':
48929
+ case '!==': return `(i64.extend_i32_s (i64.ne ${esq} ${dir}))`;
48930
+ default:
48931
+ return `(i64.const 0) ;; operador não suportado: ${op}`;
48932
+ }
48933
+ }
48934
+ traduzirLogico(construto) {
48935
+ const esq = this.traduzirConstruto(construto.esquerda);
48936
+ const dir = this.traduzirConstruto(construto.direita);
48937
+ const op = construto.operador.lexema;
48938
+ // Ambos os lados avaliados (sem curto-circuito na v1).
48939
+ // Converte i64 → i32 (ne 0), aplica i32.and / i32.or, estende de volta.
48940
+ const esqBool = `(i32.ne (i32.const 0) (i32.wrap_i64 ${esq}))`;
48941
+ const dirBool = `(i32.ne (i32.const 0) (i32.wrap_i64 ${dir}))`;
48942
+ if (op === 'e' || op === '&&') {
48943
+ return `(i64.extend_i32_s (i32.and ${esqBool} ${dirBool}))`;
48944
+ }
48945
+ if (op === 'ou' || op === '||') {
48946
+ return `(i64.extend_i32_s (i32.or ${esqBool} ${dirBool}))`;
48947
+ }
48948
+ return `(i64.const 0) ;; operador lógico não suportado: ${op}`;
48949
+ }
48950
+ traduzirUnario(construto) {
48951
+ var _a;
48952
+ const op = construto.operador.lexema;
48953
+ const operando = this.traduzirConstruto(construto.operando);
48954
+ if (op === '-') {
48955
+ return `(i64.sub (i64.const 0) ${operando})`;
48956
+ }
48957
+ if (op === '!' || op === 'nao') {
48958
+ return `(i64.extend_i32_s (i64.eqz ${operando}))`;
48959
+ }
48960
+ if (op === '++' || op === '--') {
48961
+ // Apenas pré-incremento/decremento de variável simples na v1
48962
+ let nome;
48963
+ if (construto.operando instanceof construtos_1.Variavel) {
48964
+ nome = (_a = construto.operando.simbolo) === null || _a === void 0 ? void 0 : _a.lexema;
48965
+ }
48966
+ if (!nome)
48967
+ return operando;
48968
+ const meta = this.variaveis.get(nome);
48969
+ if (!meta)
48970
+ return operando;
48971
+ const instrSet = meta.escopo === 'local' ? 'local.set' : 'global.set';
48972
+ const instrGet = meta.escopo === 'local' ? 'local.get' : 'global.get';
48973
+ const delta = op === '++' ? 1 : -1;
48974
+ const novoValor = `(i64.add ${operando} (i64.const ${delta}))`;
48975
+ // Retorna uma sequência: set + get (usando local.tee para locais, ou set;get para globais)
48976
+ if (meta.escopo === 'local') {
48977
+ return `(local.tee ${meta.watNome} ${novoValor})`;
48978
+ }
48979
+ // Para globais não existe tee; emitimos o set e retornamos o get
48980
+ this.emitir(`(${instrSet} ${meta.watNome} ${novoValor})`);
48981
+ return `(${instrGet} ${meta.watNome})`;
48982
+ }
48983
+ return operando;
48984
+ }
48985
+ traduzirAgrupamento(construto) {
48986
+ return this.traduzirConstruto(construto.expressao);
48987
+ }
48988
+ traduzirChamada(construto) {
48989
+ var _a;
48990
+ let nomeFuncao = 'desconhecida';
48991
+ if (construto.entidadeChamada instanceof construtos_1.Variavel) {
48992
+ nomeFuncao = ((_a = construto.entidadeChamada.simbolo) === null || _a === void 0 ? void 0 : _a.lexema) || 'desconhecida';
48993
+ }
48994
+ const args = construto.argumentos
48995
+ .map((arg) => this.traduzirConstruto(arg))
48996
+ .join(' ');
48997
+ return `(call $${nomeFuncao}${args ? ' ' + args : ''})`;
48998
+ }
48999
+ traduzirAcessoIndiceVariavel(construto) {
49000
+ var _a;
49001
+ let baseExpr = '(i32.const 0)';
49002
+ if (construto.entidadeChamada instanceof construtos_1.Variavel) {
49003
+ const nome = (_a = construto.entidadeChamada.simbolo) === null || _a === void 0 ? void 0 : _a.lexema;
49004
+ const meta = nome ? this.variaveis.get(nome) : undefined;
49005
+ if (meta) {
49006
+ const instrGet = meta.escopo === 'local' ? 'local.get' : 'global.get';
49007
+ baseExpr = `(${instrGet} ${meta.watNome})`;
49008
+ }
49009
+ }
49010
+ const indice = this.traduzirConstruto(construto.indice);
49011
+ // base + indice * 8 (cada elemento i64 ocupa 8 bytes)
49012
+ const offset = `(i32.add ${baseExpr} (i32.wrap_i64 (i64.mul ${indice} (i64.const 8))))`;
49013
+ return `(i64.load ${offset})`;
49014
+ }
49015
+ traduzirAtribuicaoPorIndice(construto) {
49016
+ var _a;
49017
+ let baseExpr = '(i32.const 0)';
49018
+ if (construto.objeto instanceof construtos_1.Variavel) {
49019
+ const nome = (_a = construto.objeto.simbolo) === null || _a === void 0 ? void 0 : _a.lexema;
49020
+ const meta = nome ? this.variaveis.get(nome) : undefined;
49021
+ if (meta) {
49022
+ const instrGet = meta.escopo === 'local' ? 'local.get' : 'global.get';
49023
+ baseExpr = `(${instrGet} ${meta.watNome})`;
49024
+ }
49025
+ }
49026
+ const indice = this.traduzirConstruto(construto.indice);
49027
+ const valor = this.traduzirConstruto(construto.valor);
49028
+ const offset = `(i32.add ${baseExpr} (i32.wrap_i64 (i64.mul ${indice} (i64.const 8))))`;
49029
+ return `(i64.store ${offset} ${valor})`;
49030
+ }
49031
+ traduzirVetor(construto) {
49032
+ var _a, _b;
49033
+ // Aloca espaço na memória linear para N × 8 bytes.
49034
+ // Os valores são emitidos como instruções de store na função corrente.
49035
+ const n = (_b = (_a = construto.valores) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
49036
+ const offset = this.deslocamentoTexto;
49037
+ // Reserva n * 8 bytes (sem conteúdo estático; preenchido em tempo de execução)
49038
+ this.deslocamentoTexto += n * 8;
49039
+ if (construto.valores) {
49040
+ for (let i = 0; i < n; i++) {
49041
+ const valor = this.traduzirConstruto(construto.valores[i]);
49042
+ const enderecoElem = `(i32.const ${offset + i * 8})`;
49043
+ this.emitir(`(i64.store ${enderecoElem} ${valor})`);
49044
+ }
49045
+ }
49046
+ return `(i32.const ${offset})`;
49047
+ }
49048
+ traduzirDefinirValor(construto) {
49049
+ // Acesso a propriedade de objeto — simplificado na v1
49050
+ const valor = this.traduzirConstruto(construto.valor);
49051
+ return `${valor} ;; definir valor não totalmente suportado na v1`;
49052
+ }
49053
+ traduzirFuncaoConstruto(construto) {
49054
+ var _a;
49055
+ // Função anônima: emite como função nomeada com rótulo gerado
49056
+ const rotulo = `__anonima_${this.contadorRotulos++}`;
49057
+ const snapshot = this.salvarEIniciarContextoFuncao();
49058
+ for (const decl of (_a = construto.corpo) !== null && _a !== void 0 ? _a : []) {
49059
+ this.traduzirDeclaracaoInterna(decl);
49060
+ }
49061
+ this.emitir('(i64.const 0)');
49062
+ const funcWat = ` (func $${rotulo}${this.declaracoesLocaisAtual} (result i64)\n` +
49063
+ this.corpoDaFuncaoAtual +
49064
+ ` )`;
49065
+ this.funcoesCompletas.push(funcWat);
49066
+ this.restaurarContextoFuncao(snapshot);
49067
+ return `(i32.const 0) ;; referência à função anônima $${rotulo}`;
49068
+ }
49069
+ traduzirAcessoMetodo(_construto) {
49070
+ return '(i64.const 0) ;; acesso a método não suportado na v1';
49071
+ }
49072
+ traduzirTipoDe(construto) {
49073
+ return this.traduzirConstruto(construto.valor);
49074
+ }
49075
+ // =========================================================================
49076
+ // Declarações
49077
+ // =========================================================================
49078
+ traduzirVar(declaracao) {
49079
+ var _a;
49080
+ const nome = (_a = declaracao.simbolo) === null || _a === void 0 ? void 0 : _a.lexema;
49081
+ if (!nome)
49082
+ return;
49083
+ if (declaracao.inicializador instanceof construtos_1.Vetor) {
49084
+ // Vetor: aloca em memória e guarda o ponteiro i32 na variável
49085
+ if (this.dentroFuncao) {
49086
+ this.declararParamLocal(nome, 'i32', false);
49087
+ }
49088
+ else {
49089
+ this.declaracoesGlobais.push(` (global $${nome} (mut i32) (i32.const 0))`);
49090
+ this.variaveis.set(nome, { watNome: `$${nome}`, tipo: 'i32', escopo: 'global' });
49091
+ }
49092
+ const ponteiro = this.traduzirVetor(declaracao.inicializador);
49093
+ const meta = this.variaveis.get(nome);
49094
+ const instrSet = meta.escopo === 'local' ? 'local.set' : 'global.set';
49095
+ this.emitir(`(${instrSet} $${nome} ${ponteiro})`);
49096
+ return;
49097
+ }
49098
+ const tipo = declaracao.inicializador ? this.inferirTipo(declaracao.inicializador) : 'i64';
49099
+ if (this.dentroFuncao) {
49100
+ this.declararParamLocal(nome, tipo, false);
49101
+ if (declaracao.inicializador) {
49102
+ const valor = this.traduzirConstruto(declaracao.inicializador);
49103
+ this.emitir(`(local.set $${nome} ${valor})`);
49104
+ }
49105
+ }
49106
+ else {
49107
+ // Globais WAT só aceitam const-exprs como inicializadores.
49108
+ // Literais → inicializador imediato; expressões complexas → init 0 + global.set em $principal.
49109
+ if (declaracao.inicializador instanceof construtos_1.Literal) {
49110
+ const init = this.traduzirGlobalInit(declaracao.inicializador, tipo);
49111
+ this.declaracoesGlobais.push(` (global $${nome} (mut ${tipo}) ${init})`);
49112
+ this.variaveis.set(nome, { watNome: `$${nome}`, tipo, escopo: 'global' });
49113
+ }
49114
+ else {
49115
+ this.declaracoesGlobais.push(` (global $${nome} (mut ${tipo}) (${tipo}.const 0))`);
49116
+ this.variaveis.set(nome, { watNome: `$${nome}`, tipo, escopo: 'global' });
49117
+ if (declaracao.inicializador) {
49118
+ const valor = this.traduzirConstruto(declaracao.inicializador);
49119
+ this.emitir(`(global.set $${nome} ${valor})`);
49120
+ }
49121
+ }
49122
+ }
49123
+ }
49124
+ traduzirConst(declaracao) {
49125
+ var _a;
49126
+ const nome = (_a = declaracao.simbolo) === null || _a === void 0 ? void 0 : _a.lexema;
49127
+ if (!nome)
49128
+ return;
49129
+ const tipo = this.inferirTipo(declaracao.inicializador);
49130
+ if (this.dentroFuncao) {
49131
+ // Dentro de função: trata como local (sem imutabilidade real em WAT)
49132
+ this.declararParamLocal(nome, tipo, false);
49133
+ const valor = this.traduzirConstruto(declaracao.inicializador);
49134
+ this.emitir(`(local.set $${nome} ${valor})`);
49135
+ }
49136
+ else {
49137
+ // Constante global: sem `mut`; apenas literais são válidos como init
49138
+ if (declaracao.inicializador instanceof construtos_1.Literal) {
49139
+ const init = this.traduzirGlobalInit(declaracao.inicializador, tipo);
49140
+ this.declaracoesGlobais.push(` (global $${nome} ${tipo} ${init})`);
49141
+ }
49142
+ else {
49143
+ // Expressão complexa: global imutável não pode ser sobrescrita em WAT.
49144
+ // Tratamos como mutável para permitir inicialização tardia.
49145
+ this.declaracoesGlobais.push(` (global $${nome} (mut ${tipo}) (${tipo}.const 0))`);
49146
+ const valor = this.traduzirConstruto(declaracao.inicializador);
49147
+ this.emitir(`(global.set $${nome} ${valor})`);
49148
+ }
49149
+ this.variaveis.set(nome, { watNome: `$${nome}`, tipo, escopo: 'global' });
49150
+ }
49151
+ }
49152
+ /**
49153
+ * Traduz um literal para um WAT const-expr válido como inicializador de global.
49154
+ * Apenas literais são aceitos como inicializadores de globais em WAT.
49155
+ */
49156
+ traduzirGlobalInit(construto, tipo) {
49157
+ if (typeof construto.valor === 'boolean')
49158
+ return `(i64.const ${construto.valor ? 1 : 0})`;
49159
+ if (typeof construto.valor === 'string') {
49160
+ const { offset } = this.internalizarTexto(construto.valor);
49161
+ return `(i32.const ${offset})`;
49162
+ }
49163
+ if (typeof construto.valor === 'bigint')
49164
+ return `(i64.const ${construto.valor})`;
49165
+ return `(${tipo}.const ${Math.trunc(Number(construto.valor))})`;
49166
+ }
49167
+ traduzirSe(declaracao) {
49168
+ const condicao = this.traduzirConstruto(declaracao.condicao);
49169
+ this.emitir(`(if`);
49170
+ this.emitir(` (i32.wrap_i64 ${condicao})`);
49171
+ this.emitir(` (then`);
49172
+ if (this.dicionarioDeclaracoes[declaracao.caminhoEntao.constructor.name]) {
49173
+ const corpoPrevio = this.corpoDaFuncaoAtual;
49174
+ this.corpoDaFuncaoAtual = '';
49175
+ this.traduzirDeclaracaoInterna(declaracao.caminhoEntao);
49176
+ const corpoEntao = this.corpoDaFuncaoAtual
49177
+ .split('\n')
49178
+ .map((l) => ` ${l}`)
49179
+ .join('\n');
49180
+ this.corpoDaFuncaoAtual = corpoPrevio + corpoEntao;
49181
+ }
49182
+ this.emitir(` )`);
49183
+ if (declaracao.caminhoSenao) {
49184
+ this.emitir(` (else`);
49185
+ const corpoPrevio = this.corpoDaFuncaoAtual;
49186
+ this.corpoDaFuncaoAtual = '';
49187
+ this.traduzirDeclaracaoInterna(declaracao.caminhoSenao);
49188
+ const corpoSenao = this.corpoDaFuncaoAtual
49189
+ .split('\n')
49190
+ .map((l) => ` ${l}`)
49191
+ .join('\n');
49192
+ this.corpoDaFuncaoAtual = corpoPrevio + corpoSenao;
49193
+ this.emitir(` )`);
49194
+ }
49195
+ this.emitir(`)`);
49196
+ }
49197
+ traduzirEnquanto(declaracao) {
49198
+ const labelSaida = this.gerarRotulo();
49199
+ const labelLaco = this.gerarRotulo();
49200
+ this.pilhaDeControle.push({ labelSaida, labelLaco });
49201
+ const condicao = this.traduzirConstruto(declaracao.condicao);
49202
+ this.emitir(`(block ${labelSaida}`);
49203
+ this.emitir(` (loop ${labelLaco}`);
49204
+ this.emitir(` (br_if ${labelSaida}`);
49205
+ this.emitir(` (i32.eqz (i32.wrap_i64 ${condicao}))`);
49206
+ this.emitir(` )`);
49207
+ this.traduzirDeclaracaoInterna(declaracao.corpo);
49208
+ this.emitir(` (br ${labelLaco})`);
49209
+ this.emitir(` )`);
49210
+ this.emitir(`)`);
49211
+ this.pilhaDeControle.pop();
49212
+ }
49213
+ traduzirPara(declaracao) {
49214
+ // Inicializador
49215
+ if (declaracao.inicializador) {
49216
+ if (Array.isArray(declaracao.inicializador)) {
49217
+ for (const decl of declaracao.inicializador) {
49218
+ this.traduzirDeclaracaoInterna(decl);
49219
+ }
49220
+ }
49221
+ else {
49222
+ this.traduzirDeclaracaoInterna(declaracao.inicializador);
49223
+ }
49224
+ }
49225
+ const labelSaida = this.gerarRotulo();
49226
+ const labelLaco = this.gerarRotulo();
49227
+ this.pilhaDeControle.push({ labelSaida, labelLaco });
49228
+ const condicao = declaracao.condicao
49229
+ ? this.traduzirConstruto(declaracao.condicao)
49230
+ : '(i64.const 1)';
49231
+ this.emitir(`(block ${labelSaida}`);
49232
+ this.emitir(` (loop ${labelLaco}`);
49233
+ this.emitir(` (br_if ${labelSaida}`);
49234
+ this.emitir(` (i32.eqz (i32.wrap_i64 ${condicao}))`);
49235
+ this.emitir(` )`);
49236
+ if (declaracao.corpo) {
49237
+ this.traduzirDeclaracaoInterna(declaracao.corpo);
49238
+ }
49239
+ if (declaracao.incrementar) {
49240
+ const inc = this.traduzirConstruto(declaracao.incrementar);
49241
+ this.emitir(`(drop ${inc})`);
49242
+ }
49243
+ this.emitir(` (br ${labelLaco})`);
49244
+ this.emitir(` )`);
49245
+ this.emitir(`)`);
49246
+ this.pilhaDeControle.pop();
49247
+ }
49248
+ traduzirFazer(declaracao) {
49249
+ var _a;
49250
+ const labelSaida = this.gerarRotulo();
49251
+ const labelLaco = this.gerarRotulo();
49252
+ this.pilhaDeControle.push({ labelSaida, labelLaco });
49253
+ this.emitir(`(block ${labelSaida}`);
49254
+ this.emitir(` (loop ${labelLaco}`);
49255
+ if ((_a = declaracao.caminhoFazer) === null || _a === void 0 ? void 0 : _a.declaracoes) {
49256
+ for (const decl of declaracao.caminhoFazer.declaracoes) {
49257
+ this.traduzirDeclaracaoInterna(decl);
49258
+ }
49259
+ }
49260
+ if (declaracao.condicaoEnquanto) {
49261
+ const condicao = this.traduzirConstruto(declaracao.condicaoEnquanto);
49262
+ // Repete se a condição for verdadeira
49263
+ this.emitir(` (br_if ${labelLaco}`);
49264
+ this.emitir(` (i32.wrap_i64 ${condicao})`);
49265
+ this.emitir(` )`);
49266
+ }
49267
+ this.emitir(` )`);
49268
+ this.emitir(`)`);
49269
+ this.pilhaDeControle.pop();
49270
+ }
49271
+ traduzirEscolha(declaracao) {
49272
+ const rotuloEscolha = `__escolha_${this.contadorRotulos++}`;
49273
+ const tipo = 'i64';
49274
+ // Declara local temporário para o valor do escolha
49275
+ this.declararParamLocal(rotuloEscolha, tipo, false);
49276
+ const sujeito = this.traduzirConstruto(declaracao.identificadorOuLiteral);
49277
+ this.emitir(`(local.set $${rotuloEscolha} ${sujeito})`);
49278
+ // Gera cadeia de if/else aninhados
49279
+ this.emitirCadeiaEscolha(rotuloEscolha, declaracao.caminhos, declaracao.caminhoPadrao);
49280
+ }
49281
+ emitirCadeiaEscolha(rotuloEscolha, caminhos, caminhoPadrao, indice = 0) {
49282
+ var _a, _b;
49283
+ if (indice >= caminhos.length) {
49284
+ // Emite o caminho padrão (senao) se existir
49285
+ if (caminhoPadrao) {
49286
+ for (const decl of (_a = caminhoPadrao.declaracoes) !== null && _a !== void 0 ? _a : []) {
49287
+ this.traduzirDeclaracaoInterna(decl);
49288
+ }
49289
+ }
49290
+ return;
49291
+ }
49292
+ const caminho = caminhos[indice];
49293
+ if (!caminho.condicoes || caminho.condicoes.length === 0) {
49294
+ this.emitirCadeiaEscolha(rotuloEscolha, caminhos, caminhoPadrao, indice + 1);
49295
+ return;
49296
+ }
49297
+ // Condição: qualquer das condicoes casa com o valor do escolha
49298
+ const primeiraCond = `(i64.eq (local.get $${rotuloEscolha}) ${this.traduzirConstruto(caminho.condicoes[0])})`;
49299
+ let condicaoFinal = primeiraCond;
49300
+ for (let i = 1; i < caminho.condicoes.length; i++) {
49301
+ const outraCond = `(i64.eq (local.get $${rotuloEscolha}) ${this.traduzirConstruto(caminho.condicoes[i])})`;
49302
+ condicaoFinal = `(i32.or ${condicaoFinal} ${outraCond})`;
49303
+ }
49304
+ this.emitir(`(if`);
49305
+ this.emitir(` ${condicaoFinal}`);
49306
+ this.emitir(` (then`);
49307
+ for (const decl of (_b = caminho.declaracoes) !== null && _b !== void 0 ? _b : []) {
49308
+ this.traduzirDeclaracaoInterna(decl);
49309
+ }
49310
+ this.emitir(` )`);
49311
+ const temProximo = indice + 1 < caminhos.length || caminhoPadrao != null;
49312
+ if (temProximo) {
49313
+ this.emitir(` (else`);
49314
+ this.emitirCadeiaEscolha(rotuloEscolha, caminhos, caminhoPadrao, indice + 1);
49315
+ this.emitir(` )`);
49316
+ }
49317
+ this.emitir(`)`);
49318
+ }
49319
+ traduzirBloco(declaracao) {
49320
+ var _a;
49321
+ for (const decl of (_a = declaracao.declaracoes) !== null && _a !== void 0 ? _a : []) {
49322
+ this.traduzirDeclaracaoInterna(decl);
49323
+ }
49324
+ }
49325
+ traduzirExpressao(declaracao) {
49326
+ if (!declaracao.expressao)
49327
+ return;
49328
+ const expr = this.traduzirConstruto(declaracao.expressao);
49329
+ // Atribuições e stores não deixam valor na pilha; outros sim → drop
49330
+ const deixaValor = !(declaracao.expressao instanceof construtos_1.Atribuir) &&
49331
+ !(declaracao.expressao instanceof construtos_1.AtribuicaoPorIndice);
49332
+ if (deixaValor) {
49333
+ this.emitir(`(drop ${expr})`);
49334
+ }
49335
+ else {
49336
+ this.emitir(expr);
49337
+ }
49338
+ }
49339
+ traduzirEscreva(declaracao) {
49340
+ for (const arg of declaracao.argumentos) {
49341
+ if (arg instanceof construtos_1.Literal && typeof arg.valor === 'string') {
49342
+ const { offset, len } = this.internalizarTexto(arg.valor);
49343
+ this.emitir(`(call $__escreva_texto (i32.const ${offset}) (i32.const ${len}))`);
49344
+ }
49345
+ else {
49346
+ const expr = this.traduzirConstruto(arg);
49347
+ this.emitir(`(call $__escreva_inteiro ${expr})`);
49348
+ }
49349
+ }
49350
+ }
49351
+ traduzirRetorna(declaracao) {
49352
+ this.funcaoTemRetorno = true;
49353
+ if (declaracao.valor) {
49354
+ const valor = this.traduzirConstruto(declaracao.valor);
49355
+ this.emitir(`(return ${valor})`);
49356
+ }
49357
+ else {
49358
+ this.emitir(`(return (i64.const 0))`);
49359
+ }
49360
+ }
49361
+ traduzirSustar(_declaracao) {
49362
+ const topo = this.pilhaDeControle[this.pilhaDeControle.length - 1];
49363
+ if (topo) {
49364
+ this.emitir(`(br ${topo.labelSaida})`);
49365
+ }
49366
+ }
49367
+ traduzirContinua(_declaracao) {
49368
+ const topo = this.pilhaDeControle[this.pilhaDeControle.length - 1];
49369
+ if (topo) {
49370
+ this.emitir(`(br ${topo.labelLaco})`);
49371
+ }
49372
+ }
49373
+ traduzirFuncaoDeclaracao(declaracao) {
49374
+ var _a, _b, _c, _d, _e, _f;
49375
+ const nome = (_b = (_a = declaracao.simbolo) === null || _a === void 0 ? void 0 : _a.lexema) !== null && _b !== void 0 ? _b : `__func_${this.contadorRotulos++}`;
49376
+ const snapshot = this.salvarEIniciarContextoFuncao();
49377
+ // Declara parâmetros
49378
+ for (const param of (_d = (_c = declaracao.funcao) === null || _c === void 0 ? void 0 : _c.parametros) !== null && _d !== void 0 ? _d : []) {
49379
+ this.declararParamLocal(param.nome.lexema, 'i64', true);
49380
+ }
49381
+ // Traduz corpo
49382
+ for (const decl of (_f = (_e = declaracao.funcao) === null || _e === void 0 ? void 0 : _e.corpo) !== null && _f !== void 0 ? _f : []) {
49383
+ this.traduzirDeclaracaoInterna(decl);
49384
+ }
49385
+ // Retorno implícito 0 (garante stack completo)
49386
+ this.emitir('(i64.const 0)');
49387
+ const ehPrincipal = nome === 'principal';
49388
+ const exportar = ehPrincipal ? ' (export "principal")' : '';
49389
+ const funcWat = ` (func $${nome}${exportar}${this.declaracoesLocaisAtual} (result i64)\n` +
49390
+ this.corpoDaFuncaoAtual +
49391
+ ` )`;
49392
+ this.funcoesCompletas.push(funcWat);
49393
+ this.restaurarContextoFuncao(snapshot);
49394
+ }
49395
+ traduzirFalhar(declaracao) {
49396
+ // `unreachable` = trap incondicional em WebAssembly
49397
+ let msg = '';
49398
+ if (declaracao.explicacao) {
49399
+ try {
49400
+ msg = ` ;; ${this.traduzirConstruto(declaracao.explicacao)}`;
49401
+ }
49402
+ catch (_a) {
49403
+ // ignore
49404
+ }
49405
+ }
49406
+ this.emitir(`(unreachable)${msg}`);
49407
+ }
49408
+ traduzirImportar(_declaracao) {
49409
+ this.emitir(`;; importar não suportado em WebAssembly nativo`);
49410
+ }
49411
+ traduzirTente(declaracao) {
49412
+ var _a;
49413
+ this.emitir(`;; tente/pegue: tratamento de exceções é v2`);
49414
+ for (const decl of (_a = declaracao.caminhoTente) !== null && _a !== void 0 ? _a : []) {
49415
+ this.traduzirDeclaracaoInterna(decl);
49416
+ }
49417
+ }
49418
+ traduzirClasse(_declaracao) {
49419
+ this.emitir(`;; classe: não suportada na v1`);
49420
+ }
49421
+ traduzirParaCada(declaracao) {
49422
+ this.emitir(`;; para cada: requer suporte a iteráveis (v2)`);
49423
+ if (declaracao.corpo) {
49424
+ this.traduzirDeclaracaoInterna(declaracao.corpo);
49425
+ }
49426
+ }
49427
+ // =========================================================================
49428
+ // Método principal
49429
+ // =========================================================================
49430
+ /**
49431
+ * Traduz uma lista de declarações Delégua para um módulo WAT.
49432
+ * Retorna a string completa do módulo.
49433
+ */
49434
+ traduzir(declaracoes) {
49435
+ // Verifica se o usuário declarou explicitamente `funcao principal()`
49436
+ const principalDeclarado = declaracoes.some((d) => { var _a; return d instanceof declaracoes_1.FuncaoDeclaracao && ((_a = d.simbolo) === null || _a === void 0 ? void 0 : _a.lexema) === 'principal'; });
49437
+ // Processa todas as declarações de nível superior
49438
+ for (const declaracao of declaracoes) {
49439
+ this.traduzirDeclaracaoInterna(declaracao);
49440
+ }
49441
+ // Se o usuário não declarou principal(), envolve os stmts de topo em $principal
49442
+ if (!principalDeclarado) {
49443
+ const corpoTopo = this.corpoDaFuncaoAtual;
49444
+ const locaisDeclarados = this.declaracoesLocaisAtual;
49445
+ const funcPrincipal = ` (func $principal (export "principal")${locaisDeclarados} (result i64)\n` +
49446
+ corpoTopo +
49447
+ ` (i64.const 0)\n` +
49448
+ ` )`;
49449
+ this.funcoesCompletas.push(funcPrincipal);
49450
+ }
49451
+ // ── Monta as seções do módulo ────────────────────────────────────────
49452
+ const linhasImports = [
49453
+ ` (import "delegua" "escreva_texto" (func $__escreva_texto (param i32 i32)))`,
49454
+ ` (import "delegua" "escreva_inteiro" (func $__escreva_inteiro (param i64)))`,
49455
+ ];
49456
+ const linhaMemoria = ` (memory (export "memory") 1)`;
49457
+ const linhasDados = this.segmentosTexto.map((s) => {
49458
+ const { watLiteral } = this.escaparStringWat(s.conteudo);
49459
+ return ` (data (i32.const ${s.deslocamento}) "${watLiteral}")`;
49460
+ });
49461
+ const partes = [
49462
+ '(module',
49463
+ ...linhasImports,
49464
+ '',
49465
+ linhaMemoria,
49466
+ ];
49467
+ if (linhasDados.length > 0) {
49468
+ partes.push('');
49469
+ partes.push(...linhasDados);
49470
+ }
49471
+ if (this.declaracoesGlobais.length > 0) {
49472
+ partes.push('');
49473
+ partes.push(...this.declaracoesGlobais);
49474
+ }
49475
+ if (this.funcoesCompletas.length > 0) {
49476
+ partes.push('');
49477
+ partes.push(...this.funcoesCompletas);
49478
+ }
49479
+ partes.push(')');
49480
+ return partes.join('\n');
49481
+ }
49482
+ // =========================================================================
49483
+ // Arquivo host JavaScript
49484
+ // =========================================================================
49485
+ /**
49486
+ * Gera um arquivo `.mjs` host para executar o módulo WASM no Node.js.
49487
+ * Fornece os imports necessários (`delegua.escreva_texto`, `delegua.escreva_inteiro`).
49488
+ */
49489
+ gerarArquivoHost() {
49490
+ return `// Gerado por Delégua -> WebAssembly
49491
+ // Uso: node delegua-host.mjs <arquivo.wasm>
49492
+ import { readFileSync } from 'fs';
49493
+
49494
+ const args = process.argv.slice(2);
49495
+ const wasmPath = args[0] ?? 'saida.wasm';
49496
+
49497
+ let memoryExport;
49498
+
49499
+ const importObject = {
49500
+ delegua: {
49501
+ /** Imprime texto a partir de um ponteiro e comprimento na memória linear. */
49502
+ escreva_texto(ptr, len) {
49503
+ const bytes = new Uint8Array(memoryExport.buffer, ptr, len);
49504
+ process.stdout.write(new TextDecoder('utf-8').decode(bytes));
49505
+ },
49506
+ /** Imprime um inteiro de 64 bits (recebido como BigInt no JS). */
49507
+ escreva_inteiro(valor) {
49508
+ process.stdout.write(String(valor));
49509
+ },
49510
+ }
49511
+ };
49512
+
49513
+ const wasmBuffer = readFileSync(wasmPath);
49514
+ const { instance } = await WebAssembly.instantiate(wasmBuffer, importObject);
49515
+ memoryExport = instance.exports.memory;
49516
+
49517
+ const codigoSaida = Number(instance.exports.principal());
49518
+ process.exit(codigoSaida);
49519
+ `;
49520
+ }
49521
+ }
49522
+ exports.TradutorWebAssembly = TradutorWebAssembly;
49523
+
49524
+ },{"../construtos":62,"../declaracoes":110}],254:[function(require,module,exports){
47830
49525
  "use strict";
47831
49526
  /*!
47832
49527
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -47834,7 +49529,7 @@ exports.TradutorRuby = TradutorRuby;
47834
49529
  */
47835
49530
  Object.defineProperty(exports, "__esModule", { value: true });
47836
49531
 
47837
- },{}],253:[function(require,module,exports){
49532
+ },{}],255:[function(require,module,exports){
47838
49533
  "use strict";
47839
49534
  /*!
47840
49535
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -47842,7 +49537,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
47842
49537
  */
47843
49538
  Object.defineProperty(exports, "__esModule", { value: true });
47844
49539
 
47845
- },{}],254:[function(require,module,exports){
49540
+ },{}],256:[function(require,module,exports){
47846
49541
  "use strict";
47847
49542
  /*!
47848
49543
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -48004,7 +49699,7 @@ __decorate([
48004
49699
  ], ANTLRInputStream.prototype, "toString", null);
48005
49700
  exports.ANTLRInputStream = ANTLRInputStream;
48006
49701
 
48007
- },{"./Decorators":265,"./IntStream":271,"assert":408}],255:[function(require,module,exports){
49702
+ },{"./Decorators":267,"./IntStream":273,"assert":410}],257:[function(require,module,exports){
48008
49703
  "use strict";
48009
49704
  /*!
48010
49705
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -48087,7 +49782,7 @@ __decorate([
48087
49782
  ], BailErrorStrategy.prototype, "sync", null);
48088
49783
  exports.BailErrorStrategy = BailErrorStrategy;
48089
49784
 
48090
- },{"./Decorators":265,"./DefaultErrorStrategy":266,"./InputMismatchException":270,"./misc/ParseCancellationException":382}],256:[function(require,module,exports){
49785
+ },{"./Decorators":267,"./DefaultErrorStrategy":268,"./InputMismatchException":272,"./misc/ParseCancellationException":384}],258:[function(require,module,exports){
48091
49786
  "use strict";
48092
49787
  /*!
48093
49788
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -48577,7 +50272,7 @@ BufferedTokenStream = __decorate([
48577
50272
  ], BufferedTokenStream);
48578
50273
  exports.BufferedTokenStream = BufferedTokenStream;
48579
50274
 
48580
- },{"./CommonToken":261,"./Decorators":265,"./Lexer":273,"./Token":290,"./misc/Interval":377,"assert":408}],257:[function(require,module,exports){
50275
+ },{"./CommonToken":263,"./Decorators":267,"./Lexer":275,"./Token":292,"./misc/Interval":379,"assert":410}],259:[function(require,module,exports){
48581
50276
  "use strict";
48582
50277
  /*!
48583
50278
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -48585,7 +50280,7 @@ exports.BufferedTokenStream = BufferedTokenStream;
48585
50280
  */
48586
50281
  Object.defineProperty(exports, "__esModule", { value: true });
48587
50282
 
48588
- },{}],258:[function(require,module,exports){
50283
+ },{}],260:[function(require,module,exports){
48589
50284
  "use strict";
48590
50285
  /*!
48591
50286
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -48719,7 +50414,7 @@ var CharStreams;
48719
50414
  // }
48720
50415
  })(CharStreams = exports.CharStreams || (exports.CharStreams = {}));
48721
50416
 
48722
- },{"./CodePointBuffer":259,"./CodePointCharStream":260,"./IntStream":271}],259:[function(require,module,exports){
50417
+ },{"./CodePointBuffer":261,"./CodePointCharStream":262,"./IntStream":273}],261:[function(require,module,exports){
48723
50418
  "use strict";
48724
50419
  /*!
48725
50420
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -48954,7 +50649,7 @@ exports.CodePointBuffer = CodePointBuffer;
48954
50649
  CodePointBuffer.Builder = Builder;
48955
50650
  })(CodePointBuffer = exports.CodePointBuffer || (exports.CodePointBuffer = {}));
48956
50651
 
48957
- },{"./misc/Character":373,"assert":408}],260:[function(require,module,exports){
50652
+ },{"./misc/Character":375,"assert":410}],262:[function(require,module,exports){
48958
50653
  "use strict";
48959
50654
  /*!
48960
50655
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -49104,7 +50799,7 @@ __decorate([
49104
50799
  ], CodePointCharStream.prototype, "getText", null);
49105
50800
  exports.CodePointCharStream = CodePointCharStream;
49106
50801
 
49107
- },{"./Decorators":265,"./IntStream":271,"./misc/Interval":377,"assert":408}],261:[function(require,module,exports){
50802
+ },{"./Decorators":267,"./IntStream":273,"./misc/Interval":379,"assert":410}],263:[function(require,module,exports){
49108
50803
  "use strict";
49109
50804
  /*!
49110
50805
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -49334,7 +51029,7 @@ CommonToken = __decorate([
49334
51029
  ], CommonToken);
49335
51030
  exports.CommonToken = CommonToken;
49336
51031
 
49337
- },{"./Decorators":265,"./Token":290,"./misc/Interval":377}],262:[function(require,module,exports){
51032
+ },{"./Decorators":267,"./Token":292,"./misc/Interval":379}],264:[function(require,module,exports){
49338
51033
  "use strict";
49339
51034
  /*!
49340
51035
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -49398,7 +51093,7 @@ exports.CommonTokenFactory = CommonTokenFactory;
49398
51093
  CommonTokenFactory.DEFAULT = new CommonTokenFactory();
49399
51094
  })(CommonTokenFactory = exports.CommonTokenFactory || (exports.CommonTokenFactory = {}));
49400
51095
 
49401
- },{"./CommonToken":261,"./Decorators":265,"./misc/Interval":377}],263:[function(require,module,exports){
51096
+ },{"./CommonToken":263,"./Decorators":267,"./misc/Interval":379}],265:[function(require,module,exports){
49402
51097
  "use strict";
49403
51098
  /*!
49404
51099
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -49525,7 +51220,7 @@ CommonTokenStream = __decorate([
49525
51220
  ], CommonTokenStream);
49526
51221
  exports.CommonTokenStream = CommonTokenStream;
49527
51222
 
49528
- },{"./BufferedTokenStream":256,"./Decorators":265,"./Token":290}],264:[function(require,module,exports){
51223
+ },{"./BufferedTokenStream":258,"./Decorators":267,"./Token":292}],266:[function(require,module,exports){
49529
51224
  "use strict";
49530
51225
  /*!
49531
51226
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -49559,7 +51254,7 @@ exports.ConsoleErrorListener = ConsoleErrorListener;
49559
51254
  */
49560
51255
  ConsoleErrorListener.INSTANCE = new ConsoleErrorListener();
49561
51256
 
49562
- },{}],265:[function(require,module,exports){
51257
+ },{}],267:[function(require,module,exports){
49563
51258
  "use strict";
49564
51259
  /*!
49565
51260
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -49586,7 +51281,7 @@ function SuppressWarnings(options) {
49586
51281
  }
49587
51282
  exports.SuppressWarnings = SuppressWarnings;
49588
51283
 
49589
- },{}],266:[function(require,module,exports){
51284
+ },{}],268:[function(require,module,exports){
49590
51285
  "use strict";
49591
51286
  /*!
49592
51287
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -50400,7 +52095,7 @@ __decorate([
50400
52095
  ], DefaultErrorStrategy.prototype, "consumeUntil", null);
50401
52096
  exports.DefaultErrorStrategy = DefaultErrorStrategy;
50402
52097
 
50403
- },{"./Decorators":265,"./FailedPredicateException":269,"./InputMismatchException":270,"./NoViableAltException":277,"./Token":290,"./atn/ATNState":304,"./atn/ATNStateType":305,"./atn/PredictionContext":345,"./misc/IntervalSet":378}],267:[function(require,module,exports){
52098
+ },{"./Decorators":267,"./FailedPredicateException":271,"./InputMismatchException":272,"./NoViableAltException":279,"./Token":292,"./atn/ATNState":306,"./atn/ATNStateType":307,"./atn/PredictionContext":347,"./misc/IntervalSet":380}],269:[function(require,module,exports){
50404
52099
  "use strict";
50405
52100
  /*!
50406
52101
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -50476,7 +52171,7 @@ var Dependents;
50476
52171
  Dependents[Dependents["FOLLOWING"] = 9] = "FOLLOWING";
50477
52172
  })(Dependents = exports.Dependents || (exports.Dependents = {}));
50478
52173
 
50479
- },{}],268:[function(require,module,exports){
52174
+ },{}],270:[function(require,module,exports){
50480
52175
  "use strict";
50481
52176
  /*!
50482
52177
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -50624,7 +52319,7 @@ __decorate([
50624
52319
  ], DiagnosticErrorListener.prototype, "getConflictingAlts", null);
50625
52320
  exports.DiagnosticErrorListener = DiagnosticErrorListener;
50626
52321
 
50627
- },{"./Decorators":265,"./misc/BitSet":372,"./misc/Interval":377}],269:[function(require,module,exports){
52322
+ },{"./Decorators":267,"./misc/BitSet":374,"./misc/Interval":379}],271:[function(require,module,exports){
50628
52323
  "use strict";
50629
52324
  /*!
50630
52325
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -50689,7 +52384,7 @@ FailedPredicateException = __decorate([
50689
52384
  ], FailedPredicateException);
50690
52385
  exports.FailedPredicateException = FailedPredicateException;
50691
52386
 
50692
- },{"./Decorators":265,"./RecognitionException":284,"./atn/PredicateTransition":344}],270:[function(require,module,exports){
52387
+ },{"./Decorators":267,"./RecognitionException":286,"./atn/PredicateTransition":346}],272:[function(require,module,exports){
50693
52388
  "use strict";
50694
52389
  /*!
50695
52390
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -50729,7 +52424,7 @@ InputMismatchException = __decorate([
50729
52424
  ], InputMismatchException);
50730
52425
  exports.InputMismatchException = InputMismatchException;
50731
52426
 
50732
- },{"./Decorators":265,"./RecognitionException":284}],271:[function(require,module,exports){
52427
+ },{"./Decorators":267,"./RecognitionException":286}],273:[function(require,module,exports){
50733
52428
  "use strict";
50734
52429
  /*!
50735
52430
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -50752,7 +52447,7 @@ var IntStream;
50752
52447
  IntStream.UNKNOWN_SOURCE_NAME = "<unknown>";
50753
52448
  })(IntStream = exports.IntStream || (exports.IntStream = {}));
50754
52449
 
50755
- },{}],272:[function(require,module,exports){
52450
+ },{}],274:[function(require,module,exports){
50756
52451
  "use strict";
50757
52452
  /*!
50758
52453
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -50799,7 +52494,7 @@ __decorate([
50799
52494
  ], InterpreterRuleContext.prototype, "ruleIndex", null);
50800
52495
  exports.InterpreterRuleContext = InterpreterRuleContext;
50801
52496
 
50802
- },{"./Decorators":265,"./ParserRuleContext":281}],273:[function(require,module,exports){
52497
+ },{"./Decorators":267,"./ParserRuleContext":283}],275:[function(require,module,exports){
50803
52498
  "use strict";
50804
52499
  /*!
50805
52500
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -51135,7 +52830,7 @@ __decorate([
51135
52830
  ], Lexer.prototype, "charPositionInLine", null);
51136
52831
  exports.Lexer = Lexer;
51137
52832
 
51138
- },{"./CommonTokenFactory":262,"./Decorators":265,"./IntStream":271,"./LexerNoViableAltException":275,"./Recognizer":285,"./Token":290,"./atn/LexerATNSimulator":323,"./misc/IntegerStack":376,"./misc/Interval":377}],274:[function(require,module,exports){
52833
+ },{"./CommonTokenFactory":264,"./Decorators":267,"./IntStream":273,"./LexerNoViableAltException":277,"./Recognizer":287,"./Token":292,"./atn/LexerATNSimulator":325,"./misc/IntegerStack":378,"./misc/Interval":379}],276:[function(require,module,exports){
51139
52834
  "use strict";
51140
52835
  /*!
51141
52836
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -51215,7 +52910,7 @@ LexerInterpreter = __decorate([
51215
52910
  ], LexerInterpreter);
51216
52911
  exports.LexerInterpreter = LexerInterpreter;
51217
52912
 
51218
- },{"./Decorators":265,"./Lexer":273,"./atn/LexerATNSimulator":323}],275:[function(require,module,exports){
52913
+ },{"./Decorators":267,"./Lexer":275,"./atn/LexerATNSimulator":325}],277:[function(require,module,exports){
51219
52914
  "use strict";
51220
52915
  /*!
51221
52916
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -51272,7 +52967,7 @@ LexerNoViableAltException = __decorate([
51272
52967
  ], LexerNoViableAltException);
51273
52968
  exports.LexerNoViableAltException = LexerNoViableAltException;
51274
52969
 
51275
- },{"./Decorators":265,"./RecognitionException":284,"./misc/Interval":377,"./misc/Utils":384}],276:[function(require,module,exports){
52970
+ },{"./Decorators":267,"./RecognitionException":286,"./misc/Interval":379,"./misc/Utils":386}],278:[function(require,module,exports){
51276
52971
  "use strict";
51277
52972
  /*!
51278
52973
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -51482,7 +53177,7 @@ ListTokenSource = __decorate([
51482
53177
  ], ListTokenSource);
51483
53178
  exports.ListTokenSource = ListTokenSource;
51484
53179
 
51485
- },{"./CommonTokenFactory":262,"./Decorators":265,"./Token":290}],277:[function(require,module,exports){
53180
+ },{"./CommonTokenFactory":264,"./Decorators":267,"./Token":292}],279:[function(require,module,exports){
51486
53181
  "use strict";
51487
53182
  /*!
51488
53183
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -51537,7 +53232,7 @@ __decorate([
51537
53232
  ], NoViableAltException.prototype, "_startToken", void 0);
51538
53233
  exports.NoViableAltException = NoViableAltException;
51539
53234
 
51540
- },{"./Decorators":265,"./Parser":278,"./RecognitionException":284}],278:[function(require,module,exports){
53235
+ },{"./Decorators":267,"./Parser":280,"./RecognitionException":286}],280:[function(require,module,exports){
51541
53236
  (function (process){(function (){
51542
53237
  "use strict";
51543
53238
  /*!
@@ -52383,7 +54078,7 @@ __decorate([
52383
54078
  exports.Parser = Parser;
52384
54079
 
52385
54080
  }).call(this)}).call(this,require('_process'))
52386
- },{"./Decorators":265,"./DefaultErrorStrategy":266,"./Lexer":273,"./ProxyParserErrorListener":283,"./Recognizer":285,"./Token":290,"./atn/ATNDeserializationOptions":301,"./atn/ATNDeserializer":302,"./atn/ParseInfo":338,"./atn/ParserATNSimulator":339,"./atn/ProfilingATNSimulator":348,"./misc/IntegerStack":376,"./misc/Utils":384,"./tree/ErrorNode":385,"./tree/TerminalNode":388,"./tree/pattern/ParseTreePatternMatcher":393,"_process":467}],279:[function(require,module,exports){
54081
+ },{"./Decorators":267,"./DefaultErrorStrategy":268,"./Lexer":275,"./ProxyParserErrorListener":285,"./Recognizer":287,"./Token":292,"./atn/ATNDeserializationOptions":303,"./atn/ATNDeserializer":304,"./atn/ParseInfo":340,"./atn/ParserATNSimulator":341,"./atn/ProfilingATNSimulator":350,"./misc/IntegerStack":378,"./misc/Utils":386,"./tree/ErrorNode":387,"./tree/TerminalNode":390,"./tree/pattern/ParseTreePatternMatcher":395,"_process":469}],281:[function(require,module,exports){
52387
54082
  "use strict";
52388
54083
  /*!
52389
54084
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -52391,7 +54086,7 @@ exports.Parser = Parser;
52391
54086
  */
52392
54087
  Object.defineProperty(exports, "__esModule", { value: true });
52393
54088
 
52394
- },{}],280:[function(require,module,exports){
54089
+ },{}],282:[function(require,module,exports){
52395
54090
  "use strict";
52396
54091
  /*!
52397
54092
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -52799,7 +54494,7 @@ ParserInterpreter = __decorate([
52799
54494
  ], ParserInterpreter);
52800
54495
  exports.ParserInterpreter = ParserInterpreter;
52801
54496
 
52802
- },{"./Decorators":265,"./FailedPredicateException":269,"./InputMismatchException":270,"./InterpreterRuleContext":272,"./Parser":278,"./RecognitionException":284,"./Token":290,"./atn/ATNState":304,"./atn/ATNStateType":305,"./atn/LoopEndState":335,"./atn/ParserATNSimulator":339,"./atn/StarLoopEntryState":357,"./misc/BitSet":372}],281:[function(require,module,exports){
54497
+ },{"./Decorators":267,"./FailedPredicateException":271,"./InputMismatchException":272,"./InterpreterRuleContext":274,"./Parser":280,"./RecognitionException":286,"./Token":292,"./atn/ATNState":306,"./atn/ATNStateType":307,"./atn/LoopEndState":337,"./atn/ParserATNSimulator":341,"./atn/StarLoopEntryState":359,"./misc/BitSet":374}],283:[function(require,module,exports){
52803
54498
  "use strict";
52804
54499
  /*!
52805
54500
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -53100,7 +54795,7 @@ __decorate([
53100
54795
  ], ParserRuleContext.prototype, "sourceInterval", null);
53101
54796
  exports.ParserRuleContext = ParserRuleContext;
53102
54797
 
53103
- },{"./Decorators":265,"./RuleContext":286,"./misc/Interval":377,"./tree/ErrorNode":385,"./tree/TerminalNode":388}],282:[function(require,module,exports){
54798
+ },{"./Decorators":267,"./RuleContext":288,"./misc/Interval":379,"./tree/ErrorNode":387,"./tree/TerminalNode":390}],284:[function(require,module,exports){
53104
54799
  "use strict";
53105
54800
  /*!
53106
54801
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -53150,7 +54845,7 @@ __decorate([
53150
54845
  ], ProxyErrorListener.prototype, "syntaxError", null);
53151
54846
  exports.ProxyErrorListener = ProxyErrorListener;
53152
54847
 
53153
- },{"./Decorators":265}],283:[function(require,module,exports){
54848
+ },{"./Decorators":267}],285:[function(require,module,exports){
53154
54849
  "use strict";
53155
54850
  /*!
53156
54851
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -53209,7 +54904,7 @@ __decorate([
53209
54904
  ], ProxyParserErrorListener.prototype, "reportContextSensitivity", null);
53210
54905
  exports.ProxyParserErrorListener = ProxyParserErrorListener;
53211
54906
 
53212
- },{"./Decorators":265,"./ProxyErrorListener":282}],284:[function(require,module,exports){
54907
+ },{"./Decorators":267,"./ProxyErrorListener":284}],286:[function(require,module,exports){
53213
54908
  "use strict";
53214
54909
  /*!
53215
54910
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -53314,7 +55009,7 @@ class RecognitionException extends Error {
53314
55009
  }
53315
55010
  exports.RecognitionException = RecognitionException;
53316
55011
 
53317
- },{}],285:[function(require,module,exports){
55012
+ },{}],287:[function(require,module,exports){
53318
55013
  "use strict";
53319
55014
  /*!
53320
55015
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -53533,7 +55228,7 @@ __decorate([
53533
55228
  ], Recognizer.prototype, "getErrorListeners", null);
53534
55229
  exports.Recognizer = Recognizer;
53535
55230
 
53536
- },{"./ConsoleErrorListener":264,"./Decorators":265,"./ProxyErrorListener":282,"./Token":290,"./misc/Utils":384}],286:[function(require,module,exports){
55231
+ },{"./ConsoleErrorListener":266,"./Decorators":267,"./ProxyErrorListener":284,"./Token":292,"./misc/Utils":386}],288:[function(require,module,exports){
53537
55232
  "use strict";
53538
55233
  /*!
53539
55234
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -53750,7 +55445,7 @@ __decorate([
53750
55445
  ], RuleContext.prototype, "toStringTree", null);
53751
55446
  exports.RuleContext = RuleContext;
53752
55447
 
53753
- },{"./Decorators":265,"./ParserRuleContext":281,"./Recognizer":285,"./atn/ATN":298,"./misc/Interval":377,"./tree/RuleNode":387,"./tree/Trees":389}],287:[function(require,module,exports){
55448
+ },{"./Decorators":267,"./ParserRuleContext":283,"./Recognizer":287,"./atn/ATN":300,"./misc/Interval":379,"./tree/RuleNode":389,"./tree/Trees":391}],289:[function(require,module,exports){
53754
55449
  "use strict";
53755
55450
  /*!
53756
55451
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -53801,7 +55496,7 @@ __decorate([
53801
55496
  ], RuleContextWithAltNum.prototype, "altNumber", null);
53802
55497
  exports.RuleContextWithAltNum = RuleContextWithAltNum;
53803
55498
 
53804
- },{"./Decorators":265,"./ParserRuleContext":281,"./atn/ATN":298}],288:[function(require,module,exports){
55499
+ },{"./Decorators":267,"./ParserRuleContext":283,"./atn/ATN":300}],290:[function(require,module,exports){
53805
55500
  "use strict";
53806
55501
  /*!
53807
55502
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -53824,7 +55519,7 @@ function RuleDependency(dependency) {
53824
55519
  }
53825
55520
  exports.RuleDependency = RuleDependency;
53826
55521
 
53827
- },{}],289:[function(require,module,exports){
55522
+ },{}],291:[function(require,module,exports){
53828
55523
  "use strict";
53829
55524
  /*!
53830
55525
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -53843,7 +55538,7 @@ function RuleVersion(version) {
53843
55538
  }
53844
55539
  exports.RuleVersion = RuleVersion;
53845
55540
 
53846
- },{}],290:[function(require,module,exports){
55541
+ },{}],292:[function(require,module,exports){
53847
55542
  "use strict";
53848
55543
  /*!
53849
55544
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -53883,7 +55578,7 @@ var Token;
53883
55578
  Token.MIN_USER_CHANNEL_VALUE = 2;
53884
55579
  })(Token = exports.Token || (exports.Token = {}));
53885
55580
 
53886
- },{"./IntStream":271}],291:[function(require,module,exports){
55581
+ },{"./IntStream":273}],293:[function(require,module,exports){
53887
55582
  "use strict";
53888
55583
  /*!
53889
55584
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -53891,7 +55586,7 @@ var Token;
53891
55586
  */
53892
55587
  Object.defineProperty(exports, "__esModule", { value: true });
53893
55588
 
53894
- },{}],292:[function(require,module,exports){
55589
+ },{}],294:[function(require,module,exports){
53895
55590
  "use strict";
53896
55591
  /*!
53897
55592
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -53899,7 +55594,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
53899
55594
  */
53900
55595
  Object.defineProperty(exports, "__esModule", { value: true });
53901
55596
 
53902
- },{}],293:[function(require,module,exports){
55597
+ },{}],295:[function(require,module,exports){
53903
55598
  "use strict";
53904
55599
  /*!
53905
55600
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -53907,7 +55602,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
53907
55602
  */
53908
55603
  Object.defineProperty(exports, "__esModule", { value: true });
53909
55604
 
53910
- },{}],294:[function(require,module,exports){
55605
+ },{}],296:[function(require,module,exports){
53911
55606
  "use strict";
53912
55607
  /*!
53913
55608
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -54415,7 +56110,7 @@ __decorate([
54415
56110
  Decorators_1.Override
54416
56111
  ], ReplaceOp.prototype, "toString", null);
54417
56112
 
54418
- },{"./Decorators":265,"./Token":290,"./misc/Interval":377}],295:[function(require,module,exports){
56113
+ },{"./Decorators":267,"./Token":292,"./misc/Interval":379}],297:[function(require,module,exports){
54419
56114
  "use strict";
54420
56115
  /*!
54421
56116
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -54423,7 +56118,7 @@ __decorate([
54423
56118
  */
54424
56119
  Object.defineProperty(exports, "__esModule", { value: true });
54425
56120
 
54426
- },{}],296:[function(require,module,exports){
56121
+ },{}],298:[function(require,module,exports){
54427
56122
  "use strict";
54428
56123
  /*!
54429
56124
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -54543,7 +56238,7 @@ __decorate([
54543
56238
  ], VocabularyImpl, "EMPTY_VOCABULARY", void 0);
54544
56239
  exports.VocabularyImpl = VocabularyImpl;
54545
56240
 
54546
- },{"./Decorators":265,"./Token":290}],297:[function(require,module,exports){
56241
+ },{"./Decorators":267,"./Token":292}],299:[function(require,module,exports){
54547
56242
  "use strict";
54548
56243
  /*!
54549
56244
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -54551,7 +56246,7 @@ exports.VocabularyImpl = VocabularyImpl;
54551
56246
  */
54552
56247
  Object.defineProperty(exports, "__esModule", { value: true });
54553
56248
 
54554
- },{}],298:[function(require,module,exports){
56249
+ },{}],300:[function(require,module,exports){
54555
56250
  "use strict";
54556
56251
  /*!
54557
56252
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -54773,7 +56468,7 @@ exports.ATN = ATN;
54773
56468
  })(ATN = exports.ATN || (exports.ATN = {}));
54774
56469
  exports.ATN = ATN;
54775
56470
 
54776
- },{"../Decorators":265,"../Token":290,"../dfa/DFA":363,"../misc/Array2DHashMap":368,"../misc/IntervalSet":378,"../misc/ObjectEqualityComparator":381,"./InvalidState":321,"./LL1Analyzer":322,"./PredictionContext":345,"assert":408}],299:[function(require,module,exports){
56471
+ },{"../Decorators":267,"../Token":292,"../dfa/DFA":365,"../misc/Array2DHashMap":370,"../misc/IntervalSet":380,"../misc/ObjectEqualityComparator":383,"./InvalidState":323,"./LL1Analyzer":324,"./PredictionContext":347,"assert":410}],301:[function(require,module,exports){
54777
56472
  "use strict";
54778
56473
  /*!
54779
56474
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -55298,7 +56993,7 @@ ActionSemanticContextATNConfig = __decorate([
55298
56993
  __param(1, Decorators_1.NotNull), __param(2, Decorators_1.NotNull)
55299
56994
  ], ActionSemanticContextATNConfig);
55300
56995
 
55301
- },{"../Decorators":265,"../misc/Array2DHashMap":368,"../misc/MurmurHash":380,"../misc/ObjectEqualityComparator":381,"./DecisionState":318,"./PredictionContext":345,"./SemanticContext":353,"assert":408}],300:[function(require,module,exports){
56996
+ },{"../Decorators":267,"../misc/Array2DHashMap":370,"../misc/MurmurHash":382,"../misc/ObjectEqualityComparator":383,"./DecisionState":320,"./PredictionContext":347,"./SemanticContext":355,"assert":410}],302:[function(require,module,exports){
55302
56997
  "use strict";
55303
56998
  /*!
55304
56999
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -55745,7 +57440,7 @@ __decorate([
55745
57440
  ], ATNConfigSet.prototype, "hashCode", null);
55746
57441
  exports.ATNConfigSet = ATNConfigSet;
55747
57442
 
55748
- },{"../Decorators":265,"../misc/Array2DHashMap":368,"../misc/Array2DHashSet":369,"../misc/ArrayEqualityComparator":370,"../misc/BitSet":372,"../misc/ObjectEqualityComparator":381,"../misc/Utils":384,"./ATN":298,"./ATNConfig":299,"./PredictionContext":345,"./PredictionContextCache":346,"./SemanticContext":353,"assert":408}],301:[function(require,module,exports){
57443
+ },{"../Decorators":267,"../misc/Array2DHashMap":370,"../misc/Array2DHashSet":371,"../misc/ArrayEqualityComparator":372,"../misc/BitSet":374,"../misc/ObjectEqualityComparator":383,"../misc/Utils":386,"./ATN":300,"./ATNConfig":301,"./PredictionContext":347,"./PredictionContextCache":348,"./SemanticContext":355,"assert":410}],303:[function(require,module,exports){
55749
57444
  "use strict";
55750
57445
  /*!
55751
57446
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -55824,7 +57519,7 @@ __decorate([
55824
57519
  ], ATNDeserializationOptions, "defaultOptions", null);
55825
57520
  exports.ATNDeserializationOptions = ATNDeserializationOptions;
55826
57521
 
55827
- },{"../Decorators":265}],302:[function(require,module,exports){
57522
+ },{"../Decorators":267}],304:[function(require,module,exports){
55828
57523
  "use strict";
55829
57524
  /*!
55830
57525
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -56911,7 +58606,7 @@ __decorate([
56911
58606
  ], ATNDeserializer.prototype, "edgeFactory", null);
56912
58607
  exports.ATNDeserializer = ATNDeserializer;
56913
58608
 
56914
- },{"../Decorators":265,"../Token":290,"../dfa/DFA":363,"../misc/Array2DHashSet":369,"../misc/BitSet":372,"../misc/IntervalSet":378,"../misc/UUID":383,"./ATN":298,"./ATNDeserializationOptions":301,"./ATNStateType":305,"./ActionTransition":307,"./AtomTransition":309,"./BasicBlockStartState":310,"./BasicState":311,"./BlockEndState":312,"./BlockStartState":313,"./DecisionState":318,"./EpsilonTransition":319,"./InvalidState":321,"./LexerChannelAction":325,"./LexerCustomAction":326,"./LexerModeAction":328,"./LexerMoreAction":329,"./LexerPopModeAction":330,"./LexerPushModeAction":331,"./LexerSkipAction":332,"./LexerTypeAction":333,"./LoopEndState":335,"./NotSetTransition":336,"./ParserATNSimulator":339,"./PlusBlockStartState":340,"./PlusLoopbackState":341,"./PrecedencePredicateTransition":342,"./PredicateTransition":344,"./RangeTransition":349,"./RuleStartState":350,"./RuleStopState":351,"./RuleTransition":352,"./SetTransition":354,"./StarBlockStartState":356,"./StarLoopEntryState":357,"./StarLoopbackState":358,"./TokensStartState":359,"./WildcardTransition":361}],303:[function(require,module,exports){
58609
+ },{"../Decorators":267,"../Token":292,"../dfa/DFA":365,"../misc/Array2DHashSet":371,"../misc/BitSet":374,"../misc/IntervalSet":380,"../misc/UUID":385,"./ATN":300,"./ATNDeserializationOptions":303,"./ATNStateType":307,"./ActionTransition":309,"./AtomTransition":311,"./BasicBlockStartState":312,"./BasicState":313,"./BlockEndState":314,"./BlockStartState":315,"./DecisionState":320,"./EpsilonTransition":321,"./InvalidState":323,"./LexerChannelAction":327,"./LexerCustomAction":328,"./LexerModeAction":330,"./LexerMoreAction":331,"./LexerPopModeAction":332,"./LexerPushModeAction":333,"./LexerSkipAction":334,"./LexerTypeAction":335,"./LoopEndState":337,"./NotSetTransition":338,"./ParserATNSimulator":341,"./PlusBlockStartState":342,"./PlusLoopbackState":343,"./PrecedencePredicateTransition":344,"./PredicateTransition":346,"./RangeTransition":351,"./RuleStartState":352,"./RuleStopState":353,"./RuleTransition":354,"./SetTransition":356,"./StarBlockStartState":358,"./StarLoopEntryState":359,"./StarLoopbackState":360,"./TokensStartState":361,"./WildcardTransition":363}],305:[function(require,module,exports){
56915
58610
  "use strict";
56916
58611
  /*!
56917
58612
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -56975,7 +58670,7 @@ exports.ATNSimulator = ATNSimulator;
56975
58670
  })(ATNSimulator = exports.ATNSimulator || (exports.ATNSimulator = {}));
56976
58671
  exports.ATNSimulator = ATNSimulator;
56977
58672
 
56978
- },{"../Decorators":265,"../dfa/DFAState":365,"./ATNConfigSet":300,"./PredictionContext":345}],304:[function(require,module,exports){
58673
+ },{"../Decorators":267,"../dfa/DFAState":367,"./ATNConfigSet":302,"./PredictionContext":347}],306:[function(require,module,exports){
56979
58674
  "use strict";
56980
58675
  /*!
56981
58676
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -57162,7 +58857,7 @@ exports.ATNState = ATNState;
57162
58857
  ATNState.INVALID_STATE_NUMBER = -1;
57163
58858
  })(ATNState = exports.ATNState || (exports.ATNState = {}));
57164
58859
 
57165
- },{"../Decorators":265}],305:[function(require,module,exports){
58860
+ },{"../Decorators":267}],307:[function(require,module,exports){
57166
58861
  "use strict";
57167
58862
  /*!
57168
58863
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -57188,7 +58883,7 @@ var ATNStateType;
57188
58883
  ATNStateType[ATNStateType["LOOP_END"] = 12] = "LOOP_END";
57189
58884
  })(ATNStateType = exports.ATNStateType || (exports.ATNStateType = {}));
57190
58885
 
57191
- },{}],306:[function(require,module,exports){
58886
+ },{}],308:[function(require,module,exports){
57192
58887
  "use strict";
57193
58888
  /*!
57194
58889
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -57208,7 +58903,7 @@ class AbstractPredicateTransition extends Transition_1.Transition {
57208
58903
  }
57209
58904
  exports.AbstractPredicateTransition = AbstractPredicateTransition;
57210
58905
 
57211
- },{"./Transition":360}],307:[function(require,module,exports){
58906
+ },{"./Transition":362}],309:[function(require,module,exports){
57212
58907
  "use strict";
57213
58908
  /*!
57214
58909
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -57264,7 +58959,7 @@ ActionTransition = __decorate([
57264
58959
  ], ActionTransition);
57265
58960
  exports.ActionTransition = ActionTransition;
57266
58961
 
57267
- },{"../Decorators":265,"./Transition":360}],308:[function(require,module,exports){
58962
+ },{"../Decorators":267,"./Transition":362}],310:[function(require,module,exports){
57268
58963
  "use strict";
57269
58964
  /*!
57270
58965
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -57351,7 +59046,7 @@ AmbiguityInfo = __decorate([
57351
59046
  ], AmbiguityInfo);
57352
59047
  exports.AmbiguityInfo = AmbiguityInfo;
57353
59048
 
57354
- },{"../Decorators":265,"./DecisionEventInfo":316}],309:[function(require,module,exports){
59049
+ },{"../Decorators":267,"./DecisionEventInfo":318}],311:[function(require,module,exports){
57355
59050
  "use strict";
57356
59051
  /*!
57357
59052
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -57409,7 +59104,7 @@ AtomTransition = __decorate([
57409
59104
  ], AtomTransition);
57410
59105
  exports.AtomTransition = AtomTransition;
57411
59106
 
57412
- },{"../Decorators":265,"../misc/IntervalSet":378,"./Transition":360}],310:[function(require,module,exports){
59107
+ },{"../Decorators":267,"../misc/IntervalSet":380,"./Transition":362}],312:[function(require,module,exports){
57413
59108
  "use strict";
57414
59109
  /*!
57415
59110
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -57441,7 +59136,7 @@ __decorate([
57441
59136
  ], BasicBlockStartState.prototype, "stateType", null);
57442
59137
  exports.BasicBlockStartState = BasicBlockStartState;
57443
59138
 
57444
- },{"../Decorators":265,"./ATNStateType":305,"./BlockStartState":313}],311:[function(require,module,exports){
59139
+ },{"../Decorators":267,"./ATNStateType":307,"./BlockStartState":315}],313:[function(require,module,exports){
57445
59140
  "use strict";
57446
59141
  /*!
57447
59142
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -57473,7 +59168,7 @@ __decorate([
57473
59168
  ], BasicState.prototype, "stateType", null);
57474
59169
  exports.BasicState = BasicState;
57475
59170
 
57476
- },{"../Decorators":265,"./ATNState":304,"./ATNStateType":305}],312:[function(require,module,exports){
59171
+ },{"../Decorators":267,"./ATNState":306,"./ATNStateType":307}],314:[function(require,module,exports){
57477
59172
  "use strict";
57478
59173
  /*!
57479
59174
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -57502,7 +59197,7 @@ __decorate([
57502
59197
  ], BlockEndState.prototype, "stateType", null);
57503
59198
  exports.BlockEndState = BlockEndState;
57504
59199
 
57505
- },{"../Decorators":265,"./ATNState":304,"./ATNStateType":305}],313:[function(require,module,exports){
59200
+ },{"../Decorators":267,"./ATNState":306,"./ATNStateType":307}],315:[function(require,module,exports){
57506
59201
  "use strict";
57507
59202
  /*!
57508
59203
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -57516,7 +59211,7 @@ class BlockStartState extends DecisionState_1.DecisionState {
57516
59211
  }
57517
59212
  exports.BlockStartState = BlockStartState;
57518
59213
 
57519
- },{"./DecisionState":318}],314:[function(require,module,exports){
59214
+ },{"./DecisionState":320}],316:[function(require,module,exports){
57520
59215
  "use strict";
57521
59216
  /*!
57522
59217
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -57586,7 +59281,7 @@ __decorate([
57586
59281
  ], ConflictInfo.prototype, "hashCode", null);
57587
59282
  exports.ConflictInfo = ConflictInfo;
57588
59283
 
57589
- },{"../Decorators":265,"../misc/Utils":384}],315:[function(require,module,exports){
59284
+ },{"../Decorators":267,"../misc/Utils":386}],317:[function(require,module,exports){
57590
59285
  "use strict";
57591
59286
  /*!
57592
59287
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -57646,7 +59341,7 @@ ContextSensitivityInfo = __decorate([
57646
59341
  ], ContextSensitivityInfo);
57647
59342
  exports.ContextSensitivityInfo = ContextSensitivityInfo;
57648
59343
 
57649
- },{"../Decorators":265,"./DecisionEventInfo":316}],316:[function(require,module,exports){
59344
+ },{"../Decorators":267,"./DecisionEventInfo":318}],318:[function(require,module,exports){
57650
59345
  "use strict";
57651
59346
  /*!
57652
59347
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -57698,7 +59393,7 @@ DecisionEventInfo = __decorate([
57698
59393
  ], DecisionEventInfo);
57699
59394
  exports.DecisionEventInfo = DecisionEventInfo;
57700
59395
 
57701
- },{"../Decorators":265}],317:[function(require,module,exports){
59396
+ },{"../Decorators":267}],319:[function(require,module,exports){
57702
59397
  "use strict";
57703
59398
  /*!
57704
59399
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -57911,7 +59606,7 @@ __decorate([
57911
59606
  ], DecisionInfo.prototype, "toString", null);
57912
59607
  exports.DecisionInfo = DecisionInfo;
57913
59608
 
57914
- },{"../Decorators":265}],318:[function(require,module,exports){
59609
+ },{"../Decorators":267}],320:[function(require,module,exports){
57915
59610
  "use strict";
57916
59611
  /*!
57917
59612
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -57931,7 +59626,7 @@ class DecisionState extends ATNState_1.ATNState {
57931
59626
  }
57932
59627
  exports.DecisionState = DecisionState;
57933
59628
 
57934
- },{"./ATNState":304}],319:[function(require,module,exports){
59629
+ },{"./ATNState":306}],321:[function(require,module,exports){
57935
59630
  "use strict";
57936
59631
  /*!
57937
59632
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -57997,7 +59692,7 @@ EpsilonTransition = __decorate([
57997
59692
  ], EpsilonTransition);
57998
59693
  exports.EpsilonTransition = EpsilonTransition;
57999
59694
 
58000
- },{"../Decorators":265,"./Transition":360}],320:[function(require,module,exports){
59695
+ },{"../Decorators":267,"./Transition":362}],322:[function(require,module,exports){
58001
59696
  "use strict";
58002
59697
  /*!
58003
59698
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -58050,7 +59745,7 @@ ErrorInfo = __decorate([
58050
59745
  ], ErrorInfo);
58051
59746
  exports.ErrorInfo = ErrorInfo;
58052
59747
 
58053
- },{"../Decorators":265,"./DecisionEventInfo":316}],321:[function(require,module,exports){
59748
+ },{"../Decorators":267,"./DecisionEventInfo":318}],323:[function(require,module,exports){
58054
59749
  "use strict";
58055
59750
  /*!
58056
59751
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -58081,7 +59776,7 @@ __decorate([
58081
59776
  ], InvalidState.prototype, "stateType", null);
58082
59777
  exports.InvalidState = InvalidState;
58083
59778
 
58084
- },{"../Decorators":265,"./ATNStateType":305,"./BasicState":311}],322:[function(require,module,exports){
59779
+ },{"../Decorators":267,"./ATNStateType":307,"./BasicState":313}],324:[function(require,module,exports){
58085
59780
  "use strict";
58086
59781
  /*!
58087
59782
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -58303,7 +59998,7 @@ LL1Analyzer = __decorate([
58303
59998
  ], LL1Analyzer);
58304
59999
  exports.LL1Analyzer = LL1Analyzer;
58305
60000
 
58306
- },{"../Decorators":265,"../Token":290,"../misc/Array2DHashSet":369,"../misc/BitSet":372,"../misc/IntervalSet":378,"../misc/ObjectEqualityComparator":381,"./ATNConfig":299,"./AbstractPredicateTransition":306,"./NotSetTransition":336,"./PredictionContext":345,"./RuleStopState":351,"./RuleTransition":352,"./WildcardTransition":361}],323:[function(require,module,exports){
60001
+ },{"../Decorators":267,"../Token":292,"../misc/Array2DHashSet":371,"../misc/BitSet":374,"../misc/IntervalSet":380,"../misc/ObjectEqualityComparator":383,"./ATNConfig":301,"./AbstractPredicateTransition":308,"./NotSetTransition":338,"./PredictionContext":347,"./RuleStopState":353,"./RuleTransition":354,"./WildcardTransition":363}],325:[function(require,module,exports){
58307
60002
  "use strict";
58308
60003
  /*!
58309
60004
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -59020,7 +60715,7 @@ exports.LexerATNSimulator = LexerATNSimulator;
59020
60715
  })(LexerATNSimulator = exports.LexerATNSimulator || (exports.LexerATNSimulator = {}));
59021
60716
  exports.LexerATNSimulator = LexerATNSimulator;
59022
60717
 
59023
- },{"../Decorators":265,"../IntStream":271,"../Lexer":273,"../LexerNoViableAltException":275,"../Token":290,"../dfa/AcceptStateInfo":362,"../dfa/DFAState":365,"../misc/Interval":377,"./ATN":298,"./ATNConfig":299,"./ATNConfigSet":300,"./ATNSimulator":303,"./LexerActionExecutor":324,"./OrderedATNConfigSet":337,"./PredictionContext":345,"./RuleStopState":351,"assert":408}],324:[function(require,module,exports){
60718
+ },{"../Decorators":267,"../IntStream":273,"../Lexer":275,"../LexerNoViableAltException":277,"../Token":292,"../dfa/AcceptStateInfo":364,"../dfa/DFAState":367,"../misc/Interval":379,"./ATN":300,"./ATNConfig":301,"./ATNConfigSet":302,"./ATNSimulator":305,"./LexerActionExecutor":326,"./OrderedATNConfigSet":339,"./PredictionContext":347,"./RuleStopState":353,"assert":410}],326:[function(require,module,exports){
59024
60719
  "use strict";
59025
60720
  /*!
59026
60721
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -59221,7 +60916,7 @@ LexerActionExecutor = __decorate([
59221
60916
  ], LexerActionExecutor);
59222
60917
  exports.LexerActionExecutor = LexerActionExecutor;
59223
60918
 
59224
- },{"../Decorators":265,"../misc/ArrayEqualityComparator":370,"../misc/MurmurHash":380,"./LexerIndexedCustomAction":327}],325:[function(require,module,exports){
60919
+ },{"../Decorators":267,"../misc/ArrayEqualityComparator":372,"../misc/MurmurHash":382,"./LexerIndexedCustomAction":329}],327:[function(require,module,exports){
59225
60920
  "use strict";
59226
60921
  /*!
59227
60922
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -59326,7 +61021,7 @@ __decorate([
59326
61021
  ], LexerChannelAction.prototype, "toString", null);
59327
61022
  exports.LexerChannelAction = LexerChannelAction;
59328
61023
 
59329
- },{"../Decorators":265,"../misc/MurmurHash":380}],326:[function(require,module,exports){
61024
+ },{"../Decorators":267,"../misc/MurmurHash":382}],328:[function(require,module,exports){
59330
61025
  "use strict";
59331
61026
  /*!
59332
61027
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -59455,7 +61150,7 @@ __decorate([
59455
61150
  ], LexerCustomAction.prototype, "equals", null);
59456
61151
  exports.LexerCustomAction = LexerCustomAction;
59457
61152
 
59458
- },{"../Decorators":265,"../misc/MurmurHash":380}],327:[function(require,module,exports){
61153
+ },{"../Decorators":267,"../misc/MurmurHash":382}],329:[function(require,module,exports){
59459
61154
  "use strict";
59460
61155
  /*!
59461
61156
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -59590,7 +61285,7 @@ LexerIndexedCustomAction = __decorate([
59590
61285
  ], LexerIndexedCustomAction);
59591
61286
  exports.LexerIndexedCustomAction = LexerIndexedCustomAction;
59592
61287
 
59593
- },{"../Decorators":265,"../misc/MurmurHash":380}],328:[function(require,module,exports){
61288
+ },{"../Decorators":267,"../misc/MurmurHash":382}],330:[function(require,module,exports){
59594
61289
  "use strict";
59595
61290
  /*!
59596
61291
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -59695,7 +61390,7 @@ __decorate([
59695
61390
  ], LexerModeAction.prototype, "toString", null);
59696
61391
  exports.LexerModeAction = LexerModeAction;
59697
61392
 
59698
- },{"../Decorators":265,"../misc/MurmurHash":380}],329:[function(require,module,exports){
61393
+ },{"../Decorators":267,"../misc/MurmurHash":382}],331:[function(require,module,exports){
59699
61394
  "use strict";
59700
61395
  /*!
59701
61396
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -59791,7 +61486,7 @@ exports.LexerMoreAction = LexerMoreAction;
59791
61486
  LexerMoreAction.INSTANCE = new LexerMoreAction();
59792
61487
  })(LexerMoreAction = exports.LexerMoreAction || (exports.LexerMoreAction = {}));
59793
61488
 
59794
- },{"../Decorators":265,"../misc/MurmurHash":380}],330:[function(require,module,exports){
61489
+ },{"../Decorators":267,"../misc/MurmurHash":382}],332:[function(require,module,exports){
59795
61490
  "use strict";
59796
61491
  /*!
59797
61492
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -59887,7 +61582,7 @@ exports.LexerPopModeAction = LexerPopModeAction;
59887
61582
  LexerPopModeAction.INSTANCE = new LexerPopModeAction();
59888
61583
  })(LexerPopModeAction = exports.LexerPopModeAction || (exports.LexerPopModeAction = {}));
59889
61584
 
59890
- },{"../Decorators":265,"../misc/MurmurHash":380}],331:[function(require,module,exports){
61585
+ },{"../Decorators":267,"../misc/MurmurHash":382}],333:[function(require,module,exports){
59891
61586
  "use strict";
59892
61587
  /*!
59893
61588
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -59992,7 +61687,7 @@ __decorate([
59992
61687
  ], LexerPushModeAction.prototype, "toString", null);
59993
61688
  exports.LexerPushModeAction = LexerPushModeAction;
59994
61689
 
59995
- },{"../Decorators":265,"../misc/MurmurHash":380}],332:[function(require,module,exports){
61690
+ },{"../Decorators":267,"../misc/MurmurHash":382}],334:[function(require,module,exports){
59996
61691
  "use strict";
59997
61692
  /*!
59998
61693
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -60088,7 +61783,7 @@ exports.LexerSkipAction = LexerSkipAction;
60088
61783
  LexerSkipAction.INSTANCE = new LexerSkipAction();
60089
61784
  })(LexerSkipAction = exports.LexerSkipAction || (exports.LexerSkipAction = {}));
60090
61785
 
60091
- },{"../Decorators":265,"../misc/MurmurHash":380}],333:[function(require,module,exports){
61786
+ },{"../Decorators":267,"../misc/MurmurHash":382}],335:[function(require,module,exports){
60092
61787
  "use strict";
60093
61788
  /*!
60094
61789
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -60192,7 +61887,7 @@ __decorate([
60192
61887
  ], LexerTypeAction.prototype, "toString", null);
60193
61888
  exports.LexerTypeAction = LexerTypeAction;
60194
61889
 
60195
- },{"../Decorators":265,"../misc/MurmurHash":380}],334:[function(require,module,exports){
61890
+ },{"../Decorators":267,"../misc/MurmurHash":382}],336:[function(require,module,exports){
60196
61891
  "use strict";
60197
61892
  /*!
60198
61893
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -60244,7 +61939,7 @@ LookaheadEventInfo = __decorate([
60244
61939
  ], LookaheadEventInfo);
60245
61940
  exports.LookaheadEventInfo = LookaheadEventInfo;
60246
61941
 
60247
- },{"../Decorators":265,"./DecisionEventInfo":316}],335:[function(require,module,exports){
61942
+ },{"../Decorators":267,"./DecisionEventInfo":318}],337:[function(require,module,exports){
60248
61943
  "use strict";
60249
61944
  /*!
60250
61945
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -60273,7 +61968,7 @@ __decorate([
60273
61968
  ], LoopEndState.prototype, "stateType", null);
60274
61969
  exports.LoopEndState = LoopEndState;
60275
61970
 
60276
- },{"../Decorators":265,"./ATNState":304,"./ATNStateType":305}],336:[function(require,module,exports){
61971
+ },{"../Decorators":267,"./ATNState":306,"./ATNStateType":307}],338:[function(require,module,exports){
60277
61972
  "use strict";
60278
61973
  /*!
60279
61974
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -60322,7 +62017,7 @@ NotSetTransition = __decorate([
60322
62017
  ], NotSetTransition);
60323
62018
  exports.NotSetTransition = NotSetTransition;
60324
62019
 
60325
- },{"../Decorators":265,"./SetTransition":354}],337:[function(require,module,exports){
62020
+ },{"../Decorators":267,"./SetTransition":356}],339:[function(require,module,exports){
60326
62021
  "use strict";
60327
62022
  /*!
60328
62023
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -60377,7 +62072,7 @@ __decorate([
60377
62072
  ], OrderedATNConfigSet.prototype, "canMerge", null);
60378
62073
  exports.OrderedATNConfigSet = OrderedATNConfigSet;
60379
62074
 
60380
- },{"../Decorators":265,"./ATNConfigSet":300}],338:[function(require,module,exports){
62075
+ },{"../Decorators":267,"./ATNConfigSet":302}],340:[function(require,module,exports){
60381
62076
  "use strict";
60382
62077
  /*!
60383
62078
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -60539,7 +62234,7 @@ ParseInfo = __decorate([
60539
62234
  ], ParseInfo);
60540
62235
  exports.ParseInfo = ParseInfo;
60541
62236
 
60542
- },{"../Decorators":265}],339:[function(require,module,exports){
62237
+ },{"../Decorators":267}],341:[function(require,module,exports){
60543
62238
  "use strict";
60544
62239
  /*!
60545
62240
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -62812,7 +64507,7 @@ ParserATNSimulator = __decorate([
62812
64507
  ], ParserATNSimulator);
62813
64508
  exports.ParserATNSimulator = ParserATNSimulator;
62814
64509
 
62815
- },{"../Decorators":265,"../IntStream":271,"../NoViableAltException":277,"../ParserRuleContext":281,"../Token":290,"../VocabularyImpl":296,"../dfa/AcceptStateInfo":362,"../dfa/DFAState":365,"../misc/Array2DHashSet":369,"../misc/Arrays":371,"../misc/BitSet":372,"../misc/IntegerList":375,"../misc/Interval":377,"../misc/ObjectEqualityComparator":381,"./ATN":298,"./ATNConfig":299,"./ATNConfigSet":300,"./ATNSimulator":303,"./ATNStateType":305,"./ActionTransition":307,"./AtomTransition":309,"./ConflictInfo":314,"./DecisionState":318,"./NotSetTransition":336,"./PredictionContext":345,"./PredictionContextCache":346,"./PredictionMode":347,"./RuleStopState":351,"./RuleTransition":352,"./SemanticContext":353,"./SetTransition":354,"./SimulatorState":355,"assert":408}],340:[function(require,module,exports){
64510
+ },{"../Decorators":267,"../IntStream":273,"../NoViableAltException":279,"../ParserRuleContext":283,"../Token":292,"../VocabularyImpl":298,"../dfa/AcceptStateInfo":364,"../dfa/DFAState":367,"../misc/Array2DHashSet":371,"../misc/Arrays":373,"../misc/BitSet":374,"../misc/IntegerList":377,"../misc/Interval":379,"../misc/ObjectEqualityComparator":383,"./ATN":300,"./ATNConfig":301,"./ATNConfigSet":302,"./ATNSimulator":305,"./ATNStateType":307,"./ActionTransition":309,"./AtomTransition":311,"./ConflictInfo":316,"./DecisionState":320,"./NotSetTransition":338,"./PredictionContext":347,"./PredictionContextCache":348,"./PredictionMode":349,"./RuleStopState":353,"./RuleTransition":354,"./SemanticContext":355,"./SetTransition":356,"./SimulatorState":357,"assert":410}],342:[function(require,module,exports){
62816
64511
  "use strict";
62817
64512
  /*!
62818
64513
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -62845,7 +64540,7 @@ __decorate([
62845
64540
  ], PlusBlockStartState.prototype, "stateType", null);
62846
64541
  exports.PlusBlockStartState = PlusBlockStartState;
62847
64542
 
62848
- },{"../Decorators":265,"./ATNStateType":305,"./BlockStartState":313}],341:[function(require,module,exports){
64543
+ },{"../Decorators":267,"./ATNStateType":307,"./BlockStartState":315}],343:[function(require,module,exports){
62849
64544
  "use strict";
62850
64545
  /*!
62851
64546
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -62876,7 +64571,7 @@ __decorate([
62876
64571
  ], PlusLoopbackState.prototype, "stateType", null);
62877
64572
  exports.PlusLoopbackState = PlusLoopbackState;
62878
64573
 
62879
- },{"../Decorators":265,"./ATNStateType":305,"./DecisionState":318}],342:[function(require,module,exports){
64574
+ },{"../Decorators":267,"./ATNStateType":307,"./DecisionState":320}],344:[function(require,module,exports){
62880
64575
  "use strict";
62881
64576
  /*!
62882
64577
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -62939,7 +64634,7 @@ PrecedencePredicateTransition = __decorate([
62939
64634
  ], PrecedencePredicateTransition);
62940
64635
  exports.PrecedencePredicateTransition = PrecedencePredicateTransition;
62941
64636
 
62942
- },{"../Decorators":265,"./AbstractPredicateTransition":306,"./SemanticContext":353}],343:[function(require,module,exports){
64637
+ },{"../Decorators":267,"./AbstractPredicateTransition":308,"./SemanticContext":355}],345:[function(require,module,exports){
62943
64638
  "use strict";
62944
64639
  /*!
62945
64640
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -63002,7 +64697,7 @@ PredicateEvalInfo = __decorate([
63002
64697
  ], PredicateEvalInfo);
63003
64698
  exports.PredicateEvalInfo = PredicateEvalInfo;
63004
64699
 
63005
- },{"../Decorators":265,"./DecisionEventInfo":316}],344:[function(require,module,exports){
64700
+ },{"../Decorators":267,"./DecisionEventInfo":318}],346:[function(require,module,exports){
63006
64701
  "use strict";
63007
64702
  /*!
63008
64703
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -63068,7 +64763,7 @@ PredicateTransition = __decorate([
63068
64763
  ], PredicateTransition);
63069
64764
  exports.PredicateTransition = PredicateTransition;
63070
64765
 
63071
- },{"../Decorators":265,"./AbstractPredicateTransition":306,"./SemanticContext":353}],345:[function(require,module,exports){
64766
+ },{"../Decorators":267,"./AbstractPredicateTransition":308,"./SemanticContext":355}],347:[function(require,module,exports){
63072
64767
  "use strict";
63073
64768
  /*!
63074
64769
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -63759,7 +65454,7 @@ exports.SingletonPredictionContext = SingletonPredictionContext;
63759
65454
  PredictionContext.IdentityEqualityComparator = IdentityEqualityComparator;
63760
65455
  })(PredictionContext = exports.PredictionContext || (exports.PredictionContext = {}));
63761
65456
 
63762
- },{"../Decorators":265,"../misc/Array2DHashMap":368,"../misc/Array2DHashSet":369,"../misc/Arrays":371,"../misc/MurmurHash":380,"./PredictionContextCache":346,"assert":408}],346:[function(require,module,exports){
65457
+ },{"../Decorators":267,"../misc/Array2DHashMap":370,"../misc/Array2DHashSet":371,"../misc/Arrays":373,"../misc/MurmurHash":382,"./PredictionContextCache":348,"assert":410}],348:[function(require,module,exports){
63763
65458
  "use strict";
63764
65459
  /*!
63765
65460
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -63900,7 +65595,7 @@ PredictionContextCache.UNCACHED = new PredictionContextCache(false);
63900
65595
  PredictionContextCache.IdentityCommutativePredictionContextOperands = IdentityCommutativePredictionContextOperands;
63901
65596
  })(PredictionContextCache = exports.PredictionContextCache || (exports.PredictionContextCache = {}));
63902
65597
 
63903
- },{"../Decorators":265,"../misc/Array2DHashMap":368,"../misc/ObjectEqualityComparator":381,"./PredictionContext":345,"assert":408}],347:[function(require,module,exports){
65598
+ },{"../Decorators":267,"../misc/Array2DHashMap":370,"../misc/ObjectEqualityComparator":383,"./PredictionContext":347,"assert":410}],349:[function(require,module,exports){
63904
65599
  "use strict";
63905
65600
  /*!
63906
65601
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -64061,7 +65756,7 @@ var PredictionMode;
64061
65756
  PredictionMode.allConfigsInRuleStopStates = allConfigsInRuleStopStates;
64062
65757
  })(PredictionMode = exports.PredictionMode || (exports.PredictionMode = {}));
64063
65758
 
64064
- },{"../Decorators":265,"../misc/Array2DHashMap":368,"../misc/MurmurHash":380,"./RuleStopState":351}],348:[function(require,module,exports){
65759
+ },{"../Decorators":267,"../misc/Array2DHashMap":370,"../misc/MurmurHash":382,"./RuleStopState":353}],350:[function(require,module,exports){
64065
65760
  (function (process){(function (){
64066
65761
  "use strict";
64067
65762
  /*!
@@ -64330,7 +66025,7 @@ __decorate([
64330
66025
  exports.ProfilingATNSimulator = ProfilingATNSimulator;
64331
66026
 
64332
66027
  }).call(this)}).call(this,require('_process'))
64333
- },{"../Decorators":265,"./ATN":298,"./ATNSimulator":303,"./AmbiguityInfo":308,"./ContextSensitivityInfo":315,"./DecisionInfo":317,"./ErrorInfo":320,"./LookaheadEventInfo":334,"./ParserATNSimulator":339,"./PredicateEvalInfo":343,"./SemanticContext":353,"./SimulatorState":355,"_process":467}],349:[function(require,module,exports){
66028
+ },{"../Decorators":267,"./ATN":300,"./ATNSimulator":305,"./AmbiguityInfo":310,"./ContextSensitivityInfo":317,"./DecisionInfo":319,"./ErrorInfo":322,"./LookaheadEventInfo":336,"./ParserATNSimulator":341,"./PredicateEvalInfo":345,"./SemanticContext":355,"./SimulatorState":357,"_process":469}],351:[function(require,module,exports){
64334
66029
  "use strict";
64335
66030
  /*!
64336
66031
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -64388,7 +66083,7 @@ RangeTransition = __decorate([
64388
66083
  ], RangeTransition);
64389
66084
  exports.RangeTransition = RangeTransition;
64390
66085
 
64391
- },{"../Decorators":265,"../misc/IntervalSet":378,"./Transition":360}],350:[function(require,module,exports){
66086
+ },{"../Decorators":267,"../misc/IntervalSet":380,"./Transition":362}],352:[function(require,module,exports){
64392
66087
  "use strict";
64393
66088
  /*!
64394
66089
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -64421,7 +66116,7 @@ __decorate([
64421
66116
  ], RuleStartState.prototype, "stateType", null);
64422
66117
  exports.RuleStartState = RuleStartState;
64423
66118
 
64424
- },{"../Decorators":265,"./ATNState":304,"./ATNStateType":305}],351:[function(require,module,exports){
66119
+ },{"../Decorators":267,"./ATNState":306,"./ATNStateType":307}],353:[function(require,module,exports){
64425
66120
  "use strict";
64426
66121
  /*!
64427
66122
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -64460,7 +66155,7 @@ __decorate([
64460
66155
  ], RuleStopState.prototype, "stateType", null);
64461
66156
  exports.RuleStopState = RuleStopState;
64462
66157
 
64463
- },{"../Decorators":265,"./ATNState":304,"./ATNStateType":305}],352:[function(require,module,exports){
66158
+ },{"../Decorators":267,"./ATNState":306,"./ATNStateType":307}],354:[function(require,module,exports){
64464
66159
  "use strict";
64465
66160
  /*!
64466
66161
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -64516,7 +66211,7 @@ RuleTransition = __decorate([
64516
66211
  ], RuleTransition);
64517
66212
  exports.RuleTransition = RuleTransition;
64518
66213
 
64519
- },{"../Decorators":265,"./Transition":360}],353:[function(require,module,exports){
66214
+ },{"../Decorators":267,"./Transition":362}],355:[function(require,module,exports){
64520
66215
  "use strict";
64521
66216
  /*!
64522
66217
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -64996,7 +66691,7 @@ exports.SemanticContext = SemanticContext;
64996
66691
  SemanticContext.OR = OR;
64997
66692
  })(SemanticContext = exports.SemanticContext || (exports.SemanticContext = {}));
64998
66693
 
64999
- },{"../Decorators":265,"../misc/Array2DHashSet":369,"../misc/ArrayEqualityComparator":370,"../misc/MurmurHash":380,"../misc/ObjectEqualityComparator":381,"../misc/Utils":384}],354:[function(require,module,exports){
66694
+ },{"../Decorators":267,"../misc/Array2DHashSet":371,"../misc/ArrayEqualityComparator":372,"../misc/MurmurHash":382,"../misc/ObjectEqualityComparator":383,"../misc/Utils":386}],356:[function(require,module,exports){
65000
66695
  "use strict";
65001
66696
  /*!
65002
66697
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -65062,7 +66757,7 @@ SetTransition = __decorate([
65062
66757
  ], SetTransition);
65063
66758
  exports.SetTransition = SetTransition;
65064
66759
 
65065
- },{"../Decorators":265,"../Token":290,"../misc/IntervalSet":378,"./Transition":360}],355:[function(require,module,exports){
66760
+ },{"../Decorators":267,"../Token":292,"../misc/IntervalSet":380,"./Transition":362}],357:[function(require,module,exports){
65066
66761
  "use strict";
65067
66762
  /*!
65068
66763
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -65098,7 +66793,7 @@ SimulatorState = __decorate([
65098
66793
  ], SimulatorState);
65099
66794
  exports.SimulatorState = SimulatorState;
65100
66795
 
65101
- },{"../Decorators":265,"../ParserRuleContext":281}],356:[function(require,module,exports){
66796
+ },{"../Decorators":267,"../ParserRuleContext":283}],358:[function(require,module,exports){
65102
66797
  "use strict";
65103
66798
  /*!
65104
66799
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -65126,7 +66821,7 @@ __decorate([
65126
66821
  ], StarBlockStartState.prototype, "stateType", null);
65127
66822
  exports.StarBlockStartState = StarBlockStartState;
65128
66823
 
65129
- },{"../Decorators":265,"./ATNStateType":305,"./BlockStartState":313}],357:[function(require,module,exports){
66824
+ },{"../Decorators":267,"./ATNStateType":307,"./BlockStartState":315}],359:[function(require,module,exports){
65130
66825
  "use strict";
65131
66826
  /*!
65132
66827
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -65183,7 +66878,7 @@ __decorate([
65183
66878
  ], StarLoopEntryState.prototype, "stateType", null);
65184
66879
  exports.StarLoopEntryState = StarLoopEntryState;
65185
66880
 
65186
- },{"../Decorators":265,"../misc/BitSet":372,"./ATNStateType":305,"./DecisionState":318}],358:[function(require,module,exports){
66881
+ },{"../Decorators":267,"../misc/BitSet":374,"./ATNStateType":307,"./DecisionState":320}],360:[function(require,module,exports){
65187
66882
  "use strict";
65188
66883
  /*!
65189
66884
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -65214,7 +66909,7 @@ __decorate([
65214
66909
  ], StarLoopbackState.prototype, "stateType", null);
65215
66910
  exports.StarLoopbackState = StarLoopbackState;
65216
66911
 
65217
- },{"../Decorators":265,"./ATNState":304,"./ATNStateType":305}],359:[function(require,module,exports){
66912
+ },{"../Decorators":267,"./ATNState":306,"./ATNStateType":307}],361:[function(require,module,exports){
65218
66913
  "use strict";
65219
66914
  /*!
65220
66915
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -65243,7 +66938,7 @@ __decorate([
65243
66938
  ], TokensStartState.prototype, "stateType", null);
65244
66939
  exports.TokensStartState = TokensStartState;
65245
66940
 
65246
- },{"../Decorators":265,"./ATNStateType":305,"./DecisionState":318}],360:[function(require,module,exports){
66941
+ },{"../Decorators":267,"./ATNStateType":307,"./DecisionState":320}],362:[function(require,module,exports){
65247
66942
  "use strict";
65248
66943
  /*!
65249
66944
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -65317,7 +67012,7 @@ Transition = __decorate([
65317
67012
  ], Transition);
65318
67013
  exports.Transition = Transition;
65319
67014
 
65320
- },{"../Decorators":265}],361:[function(require,module,exports){
67015
+ },{"../Decorators":267}],363:[function(require,module,exports){
65321
67016
  "use strict";
65322
67017
  /*!
65323
67018
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -65365,7 +67060,7 @@ WildcardTransition = __decorate([
65365
67060
  ], WildcardTransition);
65366
67061
  exports.WildcardTransition = WildcardTransition;
65367
67062
 
65368
- },{"../Decorators":265,"./Transition":360}],362:[function(require,module,exports){
67063
+ },{"../Decorators":267,"./Transition":362}],364:[function(require,module,exports){
65369
67064
  "use strict";
65370
67065
  /*!
65371
67066
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -65407,7 +67102,7 @@ class AcceptStateInfo {
65407
67102
  }
65408
67103
  exports.AcceptStateInfo = AcceptStateInfo;
65409
67104
 
65410
- },{}],363:[function(require,module,exports){
67105
+ },{}],365:[function(require,module,exports){
65411
67106
  "use strict";
65412
67107
  /*!
65413
67108
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -65582,7 +67277,7 @@ DFA = __decorate([
65582
67277
  ], DFA);
65583
67278
  exports.DFA = DFA;
65584
67279
 
65585
- },{"../Decorators":265,"../VocabularyImpl":296,"../atn/ATNConfigSet":300,"../atn/StarLoopEntryState":357,"../misc/Array2DHashSet":369,"../misc/ObjectEqualityComparator":381,"./DFASerializer":364,"./DFAState":365,"./LexerDFASerializer":366}],364:[function(require,module,exports){
67280
+ },{"../Decorators":267,"../VocabularyImpl":298,"../atn/ATNConfigSet":302,"../atn/StarLoopEntryState":359,"../misc/Array2DHashSet":371,"../misc/ObjectEqualityComparator":383,"./DFASerializer":366,"./DFAState":367,"./LexerDFASerializer":368}],366:[function(require,module,exports){
65586
67281
  "use strict";
65587
67282
  /*!
65588
67283
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -65724,7 +67419,7 @@ __decorate([
65724
67419
  ], DFASerializer.prototype, "toString", null);
65725
67420
  exports.DFASerializer = DFASerializer;
65726
67421
 
65727
- },{"../Decorators":265,"../Recognizer":285,"../VocabularyImpl":296,"../atn/ATNSimulator":303,"../atn/PredictionContext":345}],365:[function(require,module,exports){
67422
+ },{"../Decorators":267,"../Recognizer":287,"../VocabularyImpl":298,"../atn/ATNSimulator":305,"../atn/PredictionContext":347}],367:[function(require,module,exports){
65728
67423
  "use strict";
65729
67424
  /*!
65730
67425
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -65955,7 +67650,7 @@ exports.DFAState = DFAState;
65955
67650
  DFAState.PredPrediction = PredPrediction;
65956
67651
  })(DFAState = exports.DFAState || (exports.DFAState = {}));
65957
67652
 
65958
- },{"../Decorators":265,"../atn/ATN":298,"../atn/PredictionContext":345,"../misc/BitSet":372,"../misc/MurmurHash":380,"assert":408}],366:[function(require,module,exports){
67653
+ },{"../Decorators":267,"../atn/ATN":300,"../atn/PredictionContext":347,"../misc/BitSet":374,"../misc/MurmurHash":382,"assert":410}],368:[function(require,module,exports){
65959
67654
  "use strict";
65960
67655
  /*!
65961
67656
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -65992,7 +67687,7 @@ LexerDFASerializer = __decorate([
65992
67687
  ], LexerDFASerializer);
65993
67688
  exports.LexerDFASerializer = LexerDFASerializer;
65994
67689
 
65995
- },{"../Decorators":265,"../VocabularyImpl":296,"./DFASerializer":364}],367:[function(require,module,exports){
67690
+ },{"../Decorators":267,"../VocabularyImpl":298,"./DFASerializer":366}],369:[function(require,module,exports){
65996
67691
  "use strict";
65997
67692
  /*!
65998
67693
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -66058,7 +67753,7 @@ __exportStar(require("./Vocabulary"), exports);
66058
67753
  __exportStar(require("./VocabularyImpl"), exports);
66059
67754
  __exportStar(require("./WritableToken"), exports);
66060
67755
 
66061
- },{"./ANTLRErrorListener":252,"./ANTLRErrorStrategy":253,"./ANTLRInputStream":254,"./BailErrorStrategy":255,"./BufferedTokenStream":256,"./CharStream":257,"./CharStreams":258,"./CodePointBuffer":259,"./CodePointCharStream":260,"./CommonToken":261,"./CommonTokenFactory":262,"./CommonTokenStream":263,"./ConsoleErrorListener":264,"./DefaultErrorStrategy":266,"./Dependents":267,"./DiagnosticErrorListener":268,"./FailedPredicateException":269,"./InputMismatchException":270,"./IntStream":271,"./InterpreterRuleContext":272,"./Lexer":273,"./LexerInterpreter":274,"./LexerNoViableAltException":275,"./ListTokenSource":276,"./NoViableAltException":277,"./Parser":278,"./ParserErrorListener":279,"./ParserInterpreter":280,"./ParserRuleContext":281,"./ProxyErrorListener":282,"./ProxyParserErrorListener":283,"./RecognitionException":284,"./Recognizer":285,"./RuleContext":286,"./RuleContextWithAltNum":287,"./RuleDependency":288,"./RuleVersion":289,"./Token":290,"./TokenFactory":291,"./TokenSource":292,"./TokenStream":293,"./TokenStreamRewriter":294,"./Vocabulary":295,"./VocabularyImpl":296,"./WritableToken":297}],368:[function(require,module,exports){
67756
+ },{"./ANTLRErrorListener":254,"./ANTLRErrorStrategy":255,"./ANTLRInputStream":256,"./BailErrorStrategy":257,"./BufferedTokenStream":258,"./CharStream":259,"./CharStreams":260,"./CodePointBuffer":261,"./CodePointCharStream":262,"./CommonToken":263,"./CommonTokenFactory":264,"./CommonTokenStream":265,"./ConsoleErrorListener":266,"./DefaultErrorStrategy":268,"./Dependents":269,"./DiagnosticErrorListener":270,"./FailedPredicateException":271,"./InputMismatchException":272,"./IntStream":273,"./InterpreterRuleContext":274,"./Lexer":275,"./LexerInterpreter":276,"./LexerNoViableAltException":277,"./ListTokenSource":278,"./NoViableAltException":279,"./Parser":280,"./ParserErrorListener":281,"./ParserInterpreter":282,"./ParserRuleContext":283,"./ProxyErrorListener":284,"./ProxyParserErrorListener":285,"./RecognitionException":286,"./Recognizer":287,"./RuleContext":288,"./RuleContextWithAltNum":289,"./RuleDependency":290,"./RuleVersion":291,"./Token":292,"./TokenFactory":293,"./TokenSource":294,"./TokenStream":295,"./TokenStreamRewriter":296,"./Vocabulary":297,"./VocabularyImpl":298,"./WritableToken":299}],370:[function(require,module,exports){
66062
67757
  "use strict";
66063
67758
  /*!
66064
67759
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -66141,7 +67836,7 @@ class Array2DHashMap {
66141
67836
  }
66142
67837
  exports.Array2DHashMap = Array2DHashMap;
66143
67838
 
66144
- },{"./Array2DHashSet":369}],369:[function(require,module,exports){
67839
+ },{"./Array2DHashSet":371}],371:[function(require,module,exports){
66145
67840
  "use strict";
66146
67841
  /*!
66147
67842
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -66508,7 +68203,7 @@ __decorate([
66508
68203
  ], Array2DHashSet.prototype, "createBuckets", null);
66509
68204
  exports.Array2DHashSet = Array2DHashSet;
66510
68205
 
66511
- },{"../Decorators":265,"./DefaultEqualityComparator":374,"./MurmurHash":380,"assert":408}],370:[function(require,module,exports){
68206
+ },{"../Decorators":267,"./DefaultEqualityComparator":376,"./MurmurHash":382,"assert":410}],372:[function(require,module,exports){
66512
68207
  "use strict";
66513
68208
  /*!
66514
68209
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -66580,7 +68275,7 @@ __decorate([
66580
68275
  ], ArrayEqualityComparator.prototype, "equals", null);
66581
68276
  exports.ArrayEqualityComparator = ArrayEqualityComparator;
66582
68277
 
66583
- },{"../Decorators":265,"./MurmurHash":380,"./ObjectEqualityComparator":381}],371:[function(require,module,exports){
68278
+ },{"../Decorators":267,"./MurmurHash":382,"./ObjectEqualityComparator":383}],373:[function(require,module,exports){
66584
68279
  "use strict";
66585
68280
  /*!
66586
68281
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -66650,7 +68345,7 @@ var Arrays;
66650
68345
  Arrays.toString = toString;
66651
68346
  })(Arrays = exports.Arrays || (exports.Arrays = {}));
66652
68347
 
66653
- },{}],372:[function(require,module,exports){
68348
+ },{}],374:[function(require,module,exports){
66654
68349
  "use strict";
66655
68350
  /*!
66656
68351
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -67322,7 +69017,7 @@ class BitSetIterator {
67322
69017
  [Symbol.iterator]() { return this; }
67323
69018
  }
67324
69019
 
67325
- },{"./MurmurHash":380,"util":473}],373:[function(require,module,exports){
69020
+ },{"./MurmurHash":382,"util":475}],375:[function(require,module,exports){
67326
69021
  "use strict";
67327
69022
  /*!
67328
69023
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -67343,7 +69038,7 @@ function isSupplementaryCodePoint(ch) {
67343
69038
  }
67344
69039
  exports.isSupplementaryCodePoint = isSupplementaryCodePoint;
67345
69040
 
67346
- },{}],374:[function(require,module,exports){
69041
+ },{}],376:[function(require,module,exports){
67347
69042
  "use strict";
67348
69043
  /*!
67349
69044
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -67414,7 +69109,7 @@ __decorate([
67414
69109
  ], DefaultEqualityComparator.prototype, "equals", null);
67415
69110
  exports.DefaultEqualityComparator = DefaultEqualityComparator;
67416
69111
 
67417
- },{"../Decorators":265,"./MurmurHash":380,"./ObjectEqualityComparator":381}],375:[function(require,module,exports){
69112
+ },{"../Decorators":267,"./MurmurHash":382,"./ObjectEqualityComparator":383}],377:[function(require,module,exports){
67418
69113
  "use strict";
67419
69114
  /*!
67420
69115
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -67708,7 +69403,7 @@ __decorate([
67708
69403
  ], IntegerList.prototype, "toString", null);
67709
69404
  exports.IntegerList = IntegerList;
67710
69405
 
67711
- },{"../Decorators":265,"./Arrays":371}],376:[function(require,module,exports){
69406
+ },{"../Decorators":267,"./Arrays":373}],378:[function(require,module,exports){
67712
69407
  "use strict";
67713
69408
  /*!
67714
69409
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -67738,7 +69433,7 @@ class IntegerStack extends IntegerList_1.IntegerList {
67738
69433
  }
67739
69434
  exports.IntegerStack = IntegerStack;
67740
69435
 
67741
- },{"./IntegerList":375}],377:[function(require,module,exports){
69436
+ },{"./IntegerList":377}],379:[function(require,module,exports){
67742
69437
  "use strict";
67743
69438
  /*!
67744
69439
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -67881,7 +69576,7 @@ __decorate([
67881
69576
  ], Interval.prototype, "toString", null);
67882
69577
  exports.Interval = Interval;
67883
69578
 
67884
- },{"../Decorators":265}],378:[function(require,module,exports){
69579
+ },{"../Decorators":267}],380:[function(require,module,exports){
67885
69580
  "use strict";
67886
69581
  /*!
67887
69582
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -68527,7 +70222,7 @@ __decorate([
68527
70222
  ], IntervalSet, "subtract", null);
68528
70223
  exports.IntervalSet = IntervalSet;
68529
70224
 
68530
- },{"../Decorators":265,"../Lexer":273,"../Token":290,"./ArrayEqualityComparator":370,"./IntegerList":375,"./Interval":377,"./MurmurHash":380}],379:[function(require,module,exports){
70225
+ },{"../Decorators":267,"../Lexer":275,"../Token":292,"./ArrayEqualityComparator":372,"./IntegerList":377,"./Interval":379,"./MurmurHash":382}],381:[function(require,module,exports){
68531
70226
  "use strict";
68532
70227
  /*!
68533
70228
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -68560,7 +70255,7 @@ class MultiMap extends Map {
68560
70255
  }
68561
70256
  exports.MultiMap = MultiMap;
68562
70257
 
68563
- },{}],380:[function(require,module,exports){
70258
+ },{}],382:[function(require,module,exports){
68564
70259
  "use strict";
68565
70260
  /*!
68566
70261
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -68675,7 +70370,7 @@ var MurmurHash;
68675
70370
  }
68676
70371
  })(MurmurHash = exports.MurmurHash || (exports.MurmurHash = {}));
68677
70372
 
68678
- },{}],381:[function(require,module,exports){
70373
+ },{}],383:[function(require,module,exports){
68679
70374
  "use strict";
68680
70375
  /*!
68681
70376
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -68734,7 +70429,7 @@ __decorate([
68734
70429
  ], ObjectEqualityComparator.prototype, "equals", null);
68735
70430
  exports.ObjectEqualityComparator = ObjectEqualityComparator;
68736
70431
 
68737
- },{"../Decorators":265}],382:[function(require,module,exports){
70432
+ },{"../Decorators":267}],384:[function(require,module,exports){
68738
70433
  "use strict";
68739
70434
  /*!
68740
70435
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -68763,7 +70458,7 @@ class ParseCancellationException extends Error {
68763
70458
  }
68764
70459
  exports.ParseCancellationException = ParseCancellationException;
68765
70460
 
68766
- },{}],383:[function(require,module,exports){
70461
+ },{}],385:[function(require,module,exports){
68767
70462
  "use strict";
68768
70463
  /*!
68769
70464
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -68817,7 +70512,7 @@ class UUID {
68817
70512
  }
68818
70513
  exports.UUID = UUID;
68819
70514
 
68820
- },{"./MurmurHash":380}],384:[function(require,module,exports){
70515
+ },{"./MurmurHash":382}],386:[function(require,module,exports){
68821
70516
  "use strict";
68822
70517
  /*!
68823
70518
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -68992,7 +70687,7 @@ exports.toCharArray = toCharArray;
68992
70687
  // return s;
68993
70688
  // }
68994
70689
 
68995
- },{}],385:[function(require,module,exports){
70690
+ },{}],387:[function(require,module,exports){
68996
70691
  "use strict";
68997
70692
  /*!
68998
70693
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -69028,7 +70723,7 @@ __decorate([
69028
70723
  ], ErrorNode.prototype, "accept", null);
69029
70724
  exports.ErrorNode = ErrorNode;
69030
70725
 
69031
- },{"../Decorators":265,"./TerminalNode":388}],386:[function(require,module,exports){
70726
+ },{"../Decorators":267,"./TerminalNode":390}],388:[function(require,module,exports){
69032
70727
  "use strict";
69033
70728
  /*!
69034
70729
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -69133,7 +70828,7 @@ exports.ParseTreeWalker = ParseTreeWalker;
69133
70828
  ParseTreeWalker.DEFAULT = new ParseTreeWalker();
69134
70829
  })(ParseTreeWalker = exports.ParseTreeWalker || (exports.ParseTreeWalker = {}));
69135
70830
 
69136
- },{"./ErrorNode":385,"./RuleNode":387,"./TerminalNode":388}],387:[function(require,module,exports){
70831
+ },{"./ErrorNode":387,"./RuleNode":389,"./TerminalNode":390}],389:[function(require,module,exports){
69137
70832
  "use strict";
69138
70833
  /*!
69139
70834
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -69145,7 +70840,7 @@ class RuleNode {
69145
70840
  }
69146
70841
  exports.RuleNode = RuleNode;
69147
70842
 
69148
- },{}],388:[function(require,module,exports){
70843
+ },{}],390:[function(require,module,exports){
69149
70844
  "use strict";
69150
70845
  /*!
69151
70846
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -69237,7 +70932,7 @@ __decorate([
69237
70932
  ], TerminalNode.prototype, "toString", null);
69238
70933
  exports.TerminalNode = TerminalNode;
69239
70934
 
69240
- },{"../Decorators":265,"../Token":290,"../misc/Interval":377}],389:[function(require,module,exports){
70935
+ },{"../Decorators":267,"../Token":292,"../misc/Interval":379}],391:[function(require,module,exports){
69241
70936
  "use strict";
69242
70937
  /*!
69243
70938
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -69481,7 +71176,7 @@ __decorate([
69481
71176
  ], Trees, "getRootOfSubtreeEnclosingRegion", null);
69482
71177
  exports.Trees = Trees;
69483
71178
 
69484
- },{"../CommonToken":261,"../Decorators":265,"../Parser":278,"../ParserRuleContext":281,"../Token":290,"../atn/ATN":298,"../misc/Utils":384,"./ErrorNode":385,"./RuleNode":387,"./TerminalNode":388}],390:[function(require,module,exports){
71179
+ },{"../CommonToken":263,"../Decorators":267,"../Parser":280,"../ParserRuleContext":283,"../Token":292,"../atn/ATN":300,"../misc/Utils":386,"./ErrorNode":387,"./RuleNode":389,"./TerminalNode":390}],392:[function(require,module,exports){
69485
71180
  "use strict";
69486
71181
  /*!
69487
71182
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -69505,7 +71200,7 @@ class Chunk {
69505
71200
  }
69506
71201
  exports.Chunk = Chunk;
69507
71202
 
69508
- },{}],391:[function(require,module,exports){
71203
+ },{}],393:[function(require,module,exports){
69509
71204
  "use strict";
69510
71205
  /*!
69511
71206
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -69685,7 +71380,7 @@ ParseTreeMatch = __decorate([
69685
71380
  ], ParseTreeMatch);
69686
71381
  exports.ParseTreeMatch = ParseTreeMatch;
69687
71382
 
69688
- },{"../../Decorators":265}],392:[function(require,module,exports){
71383
+ },{"../../Decorators":267}],394:[function(require,module,exports){
69689
71384
  "use strict";
69690
71385
  /*!
69691
71386
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -69843,7 +71538,7 @@ ParseTreePattern = __decorate([
69843
71538
  ], ParseTreePattern);
69844
71539
  exports.ParseTreePattern = ParseTreePattern;
69845
71540
 
69846
- },{"../../Decorators":265,"../xpath/XPath":398}],393:[function(require,module,exports){
71541
+ },{"../../Decorators":267,"../xpath/XPath":400}],395:[function(require,module,exports){
69847
71542
  "use strict";
69848
71543
  /*!
69849
71544
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -70321,7 +72016,7 @@ exports.ParseTreePatternMatcher = ParseTreePatternMatcher;
70321
72016
  ParseTreePatternMatcher.StartRuleDoesNotConsumeFullPattern = StartRuleDoesNotConsumeFullPattern;
70322
72017
  })(ParseTreePatternMatcher = exports.ParseTreePatternMatcher || (exports.ParseTreePatternMatcher = {}));
70323
72018
 
70324
- },{"../../BailErrorStrategy":255,"../../CharStreams":258,"../../CommonTokenStream":263,"../../Decorators":265,"../../ListTokenSource":276,"../../ParserInterpreter":280,"../../ParserRuleContext":281,"../../RecognitionException":284,"../../Token":290,"../../misc/MultiMap":379,"../../misc/ParseCancellationException":382,"../RuleNode":387,"../TerminalNode":388,"./ParseTreeMatch":391,"./ParseTreePattern":392,"./RuleTagToken":394,"./TagChunk":395,"./TextChunk":396,"./TokenTagToken":397}],394:[function(require,module,exports){
72019
+ },{"../../BailErrorStrategy":257,"../../CharStreams":260,"../../CommonTokenStream":265,"../../Decorators":267,"../../ListTokenSource":278,"../../ParserInterpreter":282,"../../ParserRuleContext":283,"../../RecognitionException":286,"../../Token":292,"../../misc/MultiMap":381,"../../misc/ParseCancellationException":384,"../RuleNode":389,"../TerminalNode":390,"./ParseTreeMatch":393,"./ParseTreePattern":394,"./RuleTagToken":396,"./TagChunk":397,"./TextChunk":398,"./TokenTagToken":399}],396:[function(require,module,exports){
70325
72020
  "use strict";
70326
72021
  /*!
70327
72022
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -70519,7 +72214,7 @@ RuleTagToken = __decorate([
70519
72214
  ], RuleTagToken);
70520
72215
  exports.RuleTagToken = RuleTagToken;
70521
72216
 
70522
- },{"../../Decorators":265,"../../Token":290}],395:[function(require,module,exports){
72217
+ },{"../../Decorators":267,"../../Token":292}],397:[function(require,module,exports){
70523
72218
  "use strict";
70524
72219
  /*!
70525
72220
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -70606,7 +72301,7 @@ __decorate([
70606
72301
  ], TagChunk.prototype, "toString", null);
70607
72302
  exports.TagChunk = TagChunk;
70608
72303
 
70609
- },{"../../Decorators":265,"./Chunk":390}],396:[function(require,module,exports){
72304
+ },{"../../Decorators":267,"./Chunk":392}],398:[function(require,module,exports){
70610
72305
  "use strict";
70611
72306
  /*!
70612
72307
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -70676,7 +72371,7 @@ TextChunk = __decorate([
70676
72371
  ], TextChunk);
70677
72372
  exports.TextChunk = TextChunk;
70678
72373
 
70679
- },{"../../Decorators":265,"./Chunk":390}],397:[function(require,module,exports){
72374
+ },{"../../Decorators":267,"./Chunk":392}],399:[function(require,module,exports){
70680
72375
  "use strict";
70681
72376
  /*!
70682
72377
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -70771,7 +72466,7 @@ TokenTagToken = __decorate([
70771
72466
  ], TokenTagToken);
70772
72467
  exports.TokenTagToken = TokenTagToken;
70773
72468
 
70774
- },{"../../CommonToken":261,"../../Decorators":265}],398:[function(require,module,exports){
72469
+ },{"../../CommonToken":263,"../../Decorators":267}],400:[function(require,module,exports){
70775
72470
  "use strict";
70776
72471
  /*!
70777
72472
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -70968,7 +72663,7 @@ exports.XPath = XPath;
70968
72663
  XPath.WILDCARD = "*"; // word not operator/separator
70969
72664
  XPath.NOT = "!"; // word for invert operator
70970
72665
 
70971
- },{"../../CharStreams":258,"../../CommonTokenStream":263,"../../LexerNoViableAltException":275,"../../ParserRuleContext":281,"../../Token":290,"./XPathLexer":400,"./XPathLexerErrorListener":401,"./XPathRuleAnywhereElement":402,"./XPathRuleElement":403,"./XPathTokenAnywhereElement":404,"./XPathTokenElement":405,"./XPathWildcardAnywhereElement":406,"./XPathWildcardElement":407}],399:[function(require,module,exports){
72666
+ },{"../../CharStreams":260,"../../CommonTokenStream":265,"../../LexerNoViableAltException":277,"../../ParserRuleContext":283,"../../Token":292,"./XPathLexer":402,"./XPathLexerErrorListener":403,"./XPathRuleAnywhereElement":404,"./XPathRuleElement":405,"./XPathTokenAnywhereElement":406,"./XPathTokenElement":407,"./XPathWildcardAnywhereElement":408,"./XPathWildcardElement":409}],401:[function(require,module,exports){
70972
72667
  "use strict";
70973
72668
  /*!
70974
72669
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -71003,7 +72698,7 @@ __decorate([
71003
72698
  ], XPathElement.prototype, "toString", null);
71004
72699
  exports.XPathElement = XPathElement;
71005
72700
 
71006
- },{"../../Decorators":265}],400:[function(require,module,exports){
72701
+ },{"../../Decorators":267}],402:[function(require,module,exports){
71007
72702
  "use strict";
71008
72703
  // Generated from XPathLexer.g4 by ANTLR 4.9.0-SNAPSHOT
71009
72704
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -71478,7 +73173,7 @@ XPathLexer._serializedATN = Utils.join([
71478
73173
  XPathLexer._serializedATNSegment1,
71479
73174
  ], "");
71480
73175
 
71481
- },{"../../Lexer":273,"../../VocabularyImpl":296,"../../atn/ATNDeserializer":302,"../../atn/LexerATNSimulator":323,"../../misc/Utils":384}],401:[function(require,module,exports){
73176
+ },{"../../Lexer":275,"../../VocabularyImpl":298,"../../atn/ATNDeserializer":304,"../../atn/LexerATNSimulator":325,"../../misc/Utils":386}],403:[function(require,module,exports){
71482
73177
  "use strict";
71483
73178
  /*!
71484
73179
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -71503,7 +73198,7 @@ __decorate([
71503
73198
  ], XPathLexerErrorListener.prototype, "syntaxError", null);
71504
73199
  exports.XPathLexerErrorListener = XPathLexerErrorListener;
71505
73200
 
71506
- },{"../../Decorators":265}],402:[function(require,module,exports){
73201
+ },{"../../Decorators":267}],404:[function(require,module,exports){
71507
73202
  "use strict";
71508
73203
  /*!
71509
73204
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -71537,7 +73232,7 @@ __decorate([
71537
73232
  ], XPathRuleAnywhereElement.prototype, "evaluate", null);
71538
73233
  exports.XPathRuleAnywhereElement = XPathRuleAnywhereElement;
71539
73234
 
71540
- },{"../../Decorators":265,"../Trees":389,"./XPathElement":399}],403:[function(require,module,exports){
73235
+ },{"../../Decorators":267,"../Trees":391,"./XPathElement":401}],405:[function(require,module,exports){
71541
73236
  "use strict";
71542
73237
  /*!
71543
73238
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -71580,7 +73275,7 @@ __decorate([
71580
73275
  ], XPathRuleElement.prototype, "evaluate", null);
71581
73276
  exports.XPathRuleElement = XPathRuleElement;
71582
73277
 
71583
- },{"../../Decorators":265,"../../ParserRuleContext":281,"../Trees":389,"./XPathElement":399}],404:[function(require,module,exports){
73278
+ },{"../../Decorators":267,"../../ParserRuleContext":283,"../Trees":391,"./XPathElement":401}],406:[function(require,module,exports){
71584
73279
  "use strict";
71585
73280
  /*!
71586
73281
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -71612,7 +73307,7 @@ __decorate([
71612
73307
  ], XPathTokenAnywhereElement.prototype, "evaluate", null);
71613
73308
  exports.XPathTokenAnywhereElement = XPathTokenAnywhereElement;
71614
73309
 
71615
- },{"../../Decorators":265,"../Trees":389,"./XPathElement":399}],405:[function(require,module,exports){
73310
+ },{"../../Decorators":267,"../Trees":391,"./XPathElement":401}],407:[function(require,module,exports){
71616
73311
  "use strict";
71617
73312
  /*!
71618
73313
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -71655,7 +73350,7 @@ __decorate([
71655
73350
  ], XPathTokenElement.prototype, "evaluate", null);
71656
73351
  exports.XPathTokenElement = XPathTokenElement;
71657
73352
 
71658
- },{"../../Decorators":265,"../TerminalNode":388,"../Trees":389,"./XPathElement":399}],406:[function(require,module,exports){
73353
+ },{"../../Decorators":267,"../TerminalNode":390,"../Trees":391,"./XPathElement":401}],408:[function(require,module,exports){
71659
73354
  "use strict";
71660
73355
  /*!
71661
73356
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -71691,7 +73386,7 @@ __decorate([
71691
73386
  ], XPathWildcardAnywhereElement.prototype, "evaluate", null);
71692
73387
  exports.XPathWildcardAnywhereElement = XPathWildcardAnywhereElement;
71693
73388
 
71694
- },{"../../Decorators":265,"../Trees":389,"./XPath":398,"./XPathElement":399}],407:[function(require,module,exports){
73389
+ },{"../../Decorators":267,"../Trees":391,"./XPath":400,"./XPathElement":401}],409:[function(require,module,exports){
71695
73390
  "use strict";
71696
73391
  /*!
71697
73392
  * Copyright 2016 The ANTLR Project. All rights reserved.
@@ -71731,7 +73426,7 @@ __decorate([
71731
73426
  ], XPathWildcardElement.prototype, "evaluate", null);
71732
73427
  exports.XPathWildcardElement = XPathWildcardElement;
71733
73428
 
71734
- },{"../../Decorators":265,"../Trees":389,"./XPath":398,"./XPathElement":399}],408:[function(require,module,exports){
73429
+ },{"../../Decorators":267,"../Trees":391,"./XPath":400,"./XPathElement":401}],410:[function(require,module,exports){
71735
73430
  (function (global){(function (){
71736
73431
  'use strict';
71737
73432
 
@@ -72241,7 +73936,7 @@ var objectKeys = Object.keys || function (obj) {
72241
73936
  };
72242
73937
 
72243
73938
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
72244
- },{"object.assign/polyfill":465,"util/":411}],409:[function(require,module,exports){
73939
+ },{"object.assign/polyfill":467,"util/":413}],411:[function(require,module,exports){
72245
73940
  if (typeof Object.create === 'function') {
72246
73941
  // implementation from standard node.js 'util' module
72247
73942
  module.exports = function inherits(ctor, superCtor) {
@@ -72266,14 +73961,14 @@ if (typeof Object.create === 'function') {
72266
73961
  }
72267
73962
  }
72268
73963
 
72269
- },{}],410:[function(require,module,exports){
73964
+ },{}],412:[function(require,module,exports){
72270
73965
  module.exports = function isBuffer(arg) {
72271
73966
  return arg && typeof arg === 'object'
72272
73967
  && typeof arg.copy === 'function'
72273
73968
  && typeof arg.fill === 'function'
72274
73969
  && typeof arg.readUInt8 === 'function';
72275
73970
  }
72276
- },{}],411:[function(require,module,exports){
73971
+ },{}],413:[function(require,module,exports){
72277
73972
  (function (process,global){(function (){
72278
73973
  // Copyright Joyent, Inc. and other Node contributors.
72279
73974
  //
@@ -72863,7 +74558,7 @@ function hasOwnProperty(obj, prop) {
72863
74558
  }
72864
74559
 
72865
74560
  }).call(this)}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
72866
- },{"./support/isBuffer":410,"_process":467,"inherits":409}],412:[function(require,module,exports){
74561
+ },{"./support/isBuffer":412,"_process":469,"inherits":411}],414:[function(require,module,exports){
72867
74562
  (function (global){(function (){
72868
74563
  'use strict';
72869
74564
 
@@ -72884,7 +74579,7 @@ module.exports = function availableTypedArrays() {
72884
74579
  };
72885
74580
 
72886
74581
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
72887
- },{"possible-typed-array-names":466}],413:[function(require,module,exports){
74582
+ },{"possible-typed-array-names":468}],415:[function(require,module,exports){
72888
74583
  (function (process,global){(function (){
72889
74584
  module.exports = process.hrtime || hrtime
72890
74585
 
@@ -72915,7 +74610,7 @@ function hrtime(previousTimestamp){
72915
74610
  return [seconds,nanoseconds]
72916
74611
  }
72917
74612
  }).call(this)}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
72918
- },{"_process":467}],414:[function(require,module,exports){
74613
+ },{"_process":469}],416:[function(require,module,exports){
72919
74614
  'use strict';
72920
74615
 
72921
74616
  var bind = require('function-bind');
@@ -72927,7 +74622,7 @@ var $reflectApply = require('./reflectApply');
72927
74622
  /** @type {import('./actualApply')} */
72928
74623
  module.exports = $reflectApply || bind.call($call, $apply);
72929
74624
 
72930
- },{"./functionApply":416,"./functionCall":417,"./reflectApply":419,"function-bind":435}],415:[function(require,module,exports){
74625
+ },{"./functionApply":418,"./functionCall":419,"./reflectApply":421,"function-bind":437}],417:[function(require,module,exports){
72931
74626
  'use strict';
72932
74627
 
72933
74628
  var bind = require('function-bind');
@@ -72939,19 +74634,19 @@ module.exports = function applyBind() {
72939
74634
  return actualApply(bind, $apply, arguments);
72940
74635
  };
72941
74636
 
72942
- },{"./actualApply":414,"./functionApply":416,"function-bind":435}],416:[function(require,module,exports){
74637
+ },{"./actualApply":416,"./functionApply":418,"function-bind":437}],418:[function(require,module,exports){
72943
74638
  'use strict';
72944
74639
 
72945
74640
  /** @type {import('./functionApply')} */
72946
74641
  module.exports = Function.prototype.apply;
72947
74642
 
72948
- },{}],417:[function(require,module,exports){
74643
+ },{}],419:[function(require,module,exports){
72949
74644
  'use strict';
72950
74645
 
72951
74646
  /** @type {import('./functionCall')} */
72952
74647
  module.exports = Function.prototype.call;
72953
74648
 
72954
- },{}],418:[function(require,module,exports){
74649
+ },{}],420:[function(require,module,exports){
72955
74650
  'use strict';
72956
74651
 
72957
74652
  var bind = require('function-bind');
@@ -72968,13 +74663,13 @@ module.exports = function callBindBasic(args) {
72968
74663
  return $actualApply(bind, $call, args);
72969
74664
  };
72970
74665
 
72971
- },{"./actualApply":414,"./functionCall":417,"es-errors/type":430,"function-bind":435}],419:[function(require,module,exports){
74666
+ },{"./actualApply":416,"./functionCall":419,"es-errors/type":432,"function-bind":437}],421:[function(require,module,exports){
72972
74667
  'use strict';
72973
74668
 
72974
74669
  /** @type {import('./reflectApply')} */
72975
74670
  module.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;
72976
74671
 
72977
- },{}],420:[function(require,module,exports){
74672
+ },{}],422:[function(require,module,exports){
72978
74673
  'use strict';
72979
74674
 
72980
74675
  var setFunctionLength = require('set-function-length');
@@ -73000,7 +74695,7 @@ if ($defineProperty) {
73000
74695
  module.exports.apply = applyBind;
73001
74696
  }
73002
74697
 
73003
- },{"call-bind-apply-helpers":418,"call-bind-apply-helpers/applyBind":415,"es-define-property":424,"set-function-length":469}],421:[function(require,module,exports){
74698
+ },{"call-bind-apply-helpers":420,"call-bind-apply-helpers/applyBind":417,"es-define-property":426,"set-function-length":471}],423:[function(require,module,exports){
73004
74699
  'use strict';
73005
74700
 
73006
74701
  var GetIntrinsic = require('get-intrinsic');
@@ -73021,7 +74716,7 @@ module.exports = function callBoundIntrinsic(name, allowMissing) {
73021
74716
  return intrinsic;
73022
74717
  };
73023
74718
 
73024
- },{"call-bind-apply-helpers":418,"get-intrinsic":436}],422:[function(require,module,exports){
74719
+ },{"call-bind-apply-helpers":420,"get-intrinsic":438}],424:[function(require,module,exports){
73025
74720
  'use strict';
73026
74721
 
73027
74722
  var $defineProperty = require('es-define-property');
@@ -73079,7 +74774,7 @@ module.exports = function defineDataProperty(
73079
74774
  }
73080
74775
  };
73081
74776
 
73082
- },{"es-define-property":424,"es-errors/syntax":429,"es-errors/type":430,"gopd":441}],423:[function(require,module,exports){
74777
+ },{"es-define-property":426,"es-errors/syntax":431,"es-errors/type":432,"gopd":443}],425:[function(require,module,exports){
73083
74778
  'use strict';
73084
74779
 
73085
74780
  var callBind = require('call-bind-apply-helpers');
@@ -73111,7 +74806,7 @@ module.exports = desc && typeof desc.get === 'function'
73111
74806
  }
73112
74807
  : false;
73113
74808
 
73114
- },{"call-bind-apply-helpers":418,"gopd":441}],424:[function(require,module,exports){
74809
+ },{"call-bind-apply-helpers":420,"gopd":443}],426:[function(require,module,exports){
73115
74810
  'use strict';
73116
74811
 
73117
74812
  /** @type {import('.')} */
@@ -73127,55 +74822,55 @@ if ($defineProperty) {
73127
74822
 
73128
74823
  module.exports = $defineProperty;
73129
74824
 
73130
- },{}],425:[function(require,module,exports){
74825
+ },{}],427:[function(require,module,exports){
73131
74826
  'use strict';
73132
74827
 
73133
74828
  /** @type {import('./eval')} */
73134
74829
  module.exports = EvalError;
73135
74830
 
73136
- },{}],426:[function(require,module,exports){
74831
+ },{}],428:[function(require,module,exports){
73137
74832
  'use strict';
73138
74833
 
73139
74834
  /** @type {import('.')} */
73140
74835
  module.exports = Error;
73141
74836
 
73142
- },{}],427:[function(require,module,exports){
74837
+ },{}],429:[function(require,module,exports){
73143
74838
  'use strict';
73144
74839
 
73145
74840
  /** @type {import('./range')} */
73146
74841
  module.exports = RangeError;
73147
74842
 
73148
- },{}],428:[function(require,module,exports){
74843
+ },{}],430:[function(require,module,exports){
73149
74844
  'use strict';
73150
74845
 
73151
74846
  /** @type {import('./ref')} */
73152
74847
  module.exports = ReferenceError;
73153
74848
 
73154
- },{}],429:[function(require,module,exports){
74849
+ },{}],431:[function(require,module,exports){
73155
74850
  'use strict';
73156
74851
 
73157
74852
  /** @type {import('./syntax')} */
73158
74853
  module.exports = SyntaxError;
73159
74854
 
73160
- },{}],430:[function(require,module,exports){
74855
+ },{}],432:[function(require,module,exports){
73161
74856
  'use strict';
73162
74857
 
73163
74858
  /** @type {import('./type')} */
73164
74859
  module.exports = TypeError;
73165
74860
 
73166
- },{}],431:[function(require,module,exports){
74861
+ },{}],433:[function(require,module,exports){
73167
74862
  'use strict';
73168
74863
 
73169
74864
  /** @type {import('./uri')} */
73170
74865
  module.exports = URIError;
73171
74866
 
73172
- },{}],432:[function(require,module,exports){
74867
+ },{}],434:[function(require,module,exports){
73173
74868
  'use strict';
73174
74869
 
73175
74870
  /** @type {import('.')} */
73176
74871
  module.exports = Object;
73177
74872
 
73178
- },{}],433:[function(require,module,exports){
74873
+ },{}],435:[function(require,module,exports){
73179
74874
  'use strict';
73180
74875
 
73181
74876
  var isCallable = require('is-callable');
@@ -73246,7 +74941,7 @@ module.exports = function forEach(list, iterator, thisArg) {
73246
74941
  }
73247
74942
  };
73248
74943
 
73249
- },{"is-callable":449}],434:[function(require,module,exports){
74944
+ },{"is-callable":451}],436:[function(require,module,exports){
73250
74945
  'use strict';
73251
74946
 
73252
74947
  /* eslint no-invalid-this: 1 */
@@ -73332,14 +75027,14 @@ module.exports = function bind(that) {
73332
75027
  return bound;
73333
75028
  };
73334
75029
 
73335
- },{}],435:[function(require,module,exports){
75030
+ },{}],437:[function(require,module,exports){
73336
75031
  'use strict';
73337
75032
 
73338
75033
  var implementation = require('./implementation');
73339
75034
 
73340
75035
  module.exports = Function.prototype.bind || implementation;
73341
75036
 
73342
- },{"./implementation":434}],436:[function(require,module,exports){
75037
+ },{"./implementation":436}],438:[function(require,module,exports){
73343
75038
  'use strict';
73344
75039
 
73345
75040
  var undefined;
@@ -73719,7 +75414,7 @@ module.exports = function GetIntrinsic(name, allowMissing) {
73719
75414
  return value;
73720
75415
  };
73721
75416
 
73722
- },{"call-bind-apply-helpers/functionApply":416,"call-bind-apply-helpers/functionCall":417,"es-define-property":424,"es-errors":426,"es-errors/eval":425,"es-errors/range":427,"es-errors/ref":428,"es-errors/syntax":429,"es-errors/type":430,"es-errors/uri":431,"es-object-atoms":432,"function-bind":435,"get-proto":439,"get-proto/Object.getPrototypeOf":437,"get-proto/Reflect.getPrototypeOf":438,"gopd":441,"has-symbols":443,"hasown":446,"math-intrinsics/abs":453,"math-intrinsics/floor":454,"math-intrinsics/max":456,"math-intrinsics/min":457,"math-intrinsics/pow":458,"math-intrinsics/round":459,"math-intrinsics/sign":460}],437:[function(require,module,exports){
75417
+ },{"call-bind-apply-helpers/functionApply":418,"call-bind-apply-helpers/functionCall":419,"es-define-property":426,"es-errors":428,"es-errors/eval":427,"es-errors/range":429,"es-errors/ref":430,"es-errors/syntax":431,"es-errors/type":432,"es-errors/uri":433,"es-object-atoms":434,"function-bind":437,"get-proto":441,"get-proto/Object.getPrototypeOf":439,"get-proto/Reflect.getPrototypeOf":440,"gopd":443,"has-symbols":445,"hasown":448,"math-intrinsics/abs":455,"math-intrinsics/floor":456,"math-intrinsics/max":458,"math-intrinsics/min":459,"math-intrinsics/pow":460,"math-intrinsics/round":461,"math-intrinsics/sign":462}],439:[function(require,module,exports){
73723
75418
  'use strict';
73724
75419
 
73725
75420
  var $Object = require('es-object-atoms');
@@ -73727,13 +75422,13 @@ var $Object = require('es-object-atoms');
73727
75422
  /** @type {import('./Object.getPrototypeOf')} */
73728
75423
  module.exports = $Object.getPrototypeOf || null;
73729
75424
 
73730
- },{"es-object-atoms":432}],438:[function(require,module,exports){
75425
+ },{"es-object-atoms":434}],440:[function(require,module,exports){
73731
75426
  'use strict';
73732
75427
 
73733
75428
  /** @type {import('./Reflect.getPrototypeOf')} */
73734
75429
  module.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null;
73735
75430
 
73736
- },{}],439:[function(require,module,exports){
75431
+ },{}],441:[function(require,module,exports){
73737
75432
  'use strict';
73738
75433
 
73739
75434
  var reflectGetProto = require('./Reflect.getPrototypeOf');
@@ -73762,13 +75457,13 @@ module.exports = reflectGetProto
73762
75457
  }
73763
75458
  : null;
73764
75459
 
73765
- },{"./Object.getPrototypeOf":437,"./Reflect.getPrototypeOf":438,"dunder-proto/get":423}],440:[function(require,module,exports){
75460
+ },{"./Object.getPrototypeOf":439,"./Reflect.getPrototypeOf":440,"dunder-proto/get":425}],442:[function(require,module,exports){
73766
75461
  'use strict';
73767
75462
 
73768
75463
  /** @type {import('./gOPD')} */
73769
75464
  module.exports = Object.getOwnPropertyDescriptor;
73770
75465
 
73771
- },{}],441:[function(require,module,exports){
75466
+ },{}],443:[function(require,module,exports){
73772
75467
  'use strict';
73773
75468
 
73774
75469
  /** @type {import('.')} */
@@ -73785,7 +75480,7 @@ if ($gOPD) {
73785
75480
 
73786
75481
  module.exports = $gOPD;
73787
75482
 
73788
- },{"./gOPD":440}],442:[function(require,module,exports){
75483
+ },{"./gOPD":442}],444:[function(require,module,exports){
73789
75484
  'use strict';
73790
75485
 
73791
75486
  var $defineProperty = require('es-define-property');
@@ -73809,7 +75504,7 @@ hasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBu
73809
75504
 
73810
75505
  module.exports = hasPropertyDescriptors;
73811
75506
 
73812
- },{"es-define-property":424}],443:[function(require,module,exports){
75507
+ },{"es-define-property":426}],445:[function(require,module,exports){
73813
75508
  'use strict';
73814
75509
 
73815
75510
  var origSymbol = typeof Symbol !== 'undefined' && Symbol;
@@ -73825,7 +75520,7 @@ module.exports = function hasNativeSymbols() {
73825
75520
  return hasSymbolSham();
73826
75521
  };
73827
75522
 
73828
- },{"./shams":444}],444:[function(require,module,exports){
75523
+ },{"./shams":446}],446:[function(require,module,exports){
73829
75524
  'use strict';
73830
75525
 
73831
75526
  /** @type {import('./shams')} */
@@ -73872,7 +75567,7 @@ module.exports = function hasSymbols() {
73872
75567
  return true;
73873
75568
  };
73874
75569
 
73875
- },{}],445:[function(require,module,exports){
75570
+ },{}],447:[function(require,module,exports){
73876
75571
  'use strict';
73877
75572
 
73878
75573
  var hasSymbols = require('has-symbols/shams');
@@ -73882,7 +75577,7 @@ module.exports = function hasToStringTagShams() {
73882
75577
  return hasSymbols() && !!Symbol.toStringTag;
73883
75578
  };
73884
75579
 
73885
- },{"has-symbols/shams":444}],446:[function(require,module,exports){
75580
+ },{"has-symbols/shams":446}],448:[function(require,module,exports){
73886
75581
  'use strict';
73887
75582
 
73888
75583
  var call = Function.prototype.call;
@@ -73892,7 +75587,7 @@ var bind = require('function-bind');
73892
75587
  /** @type {import('.')} */
73893
75588
  module.exports = bind.call(call, $hasOwn);
73894
75589
 
73895
- },{"function-bind":435}],447:[function(require,module,exports){
75590
+ },{"function-bind":437}],449:[function(require,module,exports){
73896
75591
  if (typeof Object.create === 'function') {
73897
75592
  // implementation from standard node.js 'util' module
73898
75593
  module.exports = function inherits(ctor, superCtor) {
@@ -73921,7 +75616,7 @@ if (typeof Object.create === 'function') {
73921
75616
  }
73922
75617
  }
73923
75618
 
73924
- },{}],448:[function(require,module,exports){
75619
+ },{}],450:[function(require,module,exports){
73925
75620
  'use strict';
73926
75621
 
73927
75622
  var hasToStringTag = require('has-tostringtag/shams')();
@@ -73967,7 +75662,7 @@ isStandardArguments.isLegacyArguments = isLegacyArguments; // for tests
73967
75662
  /** @type {import('.')} */
73968
75663
  module.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;
73969
75664
 
73970
- },{"call-bound":421,"has-tostringtag/shams":445}],449:[function(require,module,exports){
75665
+ },{"call-bound":423,"has-tostringtag/shams":447}],451:[function(require,module,exports){
73971
75666
  'use strict';
73972
75667
 
73973
75668
  var fnToStr = Function.prototype.toString;
@@ -74070,7 +75765,7 @@ module.exports = reflectApply
74070
75765
  return tryFunctionObject(value);
74071
75766
  };
74072
75767
 
74073
- },{}],450:[function(require,module,exports){
75768
+ },{}],452:[function(require,module,exports){
74074
75769
  'use strict';
74075
75770
 
74076
75771
  var callBound = require('call-bound');
@@ -74119,7 +75814,7 @@ module.exports = function isGeneratorFunction(fn) {
74119
75814
  return getProto(fn) === GeneratorFunction;
74120
75815
  };
74121
75816
 
74122
- },{"call-bound":421,"get-proto":439,"has-tostringtag/shams":445,"safe-regex-test":468}],451:[function(require,module,exports){
75817
+ },{"call-bound":423,"get-proto":441,"has-tostringtag/shams":447,"safe-regex-test":470}],453:[function(require,module,exports){
74123
75818
  'use strict';
74124
75819
 
74125
75820
  var callBound = require('call-bound');
@@ -74190,7 +75885,7 @@ if (hasToStringTag) {
74190
75885
 
74191
75886
  module.exports = fn;
74192
75887
 
74193
- },{"call-bound":421,"gopd":441,"has-tostringtag/shams":445,"hasown":446}],452:[function(require,module,exports){
75888
+ },{"call-bound":423,"gopd":443,"has-tostringtag/shams":447,"hasown":448}],454:[function(require,module,exports){
74194
75889
  'use strict';
74195
75890
 
74196
75891
  var whichTypedArray = require('which-typed-array');
@@ -74200,19 +75895,19 @@ module.exports = function isTypedArray(value) {
74200
75895
  return !!whichTypedArray(value);
74201
75896
  };
74202
75897
 
74203
- },{"which-typed-array":474}],453:[function(require,module,exports){
75898
+ },{"which-typed-array":476}],455:[function(require,module,exports){
74204
75899
  'use strict';
74205
75900
 
74206
75901
  /** @type {import('./abs')} */
74207
75902
  module.exports = Math.abs;
74208
75903
 
74209
- },{}],454:[function(require,module,exports){
75904
+ },{}],456:[function(require,module,exports){
74210
75905
  'use strict';
74211
75906
 
74212
75907
  /** @type {import('./floor')} */
74213
75908
  module.exports = Math.floor;
74214
75909
 
74215
- },{}],455:[function(require,module,exports){
75910
+ },{}],457:[function(require,module,exports){
74216
75911
  'use strict';
74217
75912
 
74218
75913
  /** @type {import('./isNaN')} */
@@ -74220,31 +75915,31 @@ module.exports = Number.isNaN || function isNaN(a) {
74220
75915
  return a !== a;
74221
75916
  };
74222
75917
 
74223
- },{}],456:[function(require,module,exports){
75918
+ },{}],458:[function(require,module,exports){
74224
75919
  'use strict';
74225
75920
 
74226
75921
  /** @type {import('./max')} */
74227
75922
  module.exports = Math.max;
74228
75923
 
74229
- },{}],457:[function(require,module,exports){
75924
+ },{}],459:[function(require,module,exports){
74230
75925
  'use strict';
74231
75926
 
74232
75927
  /** @type {import('./min')} */
74233
75928
  module.exports = Math.min;
74234
75929
 
74235
- },{}],458:[function(require,module,exports){
75930
+ },{}],460:[function(require,module,exports){
74236
75931
  'use strict';
74237
75932
 
74238
75933
  /** @type {import('./pow')} */
74239
75934
  module.exports = Math.pow;
74240
75935
 
74241
- },{}],459:[function(require,module,exports){
75936
+ },{}],461:[function(require,module,exports){
74242
75937
  'use strict';
74243
75938
 
74244
75939
  /** @type {import('./round')} */
74245
75940
  module.exports = Math.round;
74246
75941
 
74247
- },{}],460:[function(require,module,exports){
75942
+ },{}],462:[function(require,module,exports){
74248
75943
  'use strict';
74249
75944
 
74250
75945
  var $isNaN = require('./isNaN');
@@ -74257,7 +75952,7 @@ module.exports = function sign(number) {
74257
75952
  return number < 0 ? -1 : +1;
74258
75953
  };
74259
75954
 
74260
- },{"./isNaN":455}],461:[function(require,module,exports){
75955
+ },{"./isNaN":457}],463:[function(require,module,exports){
74261
75956
  'use strict';
74262
75957
 
74263
75958
  var keysShim;
@@ -74381,7 +76076,7 @@ if (!Object.keys) {
74381
76076
  }
74382
76077
  module.exports = keysShim;
74383
76078
 
74384
- },{"./isArguments":463}],462:[function(require,module,exports){
76079
+ },{"./isArguments":465}],464:[function(require,module,exports){
74385
76080
  'use strict';
74386
76081
 
74387
76082
  var slice = Array.prototype.slice;
@@ -74415,7 +76110,7 @@ keysShim.shim = function shimObjectKeys() {
74415
76110
 
74416
76111
  module.exports = keysShim;
74417
76112
 
74418
- },{"./implementation":461,"./isArguments":463}],463:[function(require,module,exports){
76113
+ },{"./implementation":463,"./isArguments":465}],465:[function(require,module,exports){
74419
76114
  'use strict';
74420
76115
 
74421
76116
  var toStr = Object.prototype.toString;
@@ -74434,7 +76129,7 @@ module.exports = function isArguments(value) {
74434
76129
  return isArgs;
74435
76130
  };
74436
76131
 
74437
- },{}],464:[function(require,module,exports){
76132
+ },{}],466:[function(require,module,exports){
74438
76133
  'use strict';
74439
76134
 
74440
76135
  // modified from https://github.com/es-shims/es6-shim
@@ -74482,7 +76177,7 @@ module.exports = function assign(target, source1) {
74482
76177
  return to; // step 4
74483
76178
  };
74484
76179
 
74485
- },{"call-bound":421,"es-object-atoms":432,"has-symbols/shams":444,"object-keys":462}],465:[function(require,module,exports){
76180
+ },{"call-bound":423,"es-object-atoms":434,"has-symbols/shams":446,"object-keys":464}],467:[function(require,module,exports){
74486
76181
  'use strict';
74487
76182
 
74488
76183
  var implementation = require('./implementation');
@@ -74539,7 +76234,7 @@ module.exports = function getPolyfill() {
74539
76234
  return Object.assign;
74540
76235
  };
74541
76236
 
74542
- },{"./implementation":464}],466:[function(require,module,exports){
76237
+ },{"./implementation":466}],468:[function(require,module,exports){
74543
76238
  'use strict';
74544
76239
 
74545
76240
  /** @type {import('.')} */
@@ -74558,7 +76253,7 @@ module.exports = [
74558
76253
  'BigUint64Array'
74559
76254
  ];
74560
76255
 
74561
- },{}],467:[function(require,module,exports){
76256
+ },{}],469:[function(require,module,exports){
74562
76257
  // shim for using process in browser
74563
76258
  var process = module.exports = {};
74564
76259
 
@@ -74744,7 +76439,7 @@ process.chdir = function (dir) {
74744
76439
  };
74745
76440
  process.umask = function() { return 0; };
74746
76441
 
74747
- },{}],468:[function(require,module,exports){
76442
+ },{}],470:[function(require,module,exports){
74748
76443
  'use strict';
74749
76444
 
74750
76445
  var callBound = require('call-bound');
@@ -74763,7 +76458,7 @@ module.exports = function regexTester(regex) {
74763
76458
  };
74764
76459
  };
74765
76460
 
74766
- },{"call-bound":421,"es-errors/type":430,"is-regex":451}],469:[function(require,module,exports){
76461
+ },{"call-bound":423,"es-errors/type":432,"is-regex":453}],471:[function(require,module,exports){
74767
76462
  'use strict';
74768
76463
 
74769
76464
  var GetIntrinsic = require('get-intrinsic');
@@ -74807,7 +76502,7 @@ module.exports = function setFunctionLength(fn, length) {
74807
76502
  return fn;
74808
76503
  };
74809
76504
 
74810
- },{"define-data-property":422,"es-errors/type":430,"get-intrinsic":436,"gopd":441,"has-property-descriptors":442}],470:[function(require,module,exports){
76505
+ },{"define-data-property":424,"es-errors/type":432,"get-intrinsic":438,"gopd":443,"has-property-descriptors":444}],472:[function(require,module,exports){
74811
76506
  (function (setImmediate,clearImmediate){(function (){
74812
76507
  var nextTick = require('process/browser.js').nextTick;
74813
76508
  var apply = Function.prototype.apply;
@@ -74886,9 +76581,9 @@ exports.clearImmediate = typeof clearImmediate === "function" ? clearImmediate :
74886
76581
  delete immediateIds[id];
74887
76582
  };
74888
76583
  }).call(this)}).call(this,require("timers").setImmediate,require("timers").clearImmediate)
74889
- },{"process/browser.js":467,"timers":470}],471:[function(require,module,exports){
74890
- arguments[4][410][0].apply(exports,arguments)
74891
- },{"dup":410}],472:[function(require,module,exports){
76584
+ },{"process/browser.js":469,"timers":472}],473:[function(require,module,exports){
76585
+ arguments[4][412][0].apply(exports,arguments)
76586
+ },{"dup":412}],474:[function(require,module,exports){
74892
76587
  // Currently in sync with Node.js lib/internal/util/types.js
74893
76588
  // https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9
74894
76589
 
@@ -75224,7 +76919,7 @@ exports.isAnyArrayBuffer = isAnyArrayBuffer;
75224
76919
  });
75225
76920
  });
75226
76921
 
75227
- },{"is-arguments":448,"is-generator-function":450,"is-typed-array":452,"which-typed-array":474}],473:[function(require,module,exports){
76922
+ },{"is-arguments":450,"is-generator-function":452,"is-typed-array":454,"which-typed-array":476}],475:[function(require,module,exports){
75228
76923
  (function (process){(function (){
75229
76924
  // Copyright Joyent, Inc. and other Node contributors.
75230
76925
  //
@@ -75943,7 +77638,7 @@ function callbackify(original) {
75943
77638
  exports.callbackify = callbackify;
75944
77639
 
75945
77640
  }).call(this)}).call(this,require('_process'))
75946
- },{"./support/isBuffer":471,"./support/types":472,"_process":467,"inherits":447}],474:[function(require,module,exports){
77641
+ },{"./support/isBuffer":473,"./support/types":474,"_process":469,"inherits":449}],476:[function(require,module,exports){
75947
77642
  (function (global){(function (){
75948
77643
  'use strict';
75949
77644
 
@@ -76064,5 +77759,5 @@ module.exports = function whichTypedArray(value) {
76064
77759
  };
76065
77760
 
76066
77761
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
76067
- },{"available-typed-arrays":412,"call-bind":420,"call-bound":421,"for-each":433,"get-proto":439,"gopd":441,"has-tostringtag/shams":445}]},{},[136])(136)
77762
+ },{"available-typed-arrays":414,"call-bind":422,"call-bound":423,"for-each":435,"get-proto":441,"gopd":443,"has-tostringtag/shams":447}]},{},[136])(136)
76068
77763
  });