three-stdlib 2.26.1 → 2.26.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/index.cjs +854 -16
  2. package/index.js +854 -16
  3. package/package.json +1 -1
package/index.cjs CHANGED
@@ -10,7 +10,7 @@ const THREE = require("three");
10
10
  const potpack = require("potpack");
11
11
  const fflate$1 = require("fflate");
12
12
  const mmdParser = require("mmd-parser");
13
- const require$$0$3 = require("lodash/isEmpty");
13
+ const require$$0$2 = require("lodash/isEmpty");
14
14
  const require$$2 = require("lodash/map");
15
15
  const require$$1 = require("lodash/forEach");
16
16
  const require$$3$2 = require("lodash/values");
@@ -27,7 +27,6 @@ const require$$2$3 = require("lodash/includes");
27
27
  const require$$3$1 = require("lodash/flatten");
28
28
  const require$$4$1 = require("lodash/uniq");
29
29
  const require$$2$4 = require("lodash/isUndefined");
30
- const require$$0$2 = require("regexp-to-ast");
31
30
  const require$$1$2 = require("lodash/first");
32
31
  const require$$1$3 = require("lodash/compact");
33
32
  const require$$1$1 = require("lodash/isArray");
@@ -53007,11 +53006,850 @@ follow.buildInProdFollowPrefix = buildInProdFollowPrefix;
53007
53006
  var tokens_public = {};
53008
53007
  var lexer_public = {};
53009
53008
  var lexer = {};
53009
+ var regexpToAst = { exports: {} };
53010
+ (function(module2) {
53011
+ (function(root, factory) {
53012
+ if (module2.exports) {
53013
+ module2.exports = factory();
53014
+ } else {
53015
+ root.regexpToAst = factory();
53016
+ }
53017
+ })(
53018
+ typeof self !== "undefined" ? (
53019
+ // istanbul ignore next
53020
+ self
53021
+ ) : commonjsGlobal,
53022
+ function() {
53023
+ function RegExpParser() {
53024
+ }
53025
+ RegExpParser.prototype.saveState = function() {
53026
+ return {
53027
+ idx: this.idx,
53028
+ input: this.input,
53029
+ groupIdx: this.groupIdx
53030
+ };
53031
+ };
53032
+ RegExpParser.prototype.restoreState = function(newState) {
53033
+ this.idx = newState.idx;
53034
+ this.input = newState.input;
53035
+ this.groupIdx = newState.groupIdx;
53036
+ };
53037
+ RegExpParser.prototype.pattern = function(input) {
53038
+ this.idx = 0;
53039
+ this.input = input;
53040
+ this.groupIdx = 0;
53041
+ this.consumeChar("/");
53042
+ var value = this.disjunction();
53043
+ this.consumeChar("/");
53044
+ var flags = {
53045
+ type: "Flags",
53046
+ loc: { begin: this.idx, end: input.length },
53047
+ global: false,
53048
+ ignoreCase: false,
53049
+ multiLine: false,
53050
+ unicode: false,
53051
+ sticky: false
53052
+ };
53053
+ while (this.isRegExpFlag()) {
53054
+ switch (this.popChar()) {
53055
+ case "g":
53056
+ addFlag(flags, "global");
53057
+ break;
53058
+ case "i":
53059
+ addFlag(flags, "ignoreCase");
53060
+ break;
53061
+ case "m":
53062
+ addFlag(flags, "multiLine");
53063
+ break;
53064
+ case "u":
53065
+ addFlag(flags, "unicode");
53066
+ break;
53067
+ case "y":
53068
+ addFlag(flags, "sticky");
53069
+ break;
53070
+ }
53071
+ }
53072
+ if (this.idx !== this.input.length) {
53073
+ throw Error(
53074
+ "Redundant input: " + this.input.substring(this.idx)
53075
+ );
53076
+ }
53077
+ return {
53078
+ type: "Pattern",
53079
+ flags,
53080
+ value,
53081
+ loc: this.loc(0)
53082
+ };
53083
+ };
53084
+ RegExpParser.prototype.disjunction = function() {
53085
+ var alts = [];
53086
+ var begin = this.idx;
53087
+ alts.push(this.alternative());
53088
+ while (this.peekChar() === "|") {
53089
+ this.consumeChar("|");
53090
+ alts.push(this.alternative());
53091
+ }
53092
+ return { type: "Disjunction", value: alts, loc: this.loc(begin) };
53093
+ };
53094
+ RegExpParser.prototype.alternative = function() {
53095
+ var terms = [];
53096
+ var begin = this.idx;
53097
+ while (this.isTerm()) {
53098
+ terms.push(this.term());
53099
+ }
53100
+ return { type: "Alternative", value: terms, loc: this.loc(begin) };
53101
+ };
53102
+ RegExpParser.prototype.term = function() {
53103
+ if (this.isAssertion()) {
53104
+ return this.assertion();
53105
+ } else {
53106
+ return this.atom();
53107
+ }
53108
+ };
53109
+ RegExpParser.prototype.assertion = function() {
53110
+ var begin = this.idx;
53111
+ switch (this.popChar()) {
53112
+ case "^":
53113
+ return {
53114
+ type: "StartAnchor",
53115
+ loc: this.loc(begin)
53116
+ };
53117
+ case "$":
53118
+ return { type: "EndAnchor", loc: this.loc(begin) };
53119
+ case "\\":
53120
+ switch (this.popChar()) {
53121
+ case "b":
53122
+ return {
53123
+ type: "WordBoundary",
53124
+ loc: this.loc(begin)
53125
+ };
53126
+ case "B":
53127
+ return {
53128
+ type: "NonWordBoundary",
53129
+ loc: this.loc(begin)
53130
+ };
53131
+ }
53132
+ throw Error("Invalid Assertion Escape");
53133
+ case "(":
53134
+ this.consumeChar("?");
53135
+ var type;
53136
+ switch (this.popChar()) {
53137
+ case "=":
53138
+ type = "Lookahead";
53139
+ break;
53140
+ case "!":
53141
+ type = "NegativeLookahead";
53142
+ break;
53143
+ }
53144
+ ASSERT_EXISTS(type);
53145
+ var disjunction = this.disjunction();
53146
+ this.consumeChar(")");
53147
+ return {
53148
+ type,
53149
+ value: disjunction,
53150
+ loc: this.loc(begin)
53151
+ };
53152
+ }
53153
+ ASSERT_NEVER_REACH_HERE();
53154
+ };
53155
+ RegExpParser.prototype.quantifier = function(isBacktracking) {
53156
+ var range;
53157
+ var begin = this.idx;
53158
+ switch (this.popChar()) {
53159
+ case "*":
53160
+ range = {
53161
+ atLeast: 0,
53162
+ atMost: Infinity
53163
+ };
53164
+ break;
53165
+ case "+":
53166
+ range = {
53167
+ atLeast: 1,
53168
+ atMost: Infinity
53169
+ };
53170
+ break;
53171
+ case "?":
53172
+ range = {
53173
+ atLeast: 0,
53174
+ atMost: 1
53175
+ };
53176
+ break;
53177
+ case "{":
53178
+ var atLeast = this.integerIncludingZero();
53179
+ switch (this.popChar()) {
53180
+ case "}":
53181
+ range = {
53182
+ atLeast,
53183
+ atMost: atLeast
53184
+ };
53185
+ break;
53186
+ case ",":
53187
+ var atMost;
53188
+ if (this.isDigit()) {
53189
+ atMost = this.integerIncludingZero();
53190
+ range = {
53191
+ atLeast,
53192
+ atMost
53193
+ };
53194
+ } else {
53195
+ range = {
53196
+ atLeast,
53197
+ atMost: Infinity
53198
+ };
53199
+ }
53200
+ this.consumeChar("}");
53201
+ break;
53202
+ }
53203
+ if (isBacktracking === true && range === void 0) {
53204
+ return void 0;
53205
+ }
53206
+ ASSERT_EXISTS(range);
53207
+ break;
53208
+ }
53209
+ if (isBacktracking === true && range === void 0) {
53210
+ return void 0;
53211
+ }
53212
+ ASSERT_EXISTS(range);
53213
+ if (this.peekChar(0) === "?") {
53214
+ this.consumeChar("?");
53215
+ range.greedy = false;
53216
+ } else {
53217
+ range.greedy = true;
53218
+ }
53219
+ range.type = "Quantifier";
53220
+ range.loc = this.loc(begin);
53221
+ return range;
53222
+ };
53223
+ RegExpParser.prototype.atom = function() {
53224
+ var atom;
53225
+ var begin = this.idx;
53226
+ switch (this.peekChar()) {
53227
+ case ".":
53228
+ atom = this.dotAll();
53229
+ break;
53230
+ case "\\":
53231
+ atom = this.atomEscape();
53232
+ break;
53233
+ case "[":
53234
+ atom = this.characterClass();
53235
+ break;
53236
+ case "(":
53237
+ atom = this.group();
53238
+ break;
53239
+ }
53240
+ if (atom === void 0 && this.isPatternCharacter()) {
53241
+ atom = this.patternCharacter();
53242
+ }
53243
+ ASSERT_EXISTS(atom);
53244
+ atom.loc = this.loc(begin);
53245
+ if (this.isQuantifier()) {
53246
+ atom.quantifier = this.quantifier();
53247
+ }
53248
+ return atom;
53249
+ };
53250
+ RegExpParser.prototype.dotAll = function() {
53251
+ this.consumeChar(".");
53252
+ return {
53253
+ type: "Set",
53254
+ complement: true,
53255
+ value: [cc("\n"), cc("\r"), cc("\u2028"), cc("\u2029")]
53256
+ };
53257
+ };
53258
+ RegExpParser.prototype.atomEscape = function() {
53259
+ this.consumeChar("\\");
53260
+ switch (this.peekChar()) {
53261
+ case "1":
53262
+ case "2":
53263
+ case "3":
53264
+ case "4":
53265
+ case "5":
53266
+ case "6":
53267
+ case "7":
53268
+ case "8":
53269
+ case "9":
53270
+ return this.decimalEscapeAtom();
53271
+ case "d":
53272
+ case "D":
53273
+ case "s":
53274
+ case "S":
53275
+ case "w":
53276
+ case "W":
53277
+ return this.characterClassEscape();
53278
+ case "f":
53279
+ case "n":
53280
+ case "r":
53281
+ case "t":
53282
+ case "v":
53283
+ return this.controlEscapeAtom();
53284
+ case "c":
53285
+ return this.controlLetterEscapeAtom();
53286
+ case "0":
53287
+ return this.nulCharacterAtom();
53288
+ case "x":
53289
+ return this.hexEscapeSequenceAtom();
53290
+ case "u":
53291
+ return this.regExpUnicodeEscapeSequenceAtom();
53292
+ default:
53293
+ return this.identityEscapeAtom();
53294
+ }
53295
+ };
53296
+ RegExpParser.prototype.decimalEscapeAtom = function() {
53297
+ var value = this.positiveInteger();
53298
+ return { type: "GroupBackReference", value };
53299
+ };
53300
+ RegExpParser.prototype.characterClassEscape = function() {
53301
+ var set;
53302
+ var complement = false;
53303
+ switch (this.popChar()) {
53304
+ case "d":
53305
+ set = digitsCharCodes;
53306
+ break;
53307
+ case "D":
53308
+ set = digitsCharCodes;
53309
+ complement = true;
53310
+ break;
53311
+ case "s":
53312
+ set = whitespaceCodes;
53313
+ break;
53314
+ case "S":
53315
+ set = whitespaceCodes;
53316
+ complement = true;
53317
+ break;
53318
+ case "w":
53319
+ set = wordCharCodes;
53320
+ break;
53321
+ case "W":
53322
+ set = wordCharCodes;
53323
+ complement = true;
53324
+ break;
53325
+ }
53326
+ ASSERT_EXISTS(set);
53327
+ return { type: "Set", value: set, complement };
53328
+ };
53329
+ RegExpParser.prototype.controlEscapeAtom = function() {
53330
+ var escapeCode;
53331
+ switch (this.popChar()) {
53332
+ case "f":
53333
+ escapeCode = cc("\f");
53334
+ break;
53335
+ case "n":
53336
+ escapeCode = cc("\n");
53337
+ break;
53338
+ case "r":
53339
+ escapeCode = cc("\r");
53340
+ break;
53341
+ case "t":
53342
+ escapeCode = cc(" ");
53343
+ break;
53344
+ case "v":
53345
+ escapeCode = cc("\v");
53346
+ break;
53347
+ }
53348
+ ASSERT_EXISTS(escapeCode);
53349
+ return { type: "Character", value: escapeCode };
53350
+ };
53351
+ RegExpParser.prototype.controlLetterEscapeAtom = function() {
53352
+ this.consumeChar("c");
53353
+ var letter = this.popChar();
53354
+ if (/[a-zA-Z]/.test(letter) === false) {
53355
+ throw Error("Invalid ");
53356
+ }
53357
+ var letterCode = letter.toUpperCase().charCodeAt(0) - 64;
53358
+ return { type: "Character", value: letterCode };
53359
+ };
53360
+ RegExpParser.prototype.nulCharacterAtom = function() {
53361
+ this.consumeChar("0");
53362
+ return { type: "Character", value: cc("\0") };
53363
+ };
53364
+ RegExpParser.prototype.hexEscapeSequenceAtom = function() {
53365
+ this.consumeChar("x");
53366
+ return this.parseHexDigits(2);
53367
+ };
53368
+ RegExpParser.prototype.regExpUnicodeEscapeSequenceAtom = function() {
53369
+ this.consumeChar("u");
53370
+ return this.parseHexDigits(4);
53371
+ };
53372
+ RegExpParser.prototype.identityEscapeAtom = function() {
53373
+ var escapedChar = this.popChar();
53374
+ return { type: "Character", value: cc(escapedChar) };
53375
+ };
53376
+ RegExpParser.prototype.classPatternCharacterAtom = function() {
53377
+ switch (this.peekChar()) {
53378
+ case "\n":
53379
+ case "\r":
53380
+ case "\u2028":
53381
+ case "\u2029":
53382
+ case "\\":
53383
+ case "]":
53384
+ throw Error("TBD");
53385
+ default:
53386
+ var nextChar = this.popChar();
53387
+ return { type: "Character", value: cc(nextChar) };
53388
+ }
53389
+ };
53390
+ RegExpParser.prototype.characterClass = function() {
53391
+ var set = [];
53392
+ var complement = false;
53393
+ this.consumeChar("[");
53394
+ if (this.peekChar(0) === "^") {
53395
+ this.consumeChar("^");
53396
+ complement = true;
53397
+ }
53398
+ while (this.isClassAtom()) {
53399
+ var from = this.classAtom();
53400
+ var isFromSingleChar = from.type === "Character";
53401
+ if (isFromSingleChar && this.isRangeDash()) {
53402
+ this.consumeChar("-");
53403
+ var to = this.classAtom();
53404
+ var isToSingleChar = to.type === "Character";
53405
+ if (isToSingleChar) {
53406
+ if (to.value < from.value) {
53407
+ throw Error("Range out of order in character class");
53408
+ }
53409
+ set.push({ from: from.value, to: to.value });
53410
+ } else {
53411
+ insertToSet(from.value, set);
53412
+ set.push(cc("-"));
53413
+ insertToSet(to.value, set);
53414
+ }
53415
+ } else {
53416
+ insertToSet(from.value, set);
53417
+ }
53418
+ }
53419
+ this.consumeChar("]");
53420
+ return { type: "Set", complement, value: set };
53421
+ };
53422
+ RegExpParser.prototype.classAtom = function() {
53423
+ switch (this.peekChar()) {
53424
+ case "]":
53425
+ case "\n":
53426
+ case "\r":
53427
+ case "\u2028":
53428
+ case "\u2029":
53429
+ throw Error("TBD");
53430
+ case "\\":
53431
+ return this.classEscape();
53432
+ default:
53433
+ return this.classPatternCharacterAtom();
53434
+ }
53435
+ };
53436
+ RegExpParser.prototype.classEscape = function() {
53437
+ this.consumeChar("\\");
53438
+ switch (this.peekChar()) {
53439
+ case "b":
53440
+ this.consumeChar("b");
53441
+ return { type: "Character", value: cc("\b") };
53442
+ case "d":
53443
+ case "D":
53444
+ case "s":
53445
+ case "S":
53446
+ case "w":
53447
+ case "W":
53448
+ return this.characterClassEscape();
53449
+ case "f":
53450
+ case "n":
53451
+ case "r":
53452
+ case "t":
53453
+ case "v":
53454
+ return this.controlEscapeAtom();
53455
+ case "c":
53456
+ return this.controlLetterEscapeAtom();
53457
+ case "0":
53458
+ return this.nulCharacterAtom();
53459
+ case "x":
53460
+ return this.hexEscapeSequenceAtom();
53461
+ case "u":
53462
+ return this.regExpUnicodeEscapeSequenceAtom();
53463
+ default:
53464
+ return this.identityEscapeAtom();
53465
+ }
53466
+ };
53467
+ RegExpParser.prototype.group = function() {
53468
+ var capturing = true;
53469
+ this.consumeChar("(");
53470
+ switch (this.peekChar(0)) {
53471
+ case "?":
53472
+ this.consumeChar("?");
53473
+ this.consumeChar(":");
53474
+ capturing = false;
53475
+ break;
53476
+ default:
53477
+ this.groupIdx++;
53478
+ break;
53479
+ }
53480
+ var value = this.disjunction();
53481
+ this.consumeChar(")");
53482
+ var groupAst = {
53483
+ type: "Group",
53484
+ capturing,
53485
+ value
53486
+ };
53487
+ if (capturing) {
53488
+ groupAst.idx = this.groupIdx;
53489
+ }
53490
+ return groupAst;
53491
+ };
53492
+ RegExpParser.prototype.positiveInteger = function() {
53493
+ var number = this.popChar();
53494
+ if (decimalPatternNoZero.test(number) === false) {
53495
+ throw Error("Expecting a positive integer");
53496
+ }
53497
+ while (decimalPattern.test(this.peekChar(0))) {
53498
+ number += this.popChar();
53499
+ }
53500
+ return parseInt(number, 10);
53501
+ };
53502
+ RegExpParser.prototype.integerIncludingZero = function() {
53503
+ var number = this.popChar();
53504
+ if (decimalPattern.test(number) === false) {
53505
+ throw Error("Expecting an integer");
53506
+ }
53507
+ while (decimalPattern.test(this.peekChar(0))) {
53508
+ number += this.popChar();
53509
+ }
53510
+ return parseInt(number, 10);
53511
+ };
53512
+ RegExpParser.prototype.patternCharacter = function() {
53513
+ var nextChar = this.popChar();
53514
+ switch (nextChar) {
53515
+ case "\n":
53516
+ case "\r":
53517
+ case "\u2028":
53518
+ case "\u2029":
53519
+ case "^":
53520
+ case "$":
53521
+ case "\\":
53522
+ case ".":
53523
+ case "*":
53524
+ case "+":
53525
+ case "?":
53526
+ case "(":
53527
+ case ")":
53528
+ case "[":
53529
+ case "|":
53530
+ throw Error("TBD");
53531
+ default:
53532
+ return { type: "Character", value: cc(nextChar) };
53533
+ }
53534
+ };
53535
+ RegExpParser.prototype.isRegExpFlag = function() {
53536
+ switch (this.peekChar(0)) {
53537
+ case "g":
53538
+ case "i":
53539
+ case "m":
53540
+ case "u":
53541
+ case "y":
53542
+ return true;
53543
+ default:
53544
+ return false;
53545
+ }
53546
+ };
53547
+ RegExpParser.prototype.isRangeDash = function() {
53548
+ return this.peekChar() === "-" && this.isClassAtom(1);
53549
+ };
53550
+ RegExpParser.prototype.isDigit = function() {
53551
+ return decimalPattern.test(this.peekChar(0));
53552
+ };
53553
+ RegExpParser.prototype.isClassAtom = function(howMuch) {
53554
+ if (howMuch === void 0) {
53555
+ howMuch = 0;
53556
+ }
53557
+ switch (this.peekChar(howMuch)) {
53558
+ case "]":
53559
+ case "\n":
53560
+ case "\r":
53561
+ case "\u2028":
53562
+ case "\u2029":
53563
+ return false;
53564
+ default:
53565
+ return true;
53566
+ }
53567
+ };
53568
+ RegExpParser.prototype.isTerm = function() {
53569
+ return this.isAtom() || this.isAssertion();
53570
+ };
53571
+ RegExpParser.prototype.isAtom = function() {
53572
+ if (this.isPatternCharacter()) {
53573
+ return true;
53574
+ }
53575
+ switch (this.peekChar(0)) {
53576
+ case ".":
53577
+ case "\\":
53578
+ case "[":
53579
+ case "(":
53580
+ return true;
53581
+ default:
53582
+ return false;
53583
+ }
53584
+ };
53585
+ RegExpParser.prototype.isAssertion = function() {
53586
+ switch (this.peekChar(0)) {
53587
+ case "^":
53588
+ case "$":
53589
+ return true;
53590
+ case "\\":
53591
+ switch (this.peekChar(1)) {
53592
+ case "b":
53593
+ case "B":
53594
+ return true;
53595
+ default:
53596
+ return false;
53597
+ }
53598
+ case "(":
53599
+ return this.peekChar(1) === "?" && (this.peekChar(2) === "=" || this.peekChar(2) === "!");
53600
+ default:
53601
+ return false;
53602
+ }
53603
+ };
53604
+ RegExpParser.prototype.isQuantifier = function() {
53605
+ var prevState = this.saveState();
53606
+ try {
53607
+ return this.quantifier(true) !== void 0;
53608
+ } catch (e) {
53609
+ return false;
53610
+ } finally {
53611
+ this.restoreState(prevState);
53612
+ }
53613
+ };
53614
+ RegExpParser.prototype.isPatternCharacter = function() {
53615
+ switch (this.peekChar()) {
53616
+ case "^":
53617
+ case "$":
53618
+ case "\\":
53619
+ case ".":
53620
+ case "*":
53621
+ case "+":
53622
+ case "?":
53623
+ case "(":
53624
+ case ")":
53625
+ case "[":
53626
+ case "|":
53627
+ case "/":
53628
+ case "\n":
53629
+ case "\r":
53630
+ case "\u2028":
53631
+ case "\u2029":
53632
+ return false;
53633
+ default:
53634
+ return true;
53635
+ }
53636
+ };
53637
+ RegExpParser.prototype.parseHexDigits = function(howMany) {
53638
+ var hexString = "";
53639
+ for (var i3 = 0; i3 < howMany; i3++) {
53640
+ var hexChar = this.popChar();
53641
+ if (hexDigitPattern.test(hexChar) === false) {
53642
+ throw Error("Expecting a HexDecimal digits");
53643
+ }
53644
+ hexString += hexChar;
53645
+ }
53646
+ var charCode = parseInt(hexString, 16);
53647
+ return { type: "Character", value: charCode };
53648
+ };
53649
+ RegExpParser.prototype.peekChar = function(howMuch) {
53650
+ if (howMuch === void 0) {
53651
+ howMuch = 0;
53652
+ }
53653
+ return this.input[this.idx + howMuch];
53654
+ };
53655
+ RegExpParser.prototype.popChar = function() {
53656
+ var nextChar = this.peekChar(0);
53657
+ this.consumeChar();
53658
+ return nextChar;
53659
+ };
53660
+ RegExpParser.prototype.consumeChar = function(char) {
53661
+ if (char !== void 0 && this.input[this.idx] !== char) {
53662
+ throw Error(
53663
+ "Expected: '" + char + "' but found: '" + this.input[this.idx] + "' at offset: " + this.idx
53664
+ );
53665
+ }
53666
+ if (this.idx >= this.input.length) {
53667
+ throw Error("Unexpected end of input");
53668
+ }
53669
+ this.idx++;
53670
+ };
53671
+ RegExpParser.prototype.loc = function(begin) {
53672
+ return { begin, end: this.idx };
53673
+ };
53674
+ var hexDigitPattern = /[0-9a-fA-F]/;
53675
+ var decimalPattern = /[0-9]/;
53676
+ var decimalPatternNoZero = /[1-9]/;
53677
+ function cc(char) {
53678
+ return char.charCodeAt(0);
53679
+ }
53680
+ function insertToSet(item, set) {
53681
+ if (item.length !== void 0) {
53682
+ item.forEach(function(subItem) {
53683
+ set.push(subItem);
53684
+ });
53685
+ } else {
53686
+ set.push(item);
53687
+ }
53688
+ }
53689
+ function addFlag(flagObj, flagKey) {
53690
+ if (flagObj[flagKey] === true) {
53691
+ throw "duplicate flag " + flagKey;
53692
+ }
53693
+ flagObj[flagKey] = true;
53694
+ }
53695
+ function ASSERT_EXISTS(obj) {
53696
+ if (obj === void 0) {
53697
+ throw Error("Internal Error - Should never get here!");
53698
+ }
53699
+ }
53700
+ function ASSERT_NEVER_REACH_HERE() {
53701
+ throw Error("Internal Error - Should never get here!");
53702
+ }
53703
+ var i2;
53704
+ var digitsCharCodes = [];
53705
+ for (i2 = cc("0"); i2 <= cc("9"); i2++) {
53706
+ digitsCharCodes.push(i2);
53707
+ }
53708
+ var wordCharCodes = [cc("_")].concat(digitsCharCodes);
53709
+ for (i2 = cc("a"); i2 <= cc("z"); i2++) {
53710
+ wordCharCodes.push(i2);
53711
+ }
53712
+ for (i2 = cc("A"); i2 <= cc("Z"); i2++) {
53713
+ wordCharCodes.push(i2);
53714
+ }
53715
+ var whitespaceCodes = [
53716
+ cc(" "),
53717
+ cc("\f"),
53718
+ cc("\n"),
53719
+ cc("\r"),
53720
+ cc(" "),
53721
+ cc("\v"),
53722
+ cc(" "),
53723
+ cc(" "),
53724
+ cc(" "),
53725
+ cc(" "),
53726
+ cc(" "),
53727
+ cc(" "),
53728
+ cc(" "),
53729
+ cc(" "),
53730
+ cc(" "),
53731
+ cc(" "),
53732
+ cc(" "),
53733
+ cc(" "),
53734
+ cc(" "),
53735
+ cc(" "),
53736
+ cc("\u2028"),
53737
+ cc("\u2029"),
53738
+ cc(" "),
53739
+ cc(" "),
53740
+ cc(" "),
53741
+ cc("\uFEFF")
53742
+ ];
53743
+ function BaseRegExpVisitor() {
53744
+ }
53745
+ BaseRegExpVisitor.prototype.visitChildren = function(node) {
53746
+ for (var key in node) {
53747
+ var child = node[key];
53748
+ if (node.hasOwnProperty(key)) {
53749
+ if (child.type !== void 0) {
53750
+ this.visit(child);
53751
+ } else if (Array.isArray(child)) {
53752
+ child.forEach(function(subChild) {
53753
+ this.visit(subChild);
53754
+ }, this);
53755
+ }
53756
+ }
53757
+ }
53758
+ };
53759
+ BaseRegExpVisitor.prototype.visit = function(node) {
53760
+ switch (node.type) {
53761
+ case "Pattern":
53762
+ this.visitPattern(node);
53763
+ break;
53764
+ case "Flags":
53765
+ this.visitFlags(node);
53766
+ break;
53767
+ case "Disjunction":
53768
+ this.visitDisjunction(node);
53769
+ break;
53770
+ case "Alternative":
53771
+ this.visitAlternative(node);
53772
+ break;
53773
+ case "StartAnchor":
53774
+ this.visitStartAnchor(node);
53775
+ break;
53776
+ case "EndAnchor":
53777
+ this.visitEndAnchor(node);
53778
+ break;
53779
+ case "WordBoundary":
53780
+ this.visitWordBoundary(node);
53781
+ break;
53782
+ case "NonWordBoundary":
53783
+ this.visitNonWordBoundary(node);
53784
+ break;
53785
+ case "Lookahead":
53786
+ this.visitLookahead(node);
53787
+ break;
53788
+ case "NegativeLookahead":
53789
+ this.visitNegativeLookahead(node);
53790
+ break;
53791
+ case "Character":
53792
+ this.visitCharacter(node);
53793
+ break;
53794
+ case "Set":
53795
+ this.visitSet(node);
53796
+ break;
53797
+ case "Group":
53798
+ this.visitGroup(node);
53799
+ break;
53800
+ case "GroupBackReference":
53801
+ this.visitGroupBackReference(node);
53802
+ break;
53803
+ case "Quantifier":
53804
+ this.visitQuantifier(node);
53805
+ break;
53806
+ }
53807
+ this.visitChildren(node);
53808
+ };
53809
+ BaseRegExpVisitor.prototype.visitPattern = function(node) {
53810
+ };
53811
+ BaseRegExpVisitor.prototype.visitFlags = function(node) {
53812
+ };
53813
+ BaseRegExpVisitor.prototype.visitDisjunction = function(node) {
53814
+ };
53815
+ BaseRegExpVisitor.prototype.visitAlternative = function(node) {
53816
+ };
53817
+ BaseRegExpVisitor.prototype.visitStartAnchor = function(node) {
53818
+ };
53819
+ BaseRegExpVisitor.prototype.visitEndAnchor = function(node) {
53820
+ };
53821
+ BaseRegExpVisitor.prototype.visitWordBoundary = function(node) {
53822
+ };
53823
+ BaseRegExpVisitor.prototype.visitNonWordBoundary = function(node) {
53824
+ };
53825
+ BaseRegExpVisitor.prototype.visitLookahead = function(node) {
53826
+ };
53827
+ BaseRegExpVisitor.prototype.visitNegativeLookahead = function(node) {
53828
+ };
53829
+ BaseRegExpVisitor.prototype.visitCharacter = function(node) {
53830
+ };
53831
+ BaseRegExpVisitor.prototype.visitSet = function(node) {
53832
+ };
53833
+ BaseRegExpVisitor.prototype.visitGroup = function(node) {
53834
+ };
53835
+ BaseRegExpVisitor.prototype.visitGroupBackReference = function(node) {
53836
+ };
53837
+ BaseRegExpVisitor.prototype.visitQuantifier = function(node) {
53838
+ };
53839
+ return {
53840
+ RegExpParser,
53841
+ BaseRegExpVisitor,
53842
+ VERSION: "0.5.0"
53843
+ };
53844
+ }
53845
+ );
53846
+ })(regexpToAst);
53847
+ var regexpToAstExports = regexpToAst.exports;
53010
53848
  var reg_exp = {};
53011
53849
  var reg_exp_parser = {};
53012
53850
  Object.defineProperty(reg_exp_parser, "__esModule", { value: true });
53013
53851
  reg_exp_parser.clearRegExpParserCache = reg_exp_parser.getRegExpAst = void 0;
53014
- var regexp_to_ast_1 = require$$0$2;
53852
+ var regexp_to_ast_1 = regexpToAstExports;
53015
53853
  var regExpAstCache = {};
53016
53854
  var regExpParser = new regexp_to_ast_1.RegExpParser();
53017
53855
  function getRegExpAst(regExp) {
@@ -53061,7 +53899,7 @@ function requireReg_exp() {
53061
53899
  };
53062
53900
  Object.defineProperty(exports2, "__esModule", { value: true });
53063
53901
  exports2.canMatchCharCode = exports2.firstCharOptimizedIndices = exports2.getOptimizedStartCodesIndices = exports2.failedOptimizationPrefixMsg = void 0;
53064
- var regexp_to_ast_12 = require$$0$2;
53902
+ var regexp_to_ast_12 = regexpToAstExports;
53065
53903
  var isArray_12 = __importDefault2(require$$1$1);
53066
53904
  var every_12 = __importDefault2(require$$2$2);
53067
53905
  var forEach_12 = __importDefault2(require$$1);
@@ -53310,10 +54148,10 @@ function requireLexer() {
53310
54148
  };
53311
54149
  Object.defineProperty(exports2, "__esModule", { value: true });
53312
54150
  exports2.charCodeToOptimizedIndex = exports2.minOptimizationVal = exports2.buildLineBreakIssueMessage = exports2.LineTerminatorOptimizedTester = exports2.isShortPattern = exports2.isCustomPattern = exports2.cloneEmptyGroups = exports2.performWarningRuntimeChecks = exports2.performRuntimeChecks = exports2.addStickyFlag = exports2.addStartOfInput = exports2.findUnreachablePatterns = exports2.findModesThatDoNotExist = exports2.findInvalidGroupType = exports2.findDuplicatePatterns = exports2.findUnsupportedFlags = exports2.findStartOfInputAnchor = exports2.findEmptyMatchRegExps = exports2.findEndOfInputAnchor = exports2.findInvalidPatterns = exports2.findMissingPatterns = exports2.validatePatterns = exports2.analyzeTokenTypes = exports2.enableSticky = exports2.disableSticky = exports2.SUPPORT_STICKY = exports2.MODES = exports2.DEFAULT_MODE = void 0;
53313
- var regexp_to_ast_12 = require$$0$2;
54151
+ var regexp_to_ast_12 = regexpToAstExports;
53314
54152
  var lexer_public_1 = requireLexer_public();
53315
54153
  var first_12 = __importDefault2(require$$1$2);
53316
- var isEmpty_12 = __importDefault2(require$$0$3);
54154
+ var isEmpty_12 = __importDefault2(require$$0$2);
53317
54155
  var compact_1 = __importDefault2(require$$1$3);
53318
54156
  var isArray_12 = __importDefault2(require$$1$1);
53319
54157
  var values_12 = __importDefault2(require$$3$2);
@@ -54077,7 +54915,7 @@ var tokens = {};
54077
54915
  };
54078
54916
  Object.defineProperty(exports2, "__esModule", { value: true });
54079
54917
  exports2.isTokenType = exports2.hasExtendingTokensTypesMapProperty = exports2.hasExtendingTokensTypesProperty = exports2.hasCategoriesProperty = exports2.hasShortKeyProperty = exports2.singleAssignCategoriesToksMap = exports2.assignCategoriesMapProp = exports2.assignCategoriesTokensProp = exports2.assignTokenDefaultProps = exports2.expandCategories = exports2.augmentTokenTypes = exports2.tokenIdxToClass = exports2.tokenShortNameIdx = exports2.tokenStructuredMatcherNoCategories = exports2.tokenStructuredMatcher = void 0;
54080
- var isEmpty_12 = __importDefault2(require$$0$3);
54918
+ var isEmpty_12 = __importDefault2(require$$0$2);
54081
54919
  var compact_1 = __importDefault2(require$$1$3);
54082
54920
  var isArray_12 = __importDefault2(require$$1$1);
54083
54921
  var flatten_12 = __importDefault2(require$$3$1);
@@ -54224,7 +55062,7 @@ function requireLexer_public() {
54224
55062
  exports2.Lexer = exports2.LexerDefinitionErrorType = void 0;
54225
55063
  var lexer_1 = requireLexer();
54226
55064
  var noop_1 = __importDefault2(require$$1$5);
54227
- var isEmpty_12 = __importDefault2(require$$0$3);
55065
+ var isEmpty_12 = __importDefault2(require$$0$2);
54228
55066
  var isArray_12 = __importDefault2(require$$1$1);
54229
55067
  var last_12 = __importDefault2(require$$4$3);
54230
55068
  var reject_1 = __importDefault2(require$$5$1);
@@ -55169,7 +56007,7 @@ Object.defineProperty(interpreter, "__esModule", { value: true });
55169
56007
  interpreter.nextPossibleTokensAfter = interpreter.possiblePathsFrom = interpreter.NextTerminalAfterAtLeastOneSepWalker = interpreter.NextTerminalAfterAtLeastOneWalker = interpreter.NextTerminalAfterManySepWalker = interpreter.NextTerminalAfterManyWalker = interpreter.AbstractNextTerminalAfterProductionWalker = interpreter.NextAfterTokenWalker = interpreter.AbstractNextPossibleTokensWalker = void 0;
55170
56008
  var rest_1 = rest;
55171
56009
  var first_1$1 = __importDefault$4(require$$1$2);
55172
- var isEmpty_1 = __importDefault$4(require$$0$3);
56010
+ var isEmpty_1 = __importDefault$4(require$$0$2);
55173
56011
  var dropRight_1 = __importDefault$4(require$$3$4);
55174
56012
  var drop_1 = __importDefault$4(require$$0$1);
55175
56013
  var last_1 = __importDefault$4(require$$4$3);
@@ -55678,7 +56516,7 @@ function expandTopLevelRule(topRule, currIdx, currRuleStack, currOccurrenceStack
55678
56516
  };
55679
56517
  Object.defineProperty(exports2, "__esModule", { value: true });
55680
56518
  exports2.areTokenCategoriesNotUsed = exports2.isStrictPrefixOfPath = exports2.containsPath = exports2.getLookaheadPathsForOptionalProd = exports2.getLookaheadPathsForOr = exports2.lookAheadSequenceFromAlternatives = exports2.buildSingleAlternativeLookaheadFunction = exports2.buildAlternativesLookAheadFunc = exports2.buildLookaheadFuncForOptionalProd = exports2.buildLookaheadFuncForOr = exports2.getLookaheadPaths = exports2.getProdType = exports2.PROD_TYPE = void 0;
55681
- var isEmpty_12 = __importDefault2(require$$0$3);
56519
+ var isEmpty_12 = __importDefault2(require$$0$2);
55682
56520
  var flatten_12 = __importDefault2(require$$3$1);
55683
56521
  var every_12 = __importDefault2(require$$2$2);
55684
56522
  var map_12 = __importDefault2(require$$2);
@@ -56142,7 +56980,7 @@ function requireChecks() {
56142
56980
  Object.defineProperty(checks, "__esModule", { value: true });
56143
56981
  checks.checkPrefixAlternativesAmbiguities = checks.validateSomeNonEmptyLookaheadPath = checks.validateTooManyAlts = checks.RepetitionCollector = checks.validateAmbiguousAlternationAlternatives = checks.validateEmptyOrAlternative = checks.getFirstNoneTerminal = checks.validateNoLeftRecursion = checks.validateRuleIsOverridden = checks.validateRuleDoesNotAlreadyExist = checks.OccurrenceValidationCollector = checks.identifyProductionForDuplicates = checks.validateGrammar = checks.validateLookahead = void 0;
56144
56982
  var first_12 = __importDefault2(require$$1$2);
56145
- var isEmpty_12 = __importDefault2(require$$0$3);
56983
+ var isEmpty_12 = __importDefault2(require$$0$2);
56146
56984
  var drop_12 = __importDefault2(require$$0$1);
56147
56985
  var flatten_12 = __importDefault2(require$$3$1);
56148
56986
  var filter_1 = __importDefault2(require$$20);
@@ -56797,7 +57635,7 @@ function requireRecoverable() {
56797
57635
  Object.defineProperty(exports2, "__esModule", { value: true });
56798
57636
  exports2.attemptInRepetitionRecovery = exports2.Recoverable = exports2.InRuleRecoveryException = exports2.IN_RULE_RECOVERY_EXCEPTION = exports2.EOF_FOLLOW_KEY = void 0;
56799
57637
  var tokens_public_1 = tokens_public;
56800
- var isEmpty_12 = __importDefault2(require$$0$3);
57638
+ var isEmpty_12 = __importDefault2(require$$0$2);
56801
57639
  var dropRight_12 = __importDefault2(require$$3$4);
56802
57640
  var flatten_12 = __importDefault2(require$$3$1);
56803
57641
  var map_12 = __importDefault2(require$$2);
@@ -57113,7 +57951,7 @@ function requireLlk_lookahead() {
57113
57951
  Object.defineProperty(llk_lookahead, "__esModule", { value: true });
57114
57952
  llk_lookahead.LLkLookaheadStrategy = void 0;
57115
57953
  var flatMap_1 = __importDefault2(require$$14$1);
57116
- var isEmpty_12 = __importDefault2(require$$0$3);
57954
+ var isEmpty_12 = __importDefault2(require$$0$2);
57117
57955
  var errors_public_1 = errors_public;
57118
57956
  var parser_1 = requireParser();
57119
57957
  var checks_1 = requireChecks();
@@ -57402,7 +58240,7 @@ lang_extensions.defineNameProp = defineNameProp;
57402
58240
  };
57403
58241
  Object.defineProperty(exports2, "__esModule", { value: true });
57404
58242
  exports2.validateMissingCstMethods = exports2.validateVisitor = exports2.CstVisitorDefinitionError = exports2.createBaseVisitorConstructorWithDefaults = exports2.createBaseSemanticVisitorConstructor = exports2.defaultVisit = void 0;
57405
- var isEmpty_12 = __importDefault2(require$$0$3);
58243
+ var isEmpty_12 = __importDefault2(require$$0$2);
57406
58244
  var compact_1 = __importDefault2(require$$1$3);
57407
58245
  var isArray_12 = __importDefault2(require$$1$1);
57408
58246
  var map_12 = __importDefault2(require$$2);
@@ -58108,7 +58946,7 @@ function requireRecognizer_engine() {
58108
58946
  };
58109
58947
  Object.defineProperty(recognizer_engine, "__esModule", { value: true });
58110
58948
  recognizer_engine.RecognizerEngine = void 0;
58111
- var isEmpty_12 = __importDefault2(require$$0$3);
58949
+ var isEmpty_12 = __importDefault2(require$$0$2);
58112
58950
  var isArray_12 = __importDefault2(require$$1$1);
58113
58951
  var flatten_12 = __importDefault2(require$$3$1);
58114
58952
  var every_12 = __importDefault2(require$$2$2);
@@ -59095,7 +59933,7 @@ function requireParser() {
59095
59933
  };
59096
59934
  Object.defineProperty(exports2, "__esModule", { value: true });
59097
59935
  exports2.EmbeddedActionsParser = exports2.CstParser = exports2.Parser = exports2.EMPTY_ALT = exports2.ParserDefinitionErrorType = exports2.DEFAULT_RULE_CONFIG = exports2.DEFAULT_PARSER_CONFIG = exports2.END_OF_FILE = void 0;
59098
- var isEmpty_12 = __importDefault2(require$$0$3);
59936
+ var isEmpty_12 = __importDefault2(require$$0$2);
59099
59937
  var map_12 = __importDefault2(require$$2);
59100
59938
  var forEach_12 = __importDefault2(require$$1);
59101
59939
  var values_12 = __importDefault2(require$$3$2);