three-stdlib 2.26.1 → 2.26.2

Sign up to get free protection for your applications and to get access to all the features.
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);