@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/bin/package.json +1 -1
- package/construtos/vetor.d.ts.map +1 -1
- package/construtos/vetor.js +2 -1
- package/construtos/vetor.js.map +1 -1
- package/interpretador/interpretador-base.js +3 -3
- package/interpretador/interpretador-base.js.map +1 -1
- package/package.json +1 -1
- package/tradutores/index.d.ts +2 -0
- package/tradutores/index.d.ts.map +1 -1
- package/tradutores/index.js +2 -0
- package/tradutores/index.js.map +1 -1
- package/tradutores/tradutor-assembly-risc-v.d.ts +99 -0
- package/tradutores/tradutor-assembly-risc-v.d.ts.map +1 -0
- package/tradutores/tradutor-assembly-risc-v.js +685 -0
- package/tradutores/tradutor-assembly-risc-v.js.map +1 -0
- package/tradutores/tradutor-assembly-x64.d.ts +5 -1
- package/tradutores/tradutor-assembly-x64.d.ts.map +1 -1
- package/tradutores/tradutor-assembly-x64.js +218 -108
- package/tradutores/tradutor-assembly-x64.js.map +1 -1
- package/tradutores/tradutor-assemblyscript.js +1 -1
- package/tradutores/tradutor-assemblyscript.js.map +1 -1
- package/tradutores/tradutor-webassembly.d.ts +159 -0
- package/tradutores/tradutor-webassembly.d.ts.map +1 -0
- package/tradutores/tradutor-webassembly.js +895 -0
- package/tradutores/tradutor-webassembly.js.map +1 -0
- package/umd/delegua.js +2057 -362
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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.
|
|
20664
|
-
valores.push(this.resolverValor(await this.avaliar(expressao.
|
|
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
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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-
|
|
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":
|
|
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":
|
|
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.
|
|
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.
|
|
41661
|
+
this.textoSaida =
|
|
40970
41662
|
`
|
|
40971
41663
|
extern printf
|
|
40972
|
-
` + this.
|
|
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.
|
|
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.
|
|
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
|
|
41062
|
-
this.
|
|
41753
|
+
const registrador = this.obterRegistrador();
|
|
41754
|
+
this.textoSaida += `
|
|
41063
41755
|
mov rax, ${esquerda}
|
|
41064
|
-
mov ${
|
|
41756
|
+
mov ${registrador}, ${direita}`;
|
|
41065
41757
|
switch (operador) {
|
|
41066
41758
|
case '+':
|
|
41067
|
-
this.
|
|
41068
|
-
add rax, ${
|
|
41759
|
+
this.textoSaida += `
|
|
41760
|
+
add rax, ${registrador}`;
|
|
41069
41761
|
break;
|
|
41070
41762
|
case '-':
|
|
41071
|
-
this.
|
|
41072
|
-
sub rax, ${
|
|
41763
|
+
this.textoSaida += `
|
|
41764
|
+
sub rax, ${registrador}`;
|
|
41073
41765
|
break;
|
|
41074
41766
|
case '*':
|
|
41075
|
-
this.
|
|
41076
|
-
imul rax, ${
|
|
41767
|
+
this.textoSaida += `
|
|
41768
|
+
imul rax, ${registrador}`;
|
|
41077
41769
|
break;
|
|
41078
41770
|
case '/':
|
|
41079
|
-
this.
|
|
41771
|
+
this.textoSaida += `
|
|
41080
41772
|
xor rdx, rdx
|
|
41081
|
-
idiv ${
|
|
41773
|
+
idiv ${registrador}`;
|
|
41082
41774
|
break;
|
|
41083
41775
|
case '%':
|
|
41084
|
-
this.
|
|
41776
|
+
this.textoSaida += `
|
|
41085
41777
|
xor rdx, rdx
|
|
41086
|
-
idiv ${
|
|
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.
|
|
41818
|
+
this.textoSaida += `
|
|
41091
41819
|
; Operador ${operador} não implementado`;
|
|
41092
41820
|
}
|
|
41093
|
-
this.liberarRegistrador(
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
41884
|
+
this.textoSaida += `
|
|
41157
41885
|
mov rax, ${esquerda}
|
|
41158
41886
|
cmp rax, 0`;
|
|
41159
41887
|
if (operador === 'e' || operador === '&&') {
|
|
41160
|
-
this.
|
|
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.
|
|
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.
|
|
41919
|
+
this.textoSaida += `
|
|
41192
41920
|
mov rax, ${operando}`;
|
|
41193
41921
|
if (operador === '-') {
|
|
41194
|
-
this.
|
|
41922
|
+
this.textoSaida += `
|
|
41195
41923
|
neg rax`;
|
|
41196
41924
|
}
|
|
41197
41925
|
else if (operador === '!' || operador === 'nao') {
|
|
41198
|
-
this.
|
|
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
|
|
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 += ` ${
|
|
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.
|
|
41960
|
+
this.textoSaida += `
|
|
41223
41961
|
mov rax, ${valorTraduzido}
|
|
41224
|
-
mov [${
|
|
41962
|
+
mov [${rotuloVetor} + ${index * 8}], rax`;
|
|
41225
41963
|
}
|
|
41226
41964
|
});
|
|
41227
41965
|
}
|
|
41228
|
-
return
|
|
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((
|
|
41234
|
-
if (this.dicionarioDeclaracoes[
|
|
41235
|
-
this.dicionarioDeclaracoes[
|
|
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.
|
|
41981
|
+
this.textoSaida += `
|
|
41244
41982
|
${labelInicio}:`;
|
|
41245
41983
|
const condicao = this.dicionarioConstrutos[declaracao.condicao.constructor.name](declaracao.condicao);
|
|
41246
|
-
this.
|
|
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.
|
|
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.
|
|
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((
|
|
41270
|
-
if (this.dicionarioDeclaracoes[
|
|
41271
|
-
this.dicionarioDeclaracoes[
|
|
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.
|
|
42013
|
+
this.textoSaida += `
|
|
41276
42014
|
jmp ${labelFim}
|
|
41277
42015
|
${labelProximo}:`;
|
|
41278
42016
|
}
|
|
41279
42017
|
});
|
|
41280
42018
|
}
|
|
41281
|
-
this.
|
|
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.
|
|
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((
|
|
41297
|
-
if (this.dicionarioDeclaracoes[
|
|
41298
|
-
this.dicionarioDeclaracoes[
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
41386
|
-
|
|
41387
|
-
|
|
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
|
|
41390
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
42157
|
+
this.textoSaida += `
|
|
41410
42158
|
jmp ${labelInicio}
|
|
41411
42159
|
${labelFim}:`;
|
|
41412
42160
|
}
|
|
41413
42161
|
traduzirDeclaracaoParaCada(declaracao) {
|
|
41414
42162
|
var _a;
|
|
41415
|
-
const
|
|
41416
|
-
const
|
|
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.
|
|
42174
|
+
this.textoSaida += `
|
|
41427
42175
|
xor rcx, rcx
|
|
41428
|
-
${
|
|
42176
|
+
${rotuloInicio}:
|
|
41429
42177
|
cmp rcx, ${tamanhoVetor}
|
|
41430
|
-
jge ${
|
|
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.
|
|
42182
|
+
this.textoSaida += `
|
|
41435
42183
|
inc rcx
|
|
41436
|
-
jmp ${
|
|
41437
|
-
${
|
|
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.
|
|
42190
|
+
this.textoSaida += `
|
|
41443
42191
|
mov rax, ${valor}`;
|
|
41444
42192
|
}
|
|
41445
|
-
this.
|
|
42193
|
+
this.textoSaida += `
|
|
41446
42194
|
pop rbp
|
|
41447
42195
|
ret`;
|
|
41448
42196
|
}
|
|
41449
42197
|
traduzirDeclaracaoSe(declaracao) {
|
|
41450
|
-
const
|
|
41451
|
-
const
|
|
42198
|
+
const rotuloSenao = this.gerarLabel();
|
|
42199
|
+
const rotuloFim = this.gerarLabel();
|
|
41452
42200
|
const condicao = this.dicionarioConstrutos[declaracao.condicao.constructor.name](declaracao.condicao);
|
|
41453
|
-
this.
|
|
42201
|
+
this.textoSaida += `
|
|
41454
42202
|
cmp ${condicao}, 0
|
|
41455
|
-
je ${
|
|
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.
|
|
41460
|
-
jmp ${
|
|
41461
|
-
${
|
|
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.
|
|
41467
|
-
${
|
|
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.
|
|
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.
|
|
42225
|
+
this.textoSaida += `
|
|
41478
42226
|
; Tente-pegue`;
|
|
41479
42227
|
if (declaracao.caminhoTente && Array.isArray(declaracao.caminhoTente)) {
|
|
41480
|
-
declaracao.caminhoTente.forEach((
|
|
41481
|
-
if (this.dicionarioDeclaracoes[
|
|
41482
|
-
this.dicionarioDeclaracoes[
|
|
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.
|
|
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
|
-
|
|
41534
|
-
|
|
41535
|
-
|
|
41536
|
-
|
|
41537
|
-
|
|
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
|
-
|
|
41549
|
-
|
|
41550
|
-
|
|
41551
|
-
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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}],
|
|
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}],
|
|
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
|
-
},{}],
|
|
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}],
|
|
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}],
|
|
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}],
|
|
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}],
|
|
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}],
|
|
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
|
-
},{}],
|
|
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":
|
|
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}],
|
|
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}],
|
|
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
|
-
},{}],
|
|
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
|
-
},{}],
|
|
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":
|
|
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":
|
|
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":
|
|
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
|
-
},{}],
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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
|
-
},{}],
|
|
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
|
-
},{}],
|
|
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":
|
|
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
|
-
},{}],
|
|
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":
|
|
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":
|
|
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":
|
|
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
|
-
},{}],
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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
|
-
},{}],
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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
|
-
},{}],
|
|
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":
|
|
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":
|
|
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":
|
|
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
|
-
},{}],
|
|
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
|
-
},{}],
|
|
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":
|
|
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
|
-
},{}],
|
|
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
|
-
},{}],
|
|
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
|
-
},{}],
|
|
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":
|
|
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
|
-
},{}],
|
|
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":
|
|
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
|
-
},{}],
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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
|
-
},{}],
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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
|
-
},{}],
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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
|
-
},{}],
|
|
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":
|
|
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
|
-
},{}],
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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
|
-
},{}],
|
|
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
|
-
},{}],
|
|
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":
|
|
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
|
-
},{}],
|
|
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":
|
|
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
|
-
},{}],
|
|
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":
|
|
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":
|
|
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
|
-
},{}],
|
|
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":
|
|
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":
|
|
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
|
-
},{}],
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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
|
-
},{}],
|
|
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
|
-
},{}],
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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
|
-
},{}],
|
|
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
|
-
},{}],
|
|
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":
|
|
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
|
-
},{}],
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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
|
-
},{}],
|
|
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
|
-
},{}],
|
|
74831
|
+
},{}],428:[function(require,module,exports){
|
|
73137
74832
|
'use strict';
|
|
73138
74833
|
|
|
73139
74834
|
/** @type {import('.')} */
|
|
73140
74835
|
module.exports = Error;
|
|
73141
74836
|
|
|
73142
|
-
},{}],
|
|
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
|
-
},{}],
|
|
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
|
-
},{}],
|
|
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
|
-
},{}],
|
|
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
|
-
},{}],
|
|
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
|
-
},{}],
|
|
74867
|
+
},{}],434:[function(require,module,exports){
|
|
73173
74868
|
'use strict';
|
|
73174
74869
|
|
|
73175
74870
|
/** @type {import('.')} */
|
|
73176
74871
|
module.exports = Object;
|
|
73177
74872
|
|
|
73178
|
-
},{}],
|
|
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":
|
|
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
|
-
},{}],
|
|
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":
|
|
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":
|
|
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":
|
|
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
|
-
},{}],
|
|
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":
|
|
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
|
-
},{}],
|
|
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":
|
|
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":
|
|
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":
|
|
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
|
-
},{}],
|
|
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":
|
|
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":
|
|
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
|
-
},{}],
|
|
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":
|
|
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
|
-
},{}],
|
|
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":
|
|
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":
|
|
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":
|
|
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
|
-
},{}],
|
|
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
|
-
},{}],
|
|
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
|
-
},{}],
|
|
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
|
-
},{}],
|
|
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
|
-
},{}],
|
|
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
|
-
},{}],
|
|
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
|
-
},{}],
|
|
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":
|
|
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":
|
|
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":
|
|
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
|
-
},{}],
|
|
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":
|
|
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":
|
|
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
|
-
},{}],
|
|
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
|
-
},{}],
|
|
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":
|
|
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":
|
|
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":
|
|
74890
|
-
arguments[4][
|
|
74891
|
-
},{"dup":
|
|
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":
|
|
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":
|
|
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":
|
|
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
|
});
|