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.js CHANGED
@@ -9,7 +9,7 @@ import { Loader, FileLoader, BufferGeometry, Vector3, Float32BufferAttribute, An
9
9
  import potpack from "potpack";
10
10
  import { strToU8, zipSync, unzlibSync, gunzipSync, unzipSync, strFromU8 } from "fflate";
11
11
  import { CharsetEncoder, Parser } from "mmd-parser";
12
- import require$$0$3 from "lodash/isEmpty";
12
+ import require$$0$2 from "lodash/isEmpty";
13
13
  import require$$2 from "lodash/map";
14
14
  import require$$1 from "lodash/forEach";
15
15
  import require$$3$2 from "lodash/values";
@@ -26,7 +26,6 @@ import require$$2$3 from "lodash/includes";
26
26
  import require$$3$1 from "lodash/flatten";
27
27
  import require$$4$1 from "lodash/uniq";
28
28
  import require$$2$4 from "lodash/isUndefined";
29
- import require$$0$2 from "regexp-to-ast";
30
29
  import require$$1$2 from "lodash/first";
31
30
  import require$$1$3 from "lodash/compact";
32
31
  import require$$1$1 from "lodash/isArray";
@@ -52989,11 +52988,850 @@ follow.buildInProdFollowPrefix = buildInProdFollowPrefix;
52989
52988
  var tokens_public = {};
52990
52989
  var lexer_public = {};
52991
52990
  var lexer = {};
52991
+ var regexpToAst = { exports: {} };
52992
+ (function(module) {
52993
+ (function(root, factory) {
52994
+ if (module.exports) {
52995
+ module.exports = factory();
52996
+ } else {
52997
+ root.regexpToAst = factory();
52998
+ }
52999
+ })(
53000
+ typeof self !== "undefined" ? (
53001
+ // istanbul ignore next
53002
+ self
53003
+ ) : commonjsGlobal,
53004
+ function() {
53005
+ function RegExpParser() {
53006
+ }
53007
+ RegExpParser.prototype.saveState = function() {
53008
+ return {
53009
+ idx: this.idx,
53010
+ input: this.input,
53011
+ groupIdx: this.groupIdx
53012
+ };
53013
+ };
53014
+ RegExpParser.prototype.restoreState = function(newState) {
53015
+ this.idx = newState.idx;
53016
+ this.input = newState.input;
53017
+ this.groupIdx = newState.groupIdx;
53018
+ };
53019
+ RegExpParser.prototype.pattern = function(input) {
53020
+ this.idx = 0;
53021
+ this.input = input;
53022
+ this.groupIdx = 0;
53023
+ this.consumeChar("/");
53024
+ var value = this.disjunction();
53025
+ this.consumeChar("/");
53026
+ var flags = {
53027
+ type: "Flags",
53028
+ loc: { begin: this.idx, end: input.length },
53029
+ global: false,
53030
+ ignoreCase: false,
53031
+ multiLine: false,
53032
+ unicode: false,
53033
+ sticky: false
53034
+ };
53035
+ while (this.isRegExpFlag()) {
53036
+ switch (this.popChar()) {
53037
+ case "g":
53038
+ addFlag(flags, "global");
53039
+ break;
53040
+ case "i":
53041
+ addFlag(flags, "ignoreCase");
53042
+ break;
53043
+ case "m":
53044
+ addFlag(flags, "multiLine");
53045
+ break;
53046
+ case "u":
53047
+ addFlag(flags, "unicode");
53048
+ break;
53049
+ case "y":
53050
+ addFlag(flags, "sticky");
53051
+ break;
53052
+ }
53053
+ }
53054
+ if (this.idx !== this.input.length) {
53055
+ throw Error(
53056
+ "Redundant input: " + this.input.substring(this.idx)
53057
+ );
53058
+ }
53059
+ return {
53060
+ type: "Pattern",
53061
+ flags,
53062
+ value,
53063
+ loc: this.loc(0)
53064
+ };
53065
+ };
53066
+ RegExpParser.prototype.disjunction = function() {
53067
+ var alts = [];
53068
+ var begin = this.idx;
53069
+ alts.push(this.alternative());
53070
+ while (this.peekChar() === "|") {
53071
+ this.consumeChar("|");
53072
+ alts.push(this.alternative());
53073
+ }
53074
+ return { type: "Disjunction", value: alts, loc: this.loc(begin) };
53075
+ };
53076
+ RegExpParser.prototype.alternative = function() {
53077
+ var terms = [];
53078
+ var begin = this.idx;
53079
+ while (this.isTerm()) {
53080
+ terms.push(this.term());
53081
+ }
53082
+ return { type: "Alternative", value: terms, loc: this.loc(begin) };
53083
+ };
53084
+ RegExpParser.prototype.term = function() {
53085
+ if (this.isAssertion()) {
53086
+ return this.assertion();
53087
+ } else {
53088
+ return this.atom();
53089
+ }
53090
+ };
53091
+ RegExpParser.prototype.assertion = function() {
53092
+ var begin = this.idx;
53093
+ switch (this.popChar()) {
53094
+ case "^":
53095
+ return {
53096
+ type: "StartAnchor",
53097
+ loc: this.loc(begin)
53098
+ };
53099
+ case "$":
53100
+ return { type: "EndAnchor", loc: this.loc(begin) };
53101
+ case "\\":
53102
+ switch (this.popChar()) {
53103
+ case "b":
53104
+ return {
53105
+ type: "WordBoundary",
53106
+ loc: this.loc(begin)
53107
+ };
53108
+ case "B":
53109
+ return {
53110
+ type: "NonWordBoundary",
53111
+ loc: this.loc(begin)
53112
+ };
53113
+ }
53114
+ throw Error("Invalid Assertion Escape");
53115
+ case "(":
53116
+ this.consumeChar("?");
53117
+ var type;
53118
+ switch (this.popChar()) {
53119
+ case "=":
53120
+ type = "Lookahead";
53121
+ break;
53122
+ case "!":
53123
+ type = "NegativeLookahead";
53124
+ break;
53125
+ }
53126
+ ASSERT_EXISTS(type);
53127
+ var disjunction = this.disjunction();
53128
+ this.consumeChar(")");
53129
+ return {
53130
+ type,
53131
+ value: disjunction,
53132
+ loc: this.loc(begin)
53133
+ };
53134
+ }
53135
+ ASSERT_NEVER_REACH_HERE();
53136
+ };
53137
+ RegExpParser.prototype.quantifier = function(isBacktracking) {
53138
+ var range;
53139
+ var begin = this.idx;
53140
+ switch (this.popChar()) {
53141
+ case "*":
53142
+ range = {
53143
+ atLeast: 0,
53144
+ atMost: Infinity
53145
+ };
53146
+ break;
53147
+ case "+":
53148
+ range = {
53149
+ atLeast: 1,
53150
+ atMost: Infinity
53151
+ };
53152
+ break;
53153
+ case "?":
53154
+ range = {
53155
+ atLeast: 0,
53156
+ atMost: 1
53157
+ };
53158
+ break;
53159
+ case "{":
53160
+ var atLeast = this.integerIncludingZero();
53161
+ switch (this.popChar()) {
53162
+ case "}":
53163
+ range = {
53164
+ atLeast,
53165
+ atMost: atLeast
53166
+ };
53167
+ break;
53168
+ case ",":
53169
+ var atMost;
53170
+ if (this.isDigit()) {
53171
+ atMost = this.integerIncludingZero();
53172
+ range = {
53173
+ atLeast,
53174
+ atMost
53175
+ };
53176
+ } else {
53177
+ range = {
53178
+ atLeast,
53179
+ atMost: Infinity
53180
+ };
53181
+ }
53182
+ this.consumeChar("}");
53183
+ break;
53184
+ }
53185
+ if (isBacktracking === true && range === void 0) {
53186
+ return void 0;
53187
+ }
53188
+ ASSERT_EXISTS(range);
53189
+ break;
53190
+ }
53191
+ if (isBacktracking === true && range === void 0) {
53192
+ return void 0;
53193
+ }
53194
+ ASSERT_EXISTS(range);
53195
+ if (this.peekChar(0) === "?") {
53196
+ this.consumeChar("?");
53197
+ range.greedy = false;
53198
+ } else {
53199
+ range.greedy = true;
53200
+ }
53201
+ range.type = "Quantifier";
53202
+ range.loc = this.loc(begin);
53203
+ return range;
53204
+ };
53205
+ RegExpParser.prototype.atom = function() {
53206
+ var atom;
53207
+ var begin = this.idx;
53208
+ switch (this.peekChar()) {
53209
+ case ".":
53210
+ atom = this.dotAll();
53211
+ break;
53212
+ case "\\":
53213
+ atom = this.atomEscape();
53214
+ break;
53215
+ case "[":
53216
+ atom = this.characterClass();
53217
+ break;
53218
+ case "(":
53219
+ atom = this.group();
53220
+ break;
53221
+ }
53222
+ if (atom === void 0 && this.isPatternCharacter()) {
53223
+ atom = this.patternCharacter();
53224
+ }
53225
+ ASSERT_EXISTS(atom);
53226
+ atom.loc = this.loc(begin);
53227
+ if (this.isQuantifier()) {
53228
+ atom.quantifier = this.quantifier();
53229
+ }
53230
+ return atom;
53231
+ };
53232
+ RegExpParser.prototype.dotAll = function() {
53233
+ this.consumeChar(".");
53234
+ return {
53235
+ type: "Set",
53236
+ complement: true,
53237
+ value: [cc("\n"), cc("\r"), cc("\u2028"), cc("\u2029")]
53238
+ };
53239
+ };
53240
+ RegExpParser.prototype.atomEscape = function() {
53241
+ this.consumeChar("\\");
53242
+ switch (this.peekChar()) {
53243
+ case "1":
53244
+ case "2":
53245
+ case "3":
53246
+ case "4":
53247
+ case "5":
53248
+ case "6":
53249
+ case "7":
53250
+ case "8":
53251
+ case "9":
53252
+ return this.decimalEscapeAtom();
53253
+ case "d":
53254
+ case "D":
53255
+ case "s":
53256
+ case "S":
53257
+ case "w":
53258
+ case "W":
53259
+ return this.characterClassEscape();
53260
+ case "f":
53261
+ case "n":
53262
+ case "r":
53263
+ case "t":
53264
+ case "v":
53265
+ return this.controlEscapeAtom();
53266
+ case "c":
53267
+ return this.controlLetterEscapeAtom();
53268
+ case "0":
53269
+ return this.nulCharacterAtom();
53270
+ case "x":
53271
+ return this.hexEscapeSequenceAtom();
53272
+ case "u":
53273
+ return this.regExpUnicodeEscapeSequenceAtom();
53274
+ default:
53275
+ return this.identityEscapeAtom();
53276
+ }
53277
+ };
53278
+ RegExpParser.prototype.decimalEscapeAtom = function() {
53279
+ var value = this.positiveInteger();
53280
+ return { type: "GroupBackReference", value };
53281
+ };
53282
+ RegExpParser.prototype.characterClassEscape = function() {
53283
+ var set;
53284
+ var complement = false;
53285
+ switch (this.popChar()) {
53286
+ case "d":
53287
+ set = digitsCharCodes;
53288
+ break;
53289
+ case "D":
53290
+ set = digitsCharCodes;
53291
+ complement = true;
53292
+ break;
53293
+ case "s":
53294
+ set = whitespaceCodes;
53295
+ break;
53296
+ case "S":
53297
+ set = whitespaceCodes;
53298
+ complement = true;
53299
+ break;
53300
+ case "w":
53301
+ set = wordCharCodes;
53302
+ break;
53303
+ case "W":
53304
+ set = wordCharCodes;
53305
+ complement = true;
53306
+ break;
53307
+ }
53308
+ ASSERT_EXISTS(set);
53309
+ return { type: "Set", value: set, complement };
53310
+ };
53311
+ RegExpParser.prototype.controlEscapeAtom = function() {
53312
+ var escapeCode;
53313
+ switch (this.popChar()) {
53314
+ case "f":
53315
+ escapeCode = cc("\f");
53316
+ break;
53317
+ case "n":
53318
+ escapeCode = cc("\n");
53319
+ break;
53320
+ case "r":
53321
+ escapeCode = cc("\r");
53322
+ break;
53323
+ case "t":
53324
+ escapeCode = cc(" ");
53325
+ break;
53326
+ case "v":
53327
+ escapeCode = cc("\v");
53328
+ break;
53329
+ }
53330
+ ASSERT_EXISTS(escapeCode);
53331
+ return { type: "Character", value: escapeCode };
53332
+ };
53333
+ RegExpParser.prototype.controlLetterEscapeAtom = function() {
53334
+ this.consumeChar("c");
53335
+ var letter = this.popChar();
53336
+ if (/[a-zA-Z]/.test(letter) === false) {
53337
+ throw Error("Invalid ");
53338
+ }
53339
+ var letterCode = letter.toUpperCase().charCodeAt(0) - 64;
53340
+ return { type: "Character", value: letterCode };
53341
+ };
53342
+ RegExpParser.prototype.nulCharacterAtom = function() {
53343
+ this.consumeChar("0");
53344
+ return { type: "Character", value: cc("\0") };
53345
+ };
53346
+ RegExpParser.prototype.hexEscapeSequenceAtom = function() {
53347
+ this.consumeChar("x");
53348
+ return this.parseHexDigits(2);
53349
+ };
53350
+ RegExpParser.prototype.regExpUnicodeEscapeSequenceAtom = function() {
53351
+ this.consumeChar("u");
53352
+ return this.parseHexDigits(4);
53353
+ };
53354
+ RegExpParser.prototype.identityEscapeAtom = function() {
53355
+ var escapedChar = this.popChar();
53356
+ return { type: "Character", value: cc(escapedChar) };
53357
+ };
53358
+ RegExpParser.prototype.classPatternCharacterAtom = function() {
53359
+ switch (this.peekChar()) {
53360
+ case "\n":
53361
+ case "\r":
53362
+ case "\u2028":
53363
+ case "\u2029":
53364
+ case "\\":
53365
+ case "]":
53366
+ throw Error("TBD");
53367
+ default:
53368
+ var nextChar = this.popChar();
53369
+ return { type: "Character", value: cc(nextChar) };
53370
+ }
53371
+ };
53372
+ RegExpParser.prototype.characterClass = function() {
53373
+ var set = [];
53374
+ var complement = false;
53375
+ this.consumeChar("[");
53376
+ if (this.peekChar(0) === "^") {
53377
+ this.consumeChar("^");
53378
+ complement = true;
53379
+ }
53380
+ while (this.isClassAtom()) {
53381
+ var from = this.classAtom();
53382
+ var isFromSingleChar = from.type === "Character";
53383
+ if (isFromSingleChar && this.isRangeDash()) {
53384
+ this.consumeChar("-");
53385
+ var to = this.classAtom();
53386
+ var isToSingleChar = to.type === "Character";
53387
+ if (isToSingleChar) {
53388
+ if (to.value < from.value) {
53389
+ throw Error("Range out of order in character class");
53390
+ }
53391
+ set.push({ from: from.value, to: to.value });
53392
+ } else {
53393
+ insertToSet(from.value, set);
53394
+ set.push(cc("-"));
53395
+ insertToSet(to.value, set);
53396
+ }
53397
+ } else {
53398
+ insertToSet(from.value, set);
53399
+ }
53400
+ }
53401
+ this.consumeChar("]");
53402
+ return { type: "Set", complement, value: set };
53403
+ };
53404
+ RegExpParser.prototype.classAtom = function() {
53405
+ switch (this.peekChar()) {
53406
+ case "]":
53407
+ case "\n":
53408
+ case "\r":
53409
+ case "\u2028":
53410
+ case "\u2029":
53411
+ throw Error("TBD");
53412
+ case "\\":
53413
+ return this.classEscape();
53414
+ default:
53415
+ return this.classPatternCharacterAtom();
53416
+ }
53417
+ };
53418
+ RegExpParser.prototype.classEscape = function() {
53419
+ this.consumeChar("\\");
53420
+ switch (this.peekChar()) {
53421
+ case "b":
53422
+ this.consumeChar("b");
53423
+ return { type: "Character", value: cc("\b") };
53424
+ case "d":
53425
+ case "D":
53426
+ case "s":
53427
+ case "S":
53428
+ case "w":
53429
+ case "W":
53430
+ return this.characterClassEscape();
53431
+ case "f":
53432
+ case "n":
53433
+ case "r":
53434
+ case "t":
53435
+ case "v":
53436
+ return this.controlEscapeAtom();
53437
+ case "c":
53438
+ return this.controlLetterEscapeAtom();
53439
+ case "0":
53440
+ return this.nulCharacterAtom();
53441
+ case "x":
53442
+ return this.hexEscapeSequenceAtom();
53443
+ case "u":
53444
+ return this.regExpUnicodeEscapeSequenceAtom();
53445
+ default:
53446
+ return this.identityEscapeAtom();
53447
+ }
53448
+ };
53449
+ RegExpParser.prototype.group = function() {
53450
+ var capturing = true;
53451
+ this.consumeChar("(");
53452
+ switch (this.peekChar(0)) {
53453
+ case "?":
53454
+ this.consumeChar("?");
53455
+ this.consumeChar(":");
53456
+ capturing = false;
53457
+ break;
53458
+ default:
53459
+ this.groupIdx++;
53460
+ break;
53461
+ }
53462
+ var value = this.disjunction();
53463
+ this.consumeChar(")");
53464
+ var groupAst = {
53465
+ type: "Group",
53466
+ capturing,
53467
+ value
53468
+ };
53469
+ if (capturing) {
53470
+ groupAst.idx = this.groupIdx;
53471
+ }
53472
+ return groupAst;
53473
+ };
53474
+ RegExpParser.prototype.positiveInteger = function() {
53475
+ var number = this.popChar();
53476
+ if (decimalPatternNoZero.test(number) === false) {
53477
+ throw Error("Expecting a positive integer");
53478
+ }
53479
+ while (decimalPattern.test(this.peekChar(0))) {
53480
+ number += this.popChar();
53481
+ }
53482
+ return parseInt(number, 10);
53483
+ };
53484
+ RegExpParser.prototype.integerIncludingZero = function() {
53485
+ var number = this.popChar();
53486
+ if (decimalPattern.test(number) === false) {
53487
+ throw Error("Expecting an integer");
53488
+ }
53489
+ while (decimalPattern.test(this.peekChar(0))) {
53490
+ number += this.popChar();
53491
+ }
53492
+ return parseInt(number, 10);
53493
+ };
53494
+ RegExpParser.prototype.patternCharacter = function() {
53495
+ var nextChar = this.popChar();
53496
+ switch (nextChar) {
53497
+ case "\n":
53498
+ case "\r":
53499
+ case "\u2028":
53500
+ case "\u2029":
53501
+ case "^":
53502
+ case "$":
53503
+ case "\\":
53504
+ case ".":
53505
+ case "*":
53506
+ case "+":
53507
+ case "?":
53508
+ case "(":
53509
+ case ")":
53510
+ case "[":
53511
+ case "|":
53512
+ throw Error("TBD");
53513
+ default:
53514
+ return { type: "Character", value: cc(nextChar) };
53515
+ }
53516
+ };
53517
+ RegExpParser.prototype.isRegExpFlag = function() {
53518
+ switch (this.peekChar(0)) {
53519
+ case "g":
53520
+ case "i":
53521
+ case "m":
53522
+ case "u":
53523
+ case "y":
53524
+ return true;
53525
+ default:
53526
+ return false;
53527
+ }
53528
+ };
53529
+ RegExpParser.prototype.isRangeDash = function() {
53530
+ return this.peekChar() === "-" && this.isClassAtom(1);
53531
+ };
53532
+ RegExpParser.prototype.isDigit = function() {
53533
+ return decimalPattern.test(this.peekChar(0));
53534
+ };
53535
+ RegExpParser.prototype.isClassAtom = function(howMuch) {
53536
+ if (howMuch === void 0) {
53537
+ howMuch = 0;
53538
+ }
53539
+ switch (this.peekChar(howMuch)) {
53540
+ case "]":
53541
+ case "\n":
53542
+ case "\r":
53543
+ case "\u2028":
53544
+ case "\u2029":
53545
+ return false;
53546
+ default:
53547
+ return true;
53548
+ }
53549
+ };
53550
+ RegExpParser.prototype.isTerm = function() {
53551
+ return this.isAtom() || this.isAssertion();
53552
+ };
53553
+ RegExpParser.prototype.isAtom = function() {
53554
+ if (this.isPatternCharacter()) {
53555
+ return true;
53556
+ }
53557
+ switch (this.peekChar(0)) {
53558
+ case ".":
53559
+ case "\\":
53560
+ case "[":
53561
+ case "(":
53562
+ return true;
53563
+ default:
53564
+ return false;
53565
+ }
53566
+ };
53567
+ RegExpParser.prototype.isAssertion = function() {
53568
+ switch (this.peekChar(0)) {
53569
+ case "^":
53570
+ case "$":
53571
+ return true;
53572
+ case "\\":
53573
+ switch (this.peekChar(1)) {
53574
+ case "b":
53575
+ case "B":
53576
+ return true;
53577
+ default:
53578
+ return false;
53579
+ }
53580
+ case "(":
53581
+ return this.peekChar(1) === "?" && (this.peekChar(2) === "=" || this.peekChar(2) === "!");
53582
+ default:
53583
+ return false;
53584
+ }
53585
+ };
53586
+ RegExpParser.prototype.isQuantifier = function() {
53587
+ var prevState = this.saveState();
53588
+ try {
53589
+ return this.quantifier(true) !== void 0;
53590
+ } catch (e) {
53591
+ return false;
53592
+ } finally {
53593
+ this.restoreState(prevState);
53594
+ }
53595
+ };
53596
+ RegExpParser.prototype.isPatternCharacter = function() {
53597
+ switch (this.peekChar()) {
53598
+ case "^":
53599
+ case "$":
53600
+ case "\\":
53601
+ case ".":
53602
+ case "*":
53603
+ case "+":
53604
+ case "?":
53605
+ case "(":
53606
+ case ")":
53607
+ case "[":
53608
+ case "|":
53609
+ case "/":
53610
+ case "\n":
53611
+ case "\r":
53612
+ case "\u2028":
53613
+ case "\u2029":
53614
+ return false;
53615
+ default:
53616
+ return true;
53617
+ }
53618
+ };
53619
+ RegExpParser.prototype.parseHexDigits = function(howMany) {
53620
+ var hexString = "";
53621
+ for (var i3 = 0; i3 < howMany; i3++) {
53622
+ var hexChar = this.popChar();
53623
+ if (hexDigitPattern.test(hexChar) === false) {
53624
+ throw Error("Expecting a HexDecimal digits");
53625
+ }
53626
+ hexString += hexChar;
53627
+ }
53628
+ var charCode = parseInt(hexString, 16);
53629
+ return { type: "Character", value: charCode };
53630
+ };
53631
+ RegExpParser.prototype.peekChar = function(howMuch) {
53632
+ if (howMuch === void 0) {
53633
+ howMuch = 0;
53634
+ }
53635
+ return this.input[this.idx + howMuch];
53636
+ };
53637
+ RegExpParser.prototype.popChar = function() {
53638
+ var nextChar = this.peekChar(0);
53639
+ this.consumeChar();
53640
+ return nextChar;
53641
+ };
53642
+ RegExpParser.prototype.consumeChar = function(char) {
53643
+ if (char !== void 0 && this.input[this.idx] !== char) {
53644
+ throw Error(
53645
+ "Expected: '" + char + "' but found: '" + this.input[this.idx] + "' at offset: " + this.idx
53646
+ );
53647
+ }
53648
+ if (this.idx >= this.input.length) {
53649
+ throw Error("Unexpected end of input");
53650
+ }
53651
+ this.idx++;
53652
+ };
53653
+ RegExpParser.prototype.loc = function(begin) {
53654
+ return { begin, end: this.idx };
53655
+ };
53656
+ var hexDigitPattern = /[0-9a-fA-F]/;
53657
+ var decimalPattern = /[0-9]/;
53658
+ var decimalPatternNoZero = /[1-9]/;
53659
+ function cc(char) {
53660
+ return char.charCodeAt(0);
53661
+ }
53662
+ function insertToSet(item, set) {
53663
+ if (item.length !== void 0) {
53664
+ item.forEach(function(subItem) {
53665
+ set.push(subItem);
53666
+ });
53667
+ } else {
53668
+ set.push(item);
53669
+ }
53670
+ }
53671
+ function addFlag(flagObj, flagKey) {
53672
+ if (flagObj[flagKey] === true) {
53673
+ throw "duplicate flag " + flagKey;
53674
+ }
53675
+ flagObj[flagKey] = true;
53676
+ }
53677
+ function ASSERT_EXISTS(obj) {
53678
+ if (obj === void 0) {
53679
+ throw Error("Internal Error - Should never get here!");
53680
+ }
53681
+ }
53682
+ function ASSERT_NEVER_REACH_HERE() {
53683
+ throw Error("Internal Error - Should never get here!");
53684
+ }
53685
+ var i2;
53686
+ var digitsCharCodes = [];
53687
+ for (i2 = cc("0"); i2 <= cc("9"); i2++) {
53688
+ digitsCharCodes.push(i2);
53689
+ }
53690
+ var wordCharCodes = [cc("_")].concat(digitsCharCodes);
53691
+ for (i2 = cc("a"); i2 <= cc("z"); i2++) {
53692
+ wordCharCodes.push(i2);
53693
+ }
53694
+ for (i2 = cc("A"); i2 <= cc("Z"); i2++) {
53695
+ wordCharCodes.push(i2);
53696
+ }
53697
+ var whitespaceCodes = [
53698
+ cc(" "),
53699
+ cc("\f"),
53700
+ cc("\n"),
53701
+ cc("\r"),
53702
+ cc(" "),
53703
+ cc("\v"),
53704
+ cc(" "),
53705
+ cc(" "),
53706
+ cc(" "),
53707
+ cc(" "),
53708
+ cc(" "),
53709
+ cc(" "),
53710
+ cc(" "),
53711
+ cc(" "),
53712
+ cc(" "),
53713
+ cc(" "),
53714
+ cc(" "),
53715
+ cc(" "),
53716
+ cc(" "),
53717
+ cc(" "),
53718
+ cc("\u2028"),
53719
+ cc("\u2029"),
53720
+ cc(" "),
53721
+ cc(" "),
53722
+ cc(" "),
53723
+ cc("\uFEFF")
53724
+ ];
53725
+ function BaseRegExpVisitor() {
53726
+ }
53727
+ BaseRegExpVisitor.prototype.visitChildren = function(node) {
53728
+ for (var key in node) {
53729
+ var child = node[key];
53730
+ if (node.hasOwnProperty(key)) {
53731
+ if (child.type !== void 0) {
53732
+ this.visit(child);
53733
+ } else if (Array.isArray(child)) {
53734
+ child.forEach(function(subChild) {
53735
+ this.visit(subChild);
53736
+ }, this);
53737
+ }
53738
+ }
53739
+ }
53740
+ };
53741
+ BaseRegExpVisitor.prototype.visit = function(node) {
53742
+ switch (node.type) {
53743
+ case "Pattern":
53744
+ this.visitPattern(node);
53745
+ break;
53746
+ case "Flags":
53747
+ this.visitFlags(node);
53748
+ break;
53749
+ case "Disjunction":
53750
+ this.visitDisjunction(node);
53751
+ break;
53752
+ case "Alternative":
53753
+ this.visitAlternative(node);
53754
+ break;
53755
+ case "StartAnchor":
53756
+ this.visitStartAnchor(node);
53757
+ break;
53758
+ case "EndAnchor":
53759
+ this.visitEndAnchor(node);
53760
+ break;
53761
+ case "WordBoundary":
53762
+ this.visitWordBoundary(node);
53763
+ break;
53764
+ case "NonWordBoundary":
53765
+ this.visitNonWordBoundary(node);
53766
+ break;
53767
+ case "Lookahead":
53768
+ this.visitLookahead(node);
53769
+ break;
53770
+ case "NegativeLookahead":
53771
+ this.visitNegativeLookahead(node);
53772
+ break;
53773
+ case "Character":
53774
+ this.visitCharacter(node);
53775
+ break;
53776
+ case "Set":
53777
+ this.visitSet(node);
53778
+ break;
53779
+ case "Group":
53780
+ this.visitGroup(node);
53781
+ break;
53782
+ case "GroupBackReference":
53783
+ this.visitGroupBackReference(node);
53784
+ break;
53785
+ case "Quantifier":
53786
+ this.visitQuantifier(node);
53787
+ break;
53788
+ }
53789
+ this.visitChildren(node);
53790
+ };
53791
+ BaseRegExpVisitor.prototype.visitPattern = function(node) {
53792
+ };
53793
+ BaseRegExpVisitor.prototype.visitFlags = function(node) {
53794
+ };
53795
+ BaseRegExpVisitor.prototype.visitDisjunction = function(node) {
53796
+ };
53797
+ BaseRegExpVisitor.prototype.visitAlternative = function(node) {
53798
+ };
53799
+ BaseRegExpVisitor.prototype.visitStartAnchor = function(node) {
53800
+ };
53801
+ BaseRegExpVisitor.prototype.visitEndAnchor = function(node) {
53802
+ };
53803
+ BaseRegExpVisitor.prototype.visitWordBoundary = function(node) {
53804
+ };
53805
+ BaseRegExpVisitor.prototype.visitNonWordBoundary = function(node) {
53806
+ };
53807
+ BaseRegExpVisitor.prototype.visitLookahead = function(node) {
53808
+ };
53809
+ BaseRegExpVisitor.prototype.visitNegativeLookahead = function(node) {
53810
+ };
53811
+ BaseRegExpVisitor.prototype.visitCharacter = function(node) {
53812
+ };
53813
+ BaseRegExpVisitor.prototype.visitSet = function(node) {
53814
+ };
53815
+ BaseRegExpVisitor.prototype.visitGroup = function(node) {
53816
+ };
53817
+ BaseRegExpVisitor.prototype.visitGroupBackReference = function(node) {
53818
+ };
53819
+ BaseRegExpVisitor.prototype.visitQuantifier = function(node) {
53820
+ };
53821
+ return {
53822
+ RegExpParser,
53823
+ BaseRegExpVisitor,
53824
+ VERSION: "0.5.0"
53825
+ };
53826
+ }
53827
+ );
53828
+ })(regexpToAst);
53829
+ var regexpToAstExports = regexpToAst.exports;
52992
53830
  var reg_exp = {};
52993
53831
  var reg_exp_parser = {};
52994
53832
  Object.defineProperty(reg_exp_parser, "__esModule", { value: true });
52995
53833
  reg_exp_parser.clearRegExpParserCache = reg_exp_parser.getRegExpAst = void 0;
52996
- var regexp_to_ast_1 = require$$0$2;
53834
+ var regexp_to_ast_1 = regexpToAstExports;
52997
53835
  var regExpAstCache = {};
52998
53836
  var regExpParser = new regexp_to_ast_1.RegExpParser();
52999
53837
  function getRegExpAst(regExp) {
@@ -53043,7 +53881,7 @@ function requireReg_exp() {
53043
53881
  };
53044
53882
  Object.defineProperty(exports, "__esModule", { value: true });
53045
53883
  exports.canMatchCharCode = exports.firstCharOptimizedIndices = exports.getOptimizedStartCodesIndices = exports.failedOptimizationPrefixMsg = void 0;
53046
- var regexp_to_ast_12 = require$$0$2;
53884
+ var regexp_to_ast_12 = regexpToAstExports;
53047
53885
  var isArray_12 = __importDefault2(require$$1$1);
53048
53886
  var every_12 = __importDefault2(require$$2$2);
53049
53887
  var forEach_12 = __importDefault2(require$$1);
@@ -53292,10 +54130,10 @@ function requireLexer() {
53292
54130
  };
53293
54131
  Object.defineProperty(exports, "__esModule", { value: true });
53294
54132
  exports.charCodeToOptimizedIndex = exports.minOptimizationVal = exports.buildLineBreakIssueMessage = exports.LineTerminatorOptimizedTester = exports.isShortPattern = exports.isCustomPattern = exports.cloneEmptyGroups = exports.performWarningRuntimeChecks = exports.performRuntimeChecks = exports.addStickyFlag = exports.addStartOfInput = exports.findUnreachablePatterns = exports.findModesThatDoNotExist = exports.findInvalidGroupType = exports.findDuplicatePatterns = exports.findUnsupportedFlags = exports.findStartOfInputAnchor = exports.findEmptyMatchRegExps = exports.findEndOfInputAnchor = exports.findInvalidPatterns = exports.findMissingPatterns = exports.validatePatterns = exports.analyzeTokenTypes = exports.enableSticky = exports.disableSticky = exports.SUPPORT_STICKY = exports.MODES = exports.DEFAULT_MODE = void 0;
53295
- var regexp_to_ast_12 = require$$0$2;
54133
+ var regexp_to_ast_12 = regexpToAstExports;
53296
54134
  var lexer_public_1 = requireLexer_public();
53297
54135
  var first_12 = __importDefault2(require$$1$2);
53298
- var isEmpty_12 = __importDefault2(require$$0$3);
54136
+ var isEmpty_12 = __importDefault2(require$$0$2);
53299
54137
  var compact_1 = __importDefault2(require$$1$3);
53300
54138
  var isArray_12 = __importDefault2(require$$1$1);
53301
54139
  var values_12 = __importDefault2(require$$3$2);
@@ -54059,7 +54897,7 @@ var tokens = {};
54059
54897
  };
54060
54898
  Object.defineProperty(exports, "__esModule", { value: true });
54061
54899
  exports.isTokenType = exports.hasExtendingTokensTypesMapProperty = exports.hasExtendingTokensTypesProperty = exports.hasCategoriesProperty = exports.hasShortKeyProperty = exports.singleAssignCategoriesToksMap = exports.assignCategoriesMapProp = exports.assignCategoriesTokensProp = exports.assignTokenDefaultProps = exports.expandCategories = exports.augmentTokenTypes = exports.tokenIdxToClass = exports.tokenShortNameIdx = exports.tokenStructuredMatcherNoCategories = exports.tokenStructuredMatcher = void 0;
54062
- var isEmpty_12 = __importDefault2(require$$0$3);
54900
+ var isEmpty_12 = __importDefault2(require$$0$2);
54063
54901
  var compact_1 = __importDefault2(require$$1$3);
54064
54902
  var isArray_12 = __importDefault2(require$$1$1);
54065
54903
  var flatten_12 = __importDefault2(require$$3$1);
@@ -54206,7 +55044,7 @@ function requireLexer_public() {
54206
55044
  exports.Lexer = exports.LexerDefinitionErrorType = void 0;
54207
55045
  var lexer_1 = requireLexer();
54208
55046
  var noop_1 = __importDefault2(require$$1$5);
54209
- var isEmpty_12 = __importDefault2(require$$0$3);
55047
+ var isEmpty_12 = __importDefault2(require$$0$2);
54210
55048
  var isArray_12 = __importDefault2(require$$1$1);
54211
55049
  var last_12 = __importDefault2(require$$4$3);
54212
55050
  var reject_1 = __importDefault2(require$$5$1);
@@ -55151,7 +55989,7 @@ Object.defineProperty(interpreter, "__esModule", { value: true });
55151
55989
  interpreter.nextPossibleTokensAfter = interpreter.possiblePathsFrom = interpreter.NextTerminalAfterAtLeastOneSepWalker = interpreter.NextTerminalAfterAtLeastOneWalker = interpreter.NextTerminalAfterManySepWalker = interpreter.NextTerminalAfterManyWalker = interpreter.AbstractNextTerminalAfterProductionWalker = interpreter.NextAfterTokenWalker = interpreter.AbstractNextPossibleTokensWalker = void 0;
55152
55990
  var rest_1 = rest;
55153
55991
  var first_1$1 = __importDefault$4(require$$1$2);
55154
- var isEmpty_1 = __importDefault$4(require$$0$3);
55992
+ var isEmpty_1 = __importDefault$4(require$$0$2);
55155
55993
  var dropRight_1 = __importDefault$4(require$$3$4);
55156
55994
  var drop_1 = __importDefault$4(require$$0$1);
55157
55995
  var last_1 = __importDefault$4(require$$4$3);
@@ -55660,7 +56498,7 @@ function expandTopLevelRule(topRule, currIdx, currRuleStack, currOccurrenceStack
55660
56498
  };
55661
56499
  Object.defineProperty(exports, "__esModule", { value: true });
55662
56500
  exports.areTokenCategoriesNotUsed = exports.isStrictPrefixOfPath = exports.containsPath = exports.getLookaheadPathsForOptionalProd = exports.getLookaheadPathsForOr = exports.lookAheadSequenceFromAlternatives = exports.buildSingleAlternativeLookaheadFunction = exports.buildAlternativesLookAheadFunc = exports.buildLookaheadFuncForOptionalProd = exports.buildLookaheadFuncForOr = exports.getLookaheadPaths = exports.getProdType = exports.PROD_TYPE = void 0;
55663
- var isEmpty_12 = __importDefault2(require$$0$3);
56501
+ var isEmpty_12 = __importDefault2(require$$0$2);
55664
56502
  var flatten_12 = __importDefault2(require$$3$1);
55665
56503
  var every_12 = __importDefault2(require$$2$2);
55666
56504
  var map_12 = __importDefault2(require$$2);
@@ -56124,7 +56962,7 @@ function requireChecks() {
56124
56962
  Object.defineProperty(checks, "__esModule", { value: true });
56125
56963
  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;
56126
56964
  var first_12 = __importDefault2(require$$1$2);
56127
- var isEmpty_12 = __importDefault2(require$$0$3);
56965
+ var isEmpty_12 = __importDefault2(require$$0$2);
56128
56966
  var drop_12 = __importDefault2(require$$0$1);
56129
56967
  var flatten_12 = __importDefault2(require$$3$1);
56130
56968
  var filter_1 = __importDefault2(require$$20);
@@ -56779,7 +57617,7 @@ function requireRecoverable() {
56779
57617
  Object.defineProperty(exports, "__esModule", { value: true });
56780
57618
  exports.attemptInRepetitionRecovery = exports.Recoverable = exports.InRuleRecoveryException = exports.IN_RULE_RECOVERY_EXCEPTION = exports.EOF_FOLLOW_KEY = void 0;
56781
57619
  var tokens_public_1 = tokens_public;
56782
- var isEmpty_12 = __importDefault2(require$$0$3);
57620
+ var isEmpty_12 = __importDefault2(require$$0$2);
56783
57621
  var dropRight_12 = __importDefault2(require$$3$4);
56784
57622
  var flatten_12 = __importDefault2(require$$3$1);
56785
57623
  var map_12 = __importDefault2(require$$2);
@@ -57095,7 +57933,7 @@ function requireLlk_lookahead() {
57095
57933
  Object.defineProperty(llk_lookahead, "__esModule", { value: true });
57096
57934
  llk_lookahead.LLkLookaheadStrategy = void 0;
57097
57935
  var flatMap_1 = __importDefault2(require$$14$1);
57098
- var isEmpty_12 = __importDefault2(require$$0$3);
57936
+ var isEmpty_12 = __importDefault2(require$$0$2);
57099
57937
  var errors_public_1 = errors_public;
57100
57938
  var parser_1 = requireParser();
57101
57939
  var checks_1 = requireChecks();
@@ -57384,7 +58222,7 @@ lang_extensions.defineNameProp = defineNameProp;
57384
58222
  };
57385
58223
  Object.defineProperty(exports, "__esModule", { value: true });
57386
58224
  exports.validateMissingCstMethods = exports.validateVisitor = exports.CstVisitorDefinitionError = exports.createBaseVisitorConstructorWithDefaults = exports.createBaseSemanticVisitorConstructor = exports.defaultVisit = void 0;
57387
- var isEmpty_12 = __importDefault2(require$$0$3);
58225
+ var isEmpty_12 = __importDefault2(require$$0$2);
57388
58226
  var compact_1 = __importDefault2(require$$1$3);
57389
58227
  var isArray_12 = __importDefault2(require$$1$1);
57390
58228
  var map_12 = __importDefault2(require$$2);
@@ -58090,7 +58928,7 @@ function requireRecognizer_engine() {
58090
58928
  };
58091
58929
  Object.defineProperty(recognizer_engine, "__esModule", { value: true });
58092
58930
  recognizer_engine.RecognizerEngine = void 0;
58093
- var isEmpty_12 = __importDefault2(require$$0$3);
58931
+ var isEmpty_12 = __importDefault2(require$$0$2);
58094
58932
  var isArray_12 = __importDefault2(require$$1$1);
58095
58933
  var flatten_12 = __importDefault2(require$$3$1);
58096
58934
  var every_12 = __importDefault2(require$$2$2);
@@ -59077,7 +59915,7 @@ function requireParser() {
59077
59915
  };
59078
59916
  Object.defineProperty(exports, "__esModule", { value: true });
59079
59917
  exports.EmbeddedActionsParser = exports.CstParser = exports.Parser = exports.EMPTY_ALT = exports.ParserDefinitionErrorType = exports.DEFAULT_RULE_CONFIG = exports.DEFAULT_PARSER_CONFIG = exports.END_OF_FILE = void 0;
59080
- var isEmpty_12 = __importDefault2(require$$0$3);
59918
+ var isEmpty_12 = __importDefault2(require$$0$2);
59081
59919
  var map_12 = __importDefault2(require$$2);
59082
59920
  var forEach_12 = __importDefault2(require$$1);
59083
59921
  var values_12 = __importDefault2(require$$3$2);