UNPKG

net.akehurst.language-agl-processor

Version:
2,497 lines 88.5 kB
import {
  initMetadataForObject1cxne3s9w65el as initMetadataForObject,
  Unit_instance1fbcbse1fwigr as Unit_instance,
  ArrayList3it5z8td81qkl as ArrayList,
  collectionSizeOrDefault36dulx8yinfqm as collectionSizeOrDefault,
  LinkedHashMap1zhqxkxv3xnkl as LinkedHashMap,
  ensureNotNull1e947j3ixpazm as ensureNotNull,
  plus310ted5e4i90h as plus,
  plus20p0vtfmu0596 as plus_0,
  listOfvhqybd2zx248 as listOf,
  initMetadataForClassbxx6q50dy2s7 as initMetadataForClass,
  initMetadataForCompanion1wyw17z38v6ac as initMetadataForCompanion,
  VOID3gxj6tk5isa35 as VOID,
  IllegalStateExceptionkoljg5n0nrlr as IllegalStateException,
  toString1pkumu07cwy4m as toString,
  charSequenceLength3278n89t01tmv as charSequenceLength,
  charSequenceGet1vxk1y5n17t1z as charSequenceGet,
  _Char___init__impl__6a9atx2js6krycynjoo as _Char___init__impl__6a9atx,
  noWhenBranchMatchedException2a6r7ubxgky5j as noWhenBranchMatchedException,
  copyToArray2j022khrow2yi as copyToArray,
  charSequenceSubSequence1iwpdba8s3jc7 as charSequenceSubSequence,
  protoOf180f3jzyo7rfj as protoOf,
  Enum3alwj03lh1n41 as Enum,
  Paire9pteg33gng7 as Pair,
  throwUninitializedPropertyAccessExceptionyynx7gkm73wd as throwUninitializedPropertyAccessException,
  charCodeAt1yspne1d8erbm as charCodeAt,
  StringBuildermazzzhj6kkai as StringBuilder,
  toIntOrNull1j8dcc6to13o4 as toIntOrNull,
  NotImplementedErrorfzlkpv14xxr8 as NotImplementedError,
  THROW_CCE2g6jy02ryeudk as THROW_CCE,
  isCharSequence1ju9jr1w86plq as isCharSequence,
  substringiqarkczpya5m as substring,
  toString3o7ifthqydp6e as toString_0,
  numberToChar93r9buh19yek as numberToChar,
  Char__rangeTo_impl_tkncvp2wb70up86k2i2 as Char__rangeTo_impl_tkncvp,
  plus39kp8wyage607 as plus_1,
  Char19o2r8palgjof as Char,
  listOf1jh22dvmctj1r as listOf_0,
  toMutableList20rdgwi7d3cwi as toMutableList,
  removeAll1oodkx28jk9ud as removeAll,
  first58ocm7j58k3q as first,
  emptyList1g2z5xcrvp2zy as emptyList,
  addAll1k27qatfgp3k5 as addAll,
  toList3jhuyej2anx2q as toList,
  Collection1k04j3hzsbod0 as Collection,
  isInterface3d6p8outrmvmk as isInterface,
  first1vi3grnpj1175 as first_0,
  firstOrNull1982767dljvdy as firstOrNull,
  joinToString1cxrrlmo0chqs as joinToString,
  defineProp3ur6h3slcvq4x as defineProp,
  joinToStringxqcavsxcmh4q as joinToString_0,
  equals2au1ep9vhcato as equals,
  THROW_IAE23kobfj9wdoxr as THROW_IAE,
  getStringHashCode26igk1bx568vk as getStringHashCode,
  initMetadataForInterface1egvbzx539z91 as initMetadataForInterface,
  Regexxgw0gjiagf4z as Regex,
  Companion_getInstanceduyatss8wab7 as Companion_getInstance,
  replace3le3ie7l9k8aq as replace,
  hashCodeq5arwsb9dgti as hashCode,
} from './kotlin-kotlin-stdlib.mjs';
import { mutableStackOf1lnre6z49o79y as mutableStackOf } from './net.akehurst.kotlinx-kotlinx-collections.mjs';
//region block: imports
var imul = Math.imul;
//endregion
//region block: pre-declaration
class BuildConfig_0 {
  constructor() {
    this.version = '4.2.2.21';
    this.buildStamp = '2026-06-18T14:21:43.041343Z[UTC]';
    this.buildDate = '2026-Jun-18';
    this.buildTime = '14:21:43 UTC';
  }
  g17() {
    return this.version;
  }
  h17() {
    return this.buildStamp;
  }
  i17() {
    return this.buildDate;
  }
  j17() {
    return this.buildTime;
  }
}
class RegexMatcherBuilder {
  constructor(pattern) {
    this.k17_1 = pattern;
    var tmp = this;
    // Inline function 'kotlin.collections.mutableListOf' call
    tmp.l17_1 = ArrayList.o1();
    this.m17_1 = 0;
    this.n17_1 = mutableStackOf([]);
    this.o17_1 = Companion_getInstance_0().u17_1;
  }
  s17(orig, nullTransitions, map) {
    var clone = new Transition(orig.v17_1, orig.w17_1);
    clone.x17_1 = cloneState(this, orig.x17_1, nullTransitions, map);
    if (null == clone.x17_1) {
      nullTransitions.v(clone);
    }
    return clone;
  }
  a18(orig) {
    // Inline function 'kotlin.collections.mutableListOf' call
    var coutgoing = ArrayList.o1();
    // Inline function 'kotlin.collections.mutableMapOf' call
    var tmp$ret$1 = LinkedHashMap.j4();
    var cstart = ensureNotNull(cloneState(this, orig.b18_1, coutgoing, tmp$ret$1));
    return new Fragment(cstart, coutgoing);
  }
  d18() {
    var state = createState(this, false);
    var trans = new Transition(TransitionKind_MATCHER_getInstance(), Companion_getInstance_3().f18_1);
    state.r17_1.v(trans);
    var frag = new Fragment(state, state.r17_1);
    this.n17_1.o11(frag);
  }
  h18() {
    var state = createState(this, false);
    var trans = new Transition(TransitionKind_MATCHER_getInstance(), Companion_getInstance_3().g18_1);
    state.r17_1.v(trans);
    var frag = new Fragment(state, state.r17_1);
    this.n17_1.o11(frag);
  }
  i18(value) {
    var state = createState(this, false);
    var trans = new Transition(TransitionKind_MATCHER_getInstance(), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), value));
    state.r17_1.v(trans);
    var frag = new Fragment(state, state.r17_1);
    this.n17_1.o11(frag);
  }
  j18(matcher) {
    var state = createState(this, false);
    var trans = new Transition(TransitionKind_MATCHER_getInstance(), matcher);
    state.r17_1.v(trans);
    var frag = new Fragment(state, state.r17_1);
    this.n17_1.o11(frag);
  }
  k18() {
    switch (this.n17_1.h1()) {
      case 0:
        break;
      case 1:
        break;
      default:
        var f2 = this.n17_1.v11();
        var f1 = this.n17_1.v11();
        // Inline function 'kotlin.collections.forEach' call

        var _iterator__ex2g4s = f1.c18_1.g1();
        while (_iterator__ex2g4s.f()) {
          var element = _iterator__ex2g4s.e();
          element.x17_1 = f2.b18_1;
        }

        var frag = new Fragment(f1.b18_1, f2.c18_1);
        this.n17_1.o11(frag);
        break;
    }
  }
  l18() {
    var f2 = this.n17_1.v11();
    var f1 = this.n17_1.v11();
    var split = createState(this, true);
    var t1 = new Transition(TransitionKind_EMPTY_getInstance(), Companion_getInstance_3().e18_1);
    t1.x17_1 = f1.b18_1;
    var t2 = new Transition(TransitionKind_EMPTY_getInstance(), Companion_getInstance_3().e18_1);
    t2.x17_1 = f2.b18_1;
    split.r17_1.v(t1);
    split.r17_1.v(t2);
    var frag = new Fragment(split, plus(f1.c18_1, f2.c18_1));
    this.n17_1.o11(frag);
  }
  m18() {
    var f1 = this.n17_1.v11();
    var split = createState(this, true);
    var t1 = new Transition(TransitionKind_EMPTY_getInstance(), Companion_getInstance_3().e18_1);
    t1.x17_1 = f1.b18_1;
    var t2 = new Transition(TransitionKind_EMPTY_getInstance(), Companion_getInstance_3().e18_1);
    split.r17_1.v(t1);
    split.r17_1.v(t2);
    var frag = new Fragment(split, plus_0(f1.c18_1, t2));
    this.n17_1.o11(frag);
  }
  n18() {
    var f1 = this.n17_1.v11();
    var split = createState(this, true);
    // Inline function 'kotlin.collections.forEach' call
    var _iterator__ex2g4s = f1.c18_1.g1();
    while (_iterator__ex2g4s.f()) {
      var element = _iterator__ex2g4s.e();
      element.x17_1 = split;
    }
    var t1 = new Transition(TransitionKind_EMPTY_getInstance(), Companion_getInstance_3().e18_1);
    t1.x17_1 = f1.b18_1;
    var t2 = new Transition(TransitionKind_EMPTY_getInstance(), Companion_getInstance_3().e18_1);
    split.r17_1.v(t1);
    split.r17_1.v(t2);
    var frag = new Fragment(f1.b18_1, listOf(t2));
    this.n17_1.o11(frag);
  }
  o18() {
    var f1 = this.n17_1.v11();
    var split = createState(this, true);
    var t1 = new Transition(TransitionKind_EMPTY_getInstance(), Companion_getInstance_3().e18_1);
    t1.x17_1 = f1.b18_1;
    var t2 = new Transition(TransitionKind_EMPTY_getInstance(), Companion_getInstance_3().e18_1);
    split.r17_1.v(t1);
    split.r17_1.v(t2);
    // Inline function 'kotlin.collections.forEach' call
    var _iterator__ex2g4s = f1.c18_1.g1();
    while (_iterator__ex2g4s.f()) {
      var element = _iterator__ex2g4s.e();
      element.x17_1 = split;
    }
    var frag = new Fragment(split, listOf(t2));
    this.n17_1.o11(frag);
  }
  p18(n, m) {
    var repFrag = this.n17_1.v11();
    // Inline function 'kotlin.collections.mutableListOf' call
    var nRepetitions = ArrayList.o1();
    var inductionVariable = 0;
    if (inductionVariable < n)
      do {
        var r = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var nextFrag = this.a18(repFrag);
        nRepetitions.v(nextFrag);
      }
       while (inductionVariable < n);
    // Inline function 'kotlin.collections.mutableListOf' call
    var mRepetitions = ArrayList.o1();
    if (-1 === m) {
      mRepetitions.v(this.a18(repFrag));
    } else {
      var inductionVariable_0 = n;
      if (inductionVariable_0 < m)
        do {
          var r_0 = inductionVariable_0;
          inductionVariable_0 = inductionVariable_0 + 1 | 0;
          var nextFrag_0 = this.a18(repFrag);
          mRepetitions.v(nextFrag_0);
        }
         while (inductionVariable_0 < m);
    }
    var needConcat = false;
    var inductionVariable_1 = 0;
    if (inductionVariable_1 < n)
      do {
        var r_1 = inductionVariable_1;
        inductionVariable_1 = inductionVariable_1 + 1 | 0;
        var nextFrag_1 = nRepetitions.i1(r_1);
        this.n17_1.o11(nextFrag_1);
        if (needConcat) {
          this.k18();
        } else {
          needConcat = true;
        }
      }
       while (inductionVariable_1 < n);
    if (-1 === m) {
      this.n17_1.o11(mRepetitions.i1(0));
      this.o18();
      if (needConcat) {
        this.k18();
      } else {
        needConcat = true;
      }
    } else {
      var inductionVariable_2 = n;
      if (inductionVariable_2 < m)
        do {
          var r_2 = inductionVariable_2;
          inductionVariable_2 = inductionVariable_2 + 1 | 0;
          var nextFrag_2 = mRepetitions.i1(r_2 - n | 0);
          this.n17_1.o11(nextFrag_2);
          this.m18();
          if (needConcat) {
            this.k18();
          } else {
            needConcat = true;
          }
        }
         while (inductionVariable_2 < m);
    }
  }
  q18() {
    return new RegexMatcherImpl(this.k17_1, this.o17_1, this.l17_1);
  }
  r18() {
    if (!this.n17_1.p11()) {
      var f1 = this.n17_1.v11();
      // Inline function 'kotlin.collections.forEach' call
      var _iterator__ex2g4s = f1.c18_1.g1();
      while (_iterator__ex2g4s.f()) {
        var element = _iterator__ex2g4s.e();
        element.x17_1 = Companion_getInstance_0().t17_1;
      }
      this.o17_1 = f1.b18_1;
    }
  }
}
class Companion {
  constructor() {
    Companion_instance = this;
    this.t17_1 = new State(-1, false);
    this.u17_1 = new State(-2, false);
  }
}
class RegexMatcher {}
function match(text, startPosition, $super) {
  startPosition = startPosition === VOID ? 0 : startPosition;
  return $super === VOID ? this.g19(text, startPosition) : $super.g19.call(this, text, startPosition);
}
class RegexMatcherImpl {
  constructor(pattern, start, nfa) {
    Companion_getInstance_0();
    this.y18_1 = pattern;
    this.z18_1 = start;
    this.a19_1 = nfa;
    // Inline function 'kotlin.collections.mutableListOf' call
    var ns = ArrayList.o1();
    addNextStates(ns, this.z18_1);
    var tmp = this;
    // Inline function 'kotlin.collections.toTypedArray' call
    tmp.b19_1 = copyToArray(ns);
    // Inline function 'kotlin.collections.forEach' call
    var _iterator__ex2g4s = this.a19_1.g1();
    while (_iterator__ex2g4s.f()) {
      var element = _iterator__ex2g4s.e();
      // Inline function 'kotlin.collections.forEach' call
      var _iterator__ex2g4s_0 = element.r17_1.g1();
      while (_iterator__ex2g4s_0.f()) {
        var element_0 = _iterator__ex2g4s_0.e();
        element_0.f19();
      }
    }
    this.c19_1 = ArrayList.a1(10);
    this.d19_1 = ArrayList.a1(10);
    this.e19_1 = ArrayList.a1(10);
  }
  matchAt(text, atPosition) {
    return this.match(text, atPosition);
  }
  matchesAt(text, atPosition) {
    return !(null == this.match(text, atPosition));
  }
  g19(text, startPosition) {
    var pos = startPosition;
    this.c19_1.i3();
    this.d19_1.i3();
    this.e19_1.i3();
    this.c19_1.v(this.b19_1);
    var tmp0 = this.c19_1.i1(0);
    var tmp$ret$1;
    $l$block: {
      // Inline function 'kotlin.collections.any' call
      var inductionVariable = 0;
      var last = tmp0.length;
      while (inductionVariable < last) {
        var element = tmp0[inductionVariable];
        inductionVariable = inductionVariable + 1 | 0;
        if (element.h19()) {
          tmp$ret$1 = true;
          break $l$block;
        }
      }
      tmp$ret$1 = false;
    }
    var matchesEmpty = tmp$ret$1;
    var maxMatchedPos = -1;
    $l$loop: while (true) {
      var tmp;
      // Inline function 'kotlin.collections.isNotEmpty' call
      if (!this.c19_1.l1()) {
        tmp = pos < charSequenceLength(text);
      } else {
        tmp = false;
      }
      if (!tmp) {
        break $l$loop;
      }
      if (charSequenceGet(text, pos) === _Char___init__impl__6a9atx(10)) {
        this.e19_1.v(pos);
      }
      var inductionVariable_0 = 0;
      var last_0 = this.c19_1.h1();
      if (inductionVariable_0 < last_0)
        do {
          var ss = inductionVariable_0;
          inductionVariable_0 = inductionVariable_0 + 1 | 0;
          var states = this.c19_1.i1(ss);
          var inductionVariable_1 = 0;
          var last_1 = states.length;
          if (inductionVariable_1 < last_1)
            do {
              var s = inductionVariable_1;
              inductionVariable_1 = inductionVariable_1 + 1 | 0;
              var state = states[s];
              var outgoing = state.r17_1;
              var inductionVariable_2 = 0;
              var last_2 = outgoing.h1();
              if (inductionVariable_2 < last_2)
                do {
                  var t = inductionVariable_2;
                  inductionVariable_2 = inductionVariable_2 + 1 | 0;
                  var trans = outgoing.i1(t);
                  if (matches(this, trans.w17_1, text, pos)) {
                    this.d19_1.v(trans.i19());
                    if (trans.z17_1) {
                      var tmp0_0 = maxMatchedPos;
                      // Inline function 'kotlin.comparisons.maxOf' call
                      var b = pos;
                      maxMatchedPos = Math.max(tmp0_0, b);
                    }
                  }
                }
                 while (inductionVariable_2 < last_2);
            }
             while (inductionVariable_1 < last_1);
        }
         while (inductionVariable_0 < last_0);
      var t_0 = this.c19_1;
      this.c19_1 = this.d19_1;
      this.d19_1 = t_0;
      this.d19_1.i3();
      pos = pos + 1 | 0;
    }
    var tmp_0;
    if (!(maxMatchedPos === -1)) {
      // Inline function 'kotlin.text.substring' call
      var endIndex = maxMatchedPos + 1 | 0;
      var matchedText = toString(charSequenceSubSequence(text, startPosition, endIndex));
      tmp_0 = new MatchResultAgl(matchedText);
    } else if (matchesEmpty) {
      tmp_0 = new MatchResultAgl('');
    } else {
      tmp_0 = null;
    }
    return tmp_0;
  }
  toString() {
    return 'Regex{' + this.y18_1 + '}';
  }
}
class EscapeKind extends Enum {}
class Companion_0 {
  constructor() {
    Companion_instance_0 = this;
    this.j19_1 = 1;
    this.k19_1 = 1;
    this.l19_1 = 2;
    this.m19_1 = 3;
    this.n19_1 = 4;
    this.o19_1 = 5;
    this.p19_1 = 6;
    this.q19_1 = 7;
    this.r19_1 = 8;
    this.s19_1 = new Pair(EscapeKind_SINGLE_getInstance(), new CharacterMatcher(MatcherKind_RANGE_getInstance(), _Char___init__impl__6a9atx(48), _Char___init__impl__6a9atx(57)));
    var tmp = this;
    var tmp_0 = EscapeKind_SINGLE_getInstance();
    var tmp_1 = MatcherKind_NEGATED_getInstance();
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp$ret$2 = [new CharacterMatcher(MatcherKind_RANGE_getInstance(), _Char___init__impl__6a9atx(48), _Char___init__impl__6a9atx(57))];
    tmp.t19_1 = new Pair(tmp_0, new CharacterMatcher(tmp_1, VOID, VOID, tmp$ret$2));
    var tmp_2 = this;
    var tmp_3 = EscapeKind_SINGLE_getInstance();
    var tmp_4 = MatcherKind_ONE_OF_getInstance();
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp$ret$5 = [new CharacterMatcher(MatcherKind_LITERAL_getInstance(), _Char___init__impl__6a9atx(10)), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), _Char___init__impl__6a9atx(11)), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), _Char___init__impl__6a9atx(12)), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), _Char___init__impl__6a9atx(13)), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), _Char___init__impl__6a9atx(133)), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), _Char___init__impl__6a9atx(8233))];
    tmp_2.u19_1 = new Pair(tmp_3, new CharacterMatcher(tmp_4, VOID, VOID, tmp$ret$5));
    var tmp_5 = this;
    var tmp_6 = EscapeKind_SINGLE_getInstance();
    var tmp_7 = MatcherKind_ONE_OF_getInstance();
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp$ret$8 = [new CharacterMatcher(MatcherKind_LITERAL_getInstance(), _Char___init__impl__6a9atx(32)), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), _Char___init__impl__6a9atx(9)), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), _Char___init__impl__6a9atx(10)), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), _Char___init__impl__6a9atx(11)), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), _Char___init__impl__6a9atx(12)), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), _Char___init__impl__6a9atx(13))];
    tmp_5.v19_1 = new Pair(tmp_6, new CharacterMatcher(tmp_7, VOID, VOID, tmp$ret$8));
    var tmp_8 = this;
    var tmp_9 = EscapeKind_SINGLE_getInstance();
    var tmp_10 = MatcherKind_NEGATED_getInstance();
    var tmp_11 = MatcherKind_ONE_OF_getInstance();
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp$ret$11 = [new CharacterMatcher(MatcherKind_LITERAL_getInstance(), _Char___init__impl__6a9atx(32)), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), _Char___init__impl__6a9atx(9)), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), _Char___init__impl__6a9atx(10)), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), _Char___init__impl__6a9atx(11)), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), _Char___init__impl__6a9atx(12)), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), _Char___init__impl__6a9atx(13))];
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp$ret$14 = [new CharacterMatcher(tmp_11, VOID, VOID, tmp$ret$11)];
    tmp_8.w19_1 = new Pair(tmp_9, new CharacterMatcher(tmp_10, VOID, VOID, tmp$ret$14));
    var tmp_12 = this;
    var tmp_13 = EscapeKind_SINGLE_getInstance();
    var tmp_14 = MatcherKind_ONE_OF_getInstance();
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp$ret$17 = [new CharacterMatcher(MatcherKind_RANGE_getInstance(), _Char___init__impl__6a9atx(97), _Char___init__impl__6a9atx(122)), new CharacterMatcher(MatcherKind_RANGE_getInstance(), _Char___init__impl__6a9atx(65), _Char___init__impl__6a9atx(90)), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), _Char___init__impl__6a9atx(95)), new CharacterMatcher(MatcherKind_RANGE_getInstance(), _Char___init__impl__6a9atx(48), _Char___init__impl__6a9atx(57))];
    tmp_12.x19_1 = new Pair(tmp_13, new CharacterMatcher(tmp_14, VOID, VOID, tmp$ret$17));
    var tmp_15 = this;
    var tmp_16 = EscapeKind_SINGLE_getInstance();
    var tmp_17 = MatcherKind_NEGATED_getInstance();
    var tmp_18 = MatcherKind_ONE_OF_getInstance();
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp$ret$20 = [new CharacterMatcher(MatcherKind_RANGE_getInstance(), _Char___init__impl__6a9atx(97), _Char___init__impl__6a9atx(122)), new CharacterMatcher(MatcherKind_RANGE_getInstance(), _Char___init__impl__6a9atx(65), _Char___init__impl__6a9atx(90)), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), _Char___init__impl__6a9atx(95)), new CharacterMatcher(MatcherKind_RANGE_getInstance(), _Char___init__impl__6a9atx(48), _Char___init__impl__6a9atx(57))];
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp$ret$23 = [new CharacterMatcher(tmp_18, VOID, VOID, tmp$ret$20)];
    tmp_15.y19_1 = new Pair(tmp_16, new CharacterMatcher(tmp_17, VOID, VOID, tmp$ret$23));
  }
}
class RegexParser {
  constructor() {
    Companion_getInstance_1();
    this.b1a_1 = 0;
  }
  parse(pattern) {
    this.a1a_1 = pattern;
    this.z19_1 = pattern + '\x00';
    this.c1a_1 = new RegexMatcherBuilder(pattern);
    parsePattern(this);
    return _get_matcherBuilder__icfciq(this).q18();
  }
}
class Companion_1 {
  constructor() {
    Companion_instance_1 = this;
    this.PRINTABLE_ASCII = plus(plus(plus(plus(plus(plus(plus_1(Char__rangeTo_impl_tkncvp(_Char___init__impl__6a9atx(65), _Char___init__impl__6a9atx(90)), Char__rangeTo_impl_tkncvp(_Char___init__impl__6a9atx(97), _Char___init__impl__6a9atx(122))), Char__rangeTo_impl_tkncvp(_Char___init__impl__6a9atx(48), _Char___init__impl__6a9atx(57))), listOf_0([new Char(_Char___init__impl__6a9atx(33)), new Char(_Char___init__impl__6a9atx(34)), new Char(_Char___init__impl__6a9atx(35)), new Char(_Char___init__impl__6a9atx(36)), new Char(_Char___init__impl__6a9atx(37)), new Char(_Char___init__impl__6a9atx(38)), new Char(_Char___init__impl__6a9atx(39)), new Char(_Char___init__impl__6a9atx(40)), new Char(_Char___init__impl__6a9atx(41)), new Char(_Char___init__impl__6a9atx(42)), new Char(_Char___init__impl__6a9atx(43)), new Char(_Char___init__impl__6a9atx(44)), new Char(_Char___init__impl__6a9atx(45)), new Char(_Char___init__impl__6a9atx(46)), new Char(_Char___init__impl__6a9atx(47))])), listOf_0([new Char(_Char___init__impl__6a9atx(58)), new Char(_Char___init__impl__6a9atx(59)), new Char(_Char___init__impl__6a9atx(60)), new Char(_Char___init__impl__6a9atx(61)), new Char(_Char___init__impl__6a9atx(62)), new Char(_Char___init__impl__6a9atx(63)), new Char(_Char___init__impl__6a9atx(64))])), listOf_0([new Char(_Char___init__impl__6a9atx(91)), new Char(_Char___init__impl__6a9atx(92)), new Char(_Char___init__impl__6a9atx(93)), new Char(_Char___init__impl__6a9atx(94)), new Char(_Char___init__impl__6a9atx(95)), new Char(_Char___init__impl__6a9atx(96))])), listOf_0([new Char(_Char___init__impl__6a9atx(123)), new Char(_Char___init__impl__6a9atx(124)), new Char(_Char___init__impl__6a9atx(125)), new Char(_Char___init__impl__6a9atx(126))])), toMutableList(listOf(new Char(_Char___init__impl__6a9atx(32)))));
  }
  d1a() {
    return this.PRINTABLE_ASCII;
  }
}
class RegexValueProvider {
  constructor(pattern, anyChar) {
    Companion_getInstance_2();
    this.anyChar = anyChar;
    var tmp = this;
    var tmp_0 = regexMatcher(pattern);
    tmp.e1a_1 = tmp_0 instanceof RegexMatcherImpl ? tmp_0 : THROW_CCE();
    this.matcher = this.e1a_1;
    this.f1a_1 = this.e1a_1.z18_1;
    this.g1a_1 = this.e1a_1.a19_1;
    var tmp_1 = this;
    // Inline function 'kotlin.collections.mutableListOf' call
    tmp_1.h1a_1 = ArrayList.o1();
    // Inline function 'kotlin.collections.mutableListOf' call
    var ns = ArrayList.o1();
    addNextStates(ns, this.f1a_1);
    var tmp_2 = this;
    // Inline function 'kotlin.collections.toTypedArray' call
    tmp_2.i1a_1 = copyToArray(ns);
    // Inline function 'kotlin.collections.forEach' call
    var _iterator__ex2g4s = this.g1a_1.g1();
    while (_iterator__ex2g4s.f()) {
      var element = _iterator__ex2g4s.e();
      // Inline function 'kotlin.collections.forEach' call
      var _iterator__ex2g4s_0 = element.r17_1.g1();
      while (_iterator__ex2g4s_0.f()) {
        var element_0 = _iterator__ex2g4s_0.e();
        element_0.f19();
      }
    }
  }
  j1a() {
    return this.anyChar;
  }
  x18() {
    return this.matcher;
  }
  provide() {
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var currentStates = [];
    currentStates = this.i1a_1;
    var lastState = null;
    $l$loop: while (true) {
      // Inline function 'kotlin.collections.isNotEmpty' call
      // Inline function 'kotlin.collections.isEmpty' call
      if (!!(currentStates.length === 0)) {
        break $l$loop;
      }
      var tmp0 = currentStates;
      var tmp$ret$6;
      $l$block: {
        // Inline function 'kotlin.collections.firstOrNull' call
        var inductionVariable = 0;
        var last = tmp0.length;
        while (inductionVariable < last) {
          var element = tmp0[inductionVariable];
          inductionVariable = inductionVariable + 1 | 0;
          if (element.h19()) {
            tmp$ret$6 = element;
            break $l$block;
          }
        }
        tmp$ret$6 = null;
      }
      var tmp0_elvis_lhs = tmp$ret$6;
      var tmp;
      if (tmp0_elvis_lhs == null) {
        var tmp0_0 = currentStates;
        var tmp$ret$10;
        $l$block_2: {
          // Inline function 'kotlin.collections.firstOrNull' call
          var inductionVariable_0 = 0;
          var last_0 = tmp0_0.length;
          while (inductionVariable_0 < last_0) {
            var element_0 = tmp0_0[inductionVariable_0];
            inductionVariable_0 = inductionVariable_0 + 1 | 0;
            var tmp0_1 = element_0.r17_1;
            var tmp$ret$7;
            $l$block_1: {
              // Inline function 'kotlin.collections.any' call
              var tmp_0;
              if (isInterface(tmp0_1, Collection)) {
                tmp_0 = tmp0_1.l1();
              } else {
                tmp_0 = false;
              }
              if (tmp_0) {
                tmp$ret$7 = false;
                break $l$block_1;
              }
              var _iterator__ex2g4s = tmp0_1.g1();
              while (_iterator__ex2g4s.f()) {
                var element_1 = _iterator__ex2g4s.e();
                if (element_1.z17_1) {
                  tmp$ret$7 = true;
                  break $l$block_1;
                }
              }
              tmp$ret$7 = false;
            }
            if (tmp$ret$7) {
              tmp$ret$10 = element_0;
              break $l$block_2;
            }
          }
          tmp$ret$10 = null;
        }
        tmp = tmp$ret$10;
      } else {
        tmp = tmp0_elvis_lhs;
      }
      var tmp1_elvis_lhs = tmp;
      var tmp_1;
      if (tmp1_elvis_lhs == null) {
        var tmp0_2 = currentStates;
        var tmp$ret$12;
        $l$block_3: {
          // Inline function 'kotlin.collections.firstOrNull' call
          var inductionVariable_1 = 0;
          var last_1 = tmp0_2.length;
          while (inductionVariable_1 < last_1) {
            var element_2 = tmp0_2[inductionVariable_1];
            inductionVariable_1 = inductionVariable_1 + 1 | 0;
            if (!element_2.equals(lastState)) {
              tmp$ret$12 = element_2;
              break $l$block_3;
            }
          }
          tmp$ret$12 = null;
        }
        tmp_1 = tmp$ret$12;
      } else {
        tmp_1 = tmp1_elvis_lhs;
      }
      var tmp2_elvis_lhs = tmp_1;
      lastState = tmp2_elvis_lhs == null ? first_0(currentStates) : tmp2_elvis_lhs;
      var tmp0_3 = lastState.r17_1;
      var tmp$ret$14;
      $l$block_4: {
        // Inline function 'kotlin.collections.firstOrNull' call
        var _iterator__ex2g4s_0 = tmp0_3.g1();
        while (_iterator__ex2g4s_0.f()) {
          var element_3 = _iterator__ex2g4s_0.e();
          if (element_3.z17_1) {
            tmp$ret$14 = element_3;
            break $l$block_4;
          }
        }
        tmp$ret$14 = null;
      }
      var tmp3_elvis_lhs = tmp$ret$14;
      var outgoing = tmp3_elvis_lhs == null ? firstOrNull(lastState.r17_1) : tmp3_elvis_lhs;
      if (null == outgoing) {
        // Inline function 'kotlin.arrayOf' call
        // Inline function 'kotlin.js.unsafeCast' call
        // Inline function 'kotlin.js.asDynamic' call
        currentStates = [];
      } else {
        var c = this.k1a(outgoing.w17_1);
        var tmp_2 = c;
        if (!((tmp_2 == null ? null : new Char(tmp_2)) == null)) {
          this.h1a_1.v(new Char(c));
        }
        var tmp_3;
        if (outgoing.z17_1) {
          // Inline function 'kotlin.emptyArray' call
          tmp_3 = [];
        } else {
          tmp_3 = outgoing.i19();
        }
        currentStates = tmp_3;
      }
    }
    return joinToString(this.h1a_1, '');
  }
  k1a(matcher) {
    var tmp;
    switch (matcher.s18_1.q3_1) {
      case 0:
        tmp = null;
        break;
      case 1:
        tmp = this.anyChar;
        break;
      case 2:
        tmp = _Char___init__impl__6a9atx(10);
        break;
      case 3:
        tmp = notOneOf(this, matcher.v18_1);
        break;
      case 4:
        tmp = matcher.l1a() ? matcher.t18_1 : null;
        break;
      case 5:
        tmp = this.k1a(matcher.v18_1[0]);
        break;
      case 6:
        tmp = matcher.w18_1;
        break;
      default:
        noWhenBranchMatchedException();
        break;
    }
    return tmp;
  }
}
class Companion_2 {
  constructor() {
    Companion_instance_2 = this;
    this.e18_1 = new CharacterMatcher(MatcherKind_EMPTY_getInstance());
    this.f18_1 = new CharacterMatcher(MatcherKind_ANY_getInstance());
    this.g18_1 = new CharacterMatcher(MatcherKind_END_OF_LINE_OR_INPUT_getInstance());
  }
}
class CharacterMatcher {
  constructor(kind, literal, max, options) {
    Companion_getInstance_3();
    literal = literal === VOID ? _Char___init__impl__6a9atx(0) : literal;
    max = max === VOID ? _Char___init__impl__6a9atx(0) : max;
    var tmp;
    if (options === VOID) {
      // Inline function 'kotlin.arrayOf' call
      // Inline function 'kotlin.js.unsafeCast' call
      // Inline function 'kotlin.js.asDynamic' call
      tmp = [];
    } else {
      tmp = options;
    }
    options = tmp;
    this.s18_1 = kind;
    this.t18_1 = literal;
    this.u18_1 = max;
    this.v18_1 = options;
    this.w18_1 = this.t18_1;
  }
  l1a() {
    var tmp;
    switch (this.s18_1.q3_1) {
      case 0:
        tmp = false;
        break;
      case 1:
        tmp = true;
        break;
      case 2:
        tmp = true;
        break;
      case 3:
        tmp = true;
        break;
      case 4:
        var tmp_0;
        // Inline function 'kotlin.collections.isEmpty' call

        if (this.v18_1.length === 0) {
          tmp_0 = true;
        } else {
          var tmp0 = this.v18_1;
          var tmp$ret$2;
          $l$block: {
            // Inline function 'kotlin.collections.all' call
            var inductionVariable = 0;
            var last = tmp0.length;
            while (inductionVariable < last) {
              var element = tmp0[inductionVariable];
              inductionVariable = inductionVariable + 1 | 0;
              if (!element.l1a()) {
                tmp$ret$2 = false;
                break $l$block;
              }
            }
            tmp$ret$2 = true;
          }
          tmp_0 = tmp$ret$2;
        }

        tmp = tmp_0;
        break;
      case 5:
        tmp = true;
        break;
      case 6:
        tmp = true;
        break;
      default:
        noWhenBranchMatchedException();
        break;
    }
    return tmp;
  }
  x18() {
    return this.v18_1[0];
  }
  toString() {
    var tmp;
    switch (this.s18_1.q3_1) {
      case 0:
        tmp = 'EMPTY';
        break;
      case 1:
        tmp = 'ANY';
        break;
      case 2:
        tmp = '$';
        break;
      case 3:
        tmp = '!(' + this.x18().toString() + ')';
        break;
      case 4:
        tmp = "'" + toString_0(this.t18_1) + "'";
        break;
      case 5:
        tmp = '{' + joinToString_0(this.v18_1, ',') + '}';
        break;
      case 6:
        tmp = '[' + toString_0(this.w18_1) + '-' + toString_0(this.u18_1) + ']';
        break;
      default:
        noWhenBranchMatchedException();
        break;
    }
    return tmp;
  }
}
class MatcherKind extends Enum {}
class State {
  constructor(number, isSplit) {
    this.p17_1 = number;
    this.q17_1 = isSplit;
    var tmp = this;
    // Inline function 'kotlin.collections.mutableListOf' call
    tmp.r17_1 = ArrayList.o1();
  }
  h19() {
    return this.equals(Companion_getInstance_0().t17_1);
  }
  hashCode() {
    return this.p17_1;
  }
  equals(other) {
    var tmp;
    if (other instanceof State) {
      tmp = this.p17_1 === other.p17_1;
    } else {
      tmp = false;
    }
    return tmp;
  }
  toString() {
    return 'State{' + this.p17_1 + '}';
  }
}
class Transition {
  constructor(kind, matcher) {
    this.v17_1 = kind;
    this.w17_1 = matcher;
    this.x17_1 = null;
    this.z17_1 = false;
  }
  i19() {
    var tmp = this.y17_1;
    if (!(tmp == null))
      return tmp;
    else {
      throwUninitializedPropertyAccessException('nextStates');
    }
  }
  f19() {
    // Inline function 'kotlin.collections.mutableListOf' call
    var ns = ArrayList.o1();
    this.z17_1 = addNextStates(ns, this.x17_1);
    var tmp = this;
    // Inline function 'kotlin.collections.toTypedArray' call
    tmp.y17_1 = copyToArray(ns);
  }
  toString() {
    var tmp = this.w17_1.toString();
    var tmp0_safe_receiver = this.x17_1;
    return '-' + tmp + '->(' + (tmp0_safe_receiver == null ? null : tmp0_safe_receiver.p17_1) + ')';
  }
}
class TransitionKind extends Enum {}
class Fragment {
  constructor(start, outgoing) {
    this.b18_1 = start;
    this.c18_1 = outgoing;
  }
}
class RegexEngineKind extends Enum {
  get name() {
    return this.r3();
  }
  get ordinal() {
    return this.s3();
  }
}
class MatchResult {}
class MatchResultAgl {
  constructor(matchedText) {
    this.o1a_1 = matchedText;
  }
  p1a() {
    return this.o1a_1;
  }
  ni() {
    return this.o1a_1;
  }
  f12(matchedText) {
    return new MatchResultAgl(matchedText);
  }
  copy(matchedText, $super) {
    matchedText = matchedText === VOID ? this.o1a_1 : matchedText;
    return $super === VOID ? this.f12(matchedText) : $super.f12.call(this, matchedText);
  }
  toString() {
    return 'MatchResultAgl(matchedText=' + this.o1a_1 + ')';
  }
  hashCode() {
    return getStringHashCode(this.o1a_1);
  }
  equals(other) {
    if (this === other)
      return true;
    if (!(other instanceof MatchResultAgl))
      return false;
    if (!(this.o1a_1 === other.o1a_1))
      return false;
    return true;
  }
  get matchedText() {
    return this.p1a();
  }
}
class Regex_0 {}
class RegexEngine {}
class EscapedValue {}
class UnescapedValue {}
class EscapedPattern {
  constructor(value) {
    this.t1a_1 = value;
  }
  b2() {
    return this.t1a_1;
  }
  q1a() {
    return CommonRegexPatterns_getInstance().unescape_PATTERN(this.t1a_1);
  }
  ni() {
    return this.t1a_1;
  }
  f12(value) {
    return new EscapedPattern(value);
  }
  copy(value, $super) {
    value = value === VOID ? this.t1a_1 : value;
    return $super === VOID ? this.f12(value) : $super.f12.call(this, value);
  }
  toString() {
    return 'EscapedPattern(value=' + this.t1a_1 + ')';
  }
  hashCode() {
    return getStringHashCode(this.t1a_1);
  }
  equals(other) {
    if (this === other)
      return true;
    if (!(other instanceof EscapedPattern))
      return false;
    if (!(this.t1a_1 === other.t1a_1))
      return false;
    return true;
  }
  get value() {
    return this.b2();
  }
  get unescapedFromAgl() {
    return this.q1a();
  }
}
class UnescapedPattern {
  constructor(value) {
    this.u1a_1 = value;
  }
  b2() {
    return this.u1a_1;
  }
  r1a() {
    return CommonRegexPatterns_getInstance().escape_PATTERN(this.u1a_1);
  }
  s1a() {
    return this.u1a_1;
  }
  toRegex() {
    // Inline function 'kotlin.text.toRegex' call
    var this_0 = this.escapedForRegex;
    return Regex.jf(this_0);
  }
  ni() {
    return this.u1a_1;
  }
  f12(value) {
    return new UnescapedPattern(value);
  }
  copy(value, $super) {
    value = value === VOID ? this.u1a_1 : value;
    return $super === VOID ? this.f12(value) : $super.f12.call(this, value);
  }
  toString() {
    return 'UnescapedPattern(value=' + this.u1a_1 + ')';
  }
  hashCode() {
    return getStringHashCode(this.u1a_1);
  }
  equals(other) {
    if (this === other)
      return true;
    if (!(other instanceof UnescapedPattern))
      return false;
    if (!(this.u1a_1 === other.u1a_1))
      return false;
    return true;
  }
  get value() {
    return this.b2();
  }
  get escapedFoAgl() {
    return this.r1a();
  }
  get escapedForRegex() {
    return this.s1a();
  }
}
class EscapedLiteral {
  constructor(value) {
    this.v1a_1 = value;
  }
  b2() {
    return this.v1a_1;
  }
  q1a() {
    return CommonRegexPatterns_getInstance().unescape_LITERAL(this.v1a_1);
  }
  ni() {
    return this.v1a_1;
  }
  f12(value) {
    return new EscapedLiteral(value);
  }
  copy(value, $super) {
    value = value === VOID ? this.v1a_1 : value;
    return $super === VOID ? this.f12(value) : $super.f12.call(this, value);
  }
  toString() {
    return 'EscapedLiteral(value=' + this.v1a_1 + ')';
  }
  hashCode() {
    return getStringHashCode(this.v1a_1);
  }
  equals(other) {
    if (this === other)
      return true;
    if (!(other instanceof EscapedLiteral))
      return false;
    if (!(this.v1a_1 === other.v1a_1))
      return false;
    return true;
  }
  get value() {
    return this.b2();
  }
  get unescapedFromAgl() {
    return this.q1a();
  }
}
class UnescapedLiteral {
  constructor(value) {
    this.w1a_1 = value;
  }
  b2() {
    return this.w1a_1;
  }
  r1a() {
    return CommonRegexPatterns_getInstance().escape_LITERAL(this.w1a_1);
  }
  s1a() {
    return Companion_getInstance().ff(this.w1a_1);
  }
  ni() {
    return this.w1a_1;
  }
  f12(value) {
    return new UnescapedLiteral(value);
  }
  copy(value, $super) {
    value = value === VOID ? this.w1a_1 : value;
    return $super === VOID ? this.f12(value) : $super.f12.call(this, value);
  }
  toString() {
    return 'UnescapedLiteral(value=' + this.w1a_1 + ')';
  }
  hashCode() {
    return getStringHashCode(this.w1a_1);
  }
  equals(other) {
    if (this === other)
      return true;
    if (!(other instanceof UnescapedLiteral))
      return false;
    if (!(this.w1a_1 === other.w1a_1))
      return false;
    return true;
  }
  get value() {
    return this.b2();
  }
  get escapedFoAgl() {
    return this.r1a();
  }
  get escapedForRegex() {
    return this.s1a();
  }
}
class CommonRegexPatterns_0 {
  constructor() {
    CommonRegexPatterns_instance = this;
    this.PATTERN = new UnescapedPattern('"(\\\\"|[^"])+"');
    this.LITERAL = new UnescapedPattern("'(\\\\\\\\|\\\\'|[^'\\\\])+'");
  }
  x1a() {
    return this.PATTERN;
  }
  unescape_PATTERN(escaped) {
    return new UnescapedPattern(replace(escaped, '\\"', '"'));
  }
  escape_PATTERN(unescaped) {
    return new EscapedPattern(replace(unescaped, '"', '\\"'));
  }
  y1a() {
    return this.LITERAL;
  }
  unescape_LITERAL(escaped) {
    return new UnescapedLiteral(replace(replace(escaped, "\\'", "'"), '\\\\', '\\'));
  }
  escape_LITERAL(unescaped) {
    return new EscapedLiteral(replace(replace(unescaped, '\\', '\\\\'), "'", "\\'"));
  }
}
class RegexPlatform {
  constructor(value) {
    this.value = value;
  }
  b2() {
    return this.value;
  }
  matchAt(text, atPosition) {
    var tmp0_safe_receiver = this.value.pf(text, atPosition);
    var tmp;
    if (tmp0_safe_receiver == null) {
      tmp = null;
    } else {
      // Inline function 'kotlin.let' call
      tmp = new MatchResultAgl(tmp0_safe_receiver.b2());
    }
    return tmp;
  }
  matchesAt(text, atPosition) {
    return this.value.lf(text, atPosition);
  }
  ni() {
    return this.value;
  }
  z1a(value) {
    return new RegexPlatform(value);
  }
  copy(value, $super) {
    value = value === VOID ? this.value : value;
    return $super === VOID ? this.z1a(value) : $super.z1a.call(this, value);
  }
  toString() {
    return 'RegexPlatform(value=' + this.value.toString() + ')';
  }
  hashCode() {
    return hashCode(this.value);
  }
  equals(other) {
    if (this === other)
      return true;
    if (!(other instanceof RegexPlatform))
      return false;
    if (!equals(this.value, other.value))
      return false;
    return true;
  }
}
class RegexAgl {
  constructor(value) {
    this.value = value;
  }
  b2() {
    return this.value;
  }
  matchAt(text, atPosition) {
    var tmp = this.value.matchAt(text, atPosition);
    return (tmp == null ? true : tmp instanceof MatchResultAgl) ? tmp : THROW_CCE();
  }
  matchesAt(text, atPosition) {
    return this.value.matchesAt(text, atPosition);
  }
  ni() {
    return this.value;
  }
  a1b(value) {
    return new RegexAgl(value);
  }
  copy(value, $super) {
    value = value === VOID ? this.value : value;
    return $super === VOID ? this.a1b(value) : $super.a1b.call(this, value);
  }
  toString() {
    return 'RegexAgl(value=' + toString(this.value) + ')';
  }
  hashCode() {
    return hashCode(this.value);
  }
  equals(other) {
    if (this === other)
      return true;
    if (!(other instanceof RegexAgl))
      return false;
    if (!equals(this.value, other.value))
      return false;
    return true;
  }
}
class RegexEnginePlatform_0 {
  constructor() {
    RegexEnginePlatform_instance = this;
    this.b1b_1 = RegexEngineKind_PLATFORM_getInstance();
  }
  um() {
    return this.b1b_1;
  }
  createFor(pattern) {
    return new RegexPlatform(Regex.jf(pattern));
  }
  get kind() {
    return this.um();
  }
}
class RegexEngineAgl_0 {
  constructor() {
    RegexEngineAgl_instance = this;
    this.c1b_1 = RegexEngineKind_AGL_getInstance();
  }
  um() {
    return this.c1b_1;
  }
  createFor(pattern) {
    return new RegexAgl(regexMatcher(pattern));
  }
  get kind() {
    return this.um();
  }
}
//endregion
var BuildConfig_instance;
function BuildConfig_getInstance() {
  return BuildConfig_instance;
}
function createState($this, isSplit) {
  var state = new State($this.m17_1, isSplit);
  $this.m17_1 = $this.m17_1 + 1 | 0;
  $this.l17_1.v(state);
  return state;
}
function cloneState($this, orig, nullTransitions, map) {
  var tmp;
  if (null == orig) {
    tmp = null;
  } else {
    var clone = map.c3(orig);
    var tmp_0;
    if (null == clone) {
      var c = createState($this, orig.q17_1);
      // Inline function 'kotlin.collections.set' call
      map.f3(orig, c);
      // Inline function 'kotlin.collections.map' call
      var this_0 = orig.r17_1;
      // Inline function 'kotlin.collections.mapTo' call
      var destination = ArrayList.a1(collectionSizeOrDefault(this_0, 10));
      var _iterator__ex2g4s = this_0.g1();
      while (_iterator__ex2g4s.f()) {
        var item = _iterator__ex2g4s.e();
        var tmp$ret$1 = $this.s17(item, nullTransitions, map);
        destination.v(tmp$ret$1);
      }
      var ctrans = destination;
      c.r17_1.k1(ctrans);
      tmp_0 = c;
    } else {
      tmp_0 = clone;
    }
    tmp = tmp_0;
  }
  return tmp;
}
function regexMatcher(pattern) {
  return (new RegexParser()).parse(pattern);
}
var Companion_instance;
function Companion_getInstance_0() {
  if (Companion_instance === VOID)
    new Companion();
  return Companion_instance;
}
function matches($this, matcher, text, pos) {
  var tmp;
  switch (matcher.s18_1.q3_1) {
    case 0:
      var message = 'should not happen';
      throw IllegalStateException.t4(toString(message));
    case 1:
      tmp = true;
      break;
    case 2:
      var nextPos = pos + 1 | 0;
      tmp = nextPos === charSequenceLength(text) || charSequenceGet(text, pos) === _Char___init__impl__6a9atx(10);
      break;
    case 3:
      tmp = !matches($this, matcher.x18(), text, pos);
      break;
    case 4:
      tmp = charSequenceGet(text, pos) === matcher.t18_1;
      break;
    case 5:
      var opts = matcher.v18_1;
      var inductionVariable = 0;
      var last = opts.length;
      if (inductionVariable < last)
        do {
          var i = inductionVariable;
          inductionVariable = inductionVariable + 1 | 0;
          if (matches($this, opts[i], text, pos)) {
            return true;
          }
        }
         while (inductionVariable < last);
      return false;
    case 6:
      var containsLower = matcher.w18_1;
      var containsUpper = matcher.u18_1;
      var containsArg = charSequenceGet(text, pos);
      tmp = containsLower <= containsArg ? containsArg <= containsUpper : false;
      break;
    default:
      noWhenBranchMatchedException();
      break;
  }
  return tmp;
}
var EscapeKind_SINGLE_instance;
var EscapeKind_OPTIONS_instance;
var EscapeKind_LITERAL_instance;
var EscapeKind_entriesInitialized;
function EscapeKind_initEntries() {
  if (EscapeKind_entriesInitialized)
    return Unit_instance;
  EscapeKind_entriesInitialized = true;
  EscapeKind_SINGLE_instance = new EscapeKind('SINGLE', 0);
  EscapeKind_OPTIONS_instance = new EscapeKind('OPTIONS', 1);
  EscapeKind_LITERAL_instance = new EscapeKind('LITERAL', 2);
}
var Companion_instance_0;
function Companion_getInstance_1() {
  if (Companion_instance_0 === VOID)
    new Companion_0();
  return Companion_instance_0;
}
function _get_patternX__o18ver($this) {
  var tmp = $this.z19_1;
  if (!(tmp == null))
    return tmp;
  else {
    throwUninitializedPropertyAccessException('patternX');
  }
}
function _get_pattern__f9i1rz($this) {
  var tmp = $this.a1a_1;
  if (!(tmp == null))
    return tmp;
  else {
    throwUninitializedPropertyAccessException('pattern');
  }
}
function _get_matcherBuilder__icfciq($this) {
  var tmp = $this.c1a_1;
  if (!(tmp == null))
    return tmp;
  else {
    throwUninitializedPropertyAccessException('matcherBuilder');
  }
}
function next($this) {
  var c = charCodeAt(_get_patternX__o18ver($this), $this.b1a_1);
  $this.b1a_1 = $this.b1a_1 + 1 | 0;
  return c;
}
function parsePattern($this) {
  var postfix = mutableStackOf([]);
  var opStack = mutableStackOf([]);
  var needConcat = mutableStackOf([]);
  needConcat.o11(false);
  if (_get_pattern__f9i1rz($this).length > 0) {
    var c = next($this);
    try {
      while ($this.b1a_1 <= _get_pattern__f9i1rz($this).length) {
        var tmp0_subject = c;
        if (tmp0_subject === _Char___init__impl__6a9atx(92)) {
          var escaped_matchers = parsePatternEscape($this);
          switch (escaped_matchers.hi_1.q3_1) {
            case 0:
              var tmp = escaped_matchers.ii_1;
              var matcher = tmp instanceof CharacterMatcher ? tmp : THROW_CCE();
              var tmp_0 = Companion_getInstance_1().l19_1;
              postfix.o11(new Pair(tmp_0, RegexParser$parsePattern$lambda($this, matcher)));
              if (needConcat.v11()) {
                while (!opStack.p11() && !(opStack.s11().hi_1 === Companion_getInstance_1().j19_1) && opStack.s11().hi_1 < Companion_getInstance_1().q19_1) {
                  postfix.o11(opStack.v11());
                }
                var tmp_1 = Companion_getInstance_1().q19_1;
                opStack.o11(new Pair(tmp_1, RegexParser$parsePattern$lambda_0($this)));
              }

              needConcat.o11(true);
              break;
            case 2:
              var tmp_2 = escaped_matchers.ii_1;
              var literal = isCharSequence(tmp_2) ? tmp_2 : THROW_CCE();
              if (charSequenceLength(literal) > 0) {
                var cc = charSequenceGet(literal, 0);
                var tmp_3 = Companion_getInstance_1().l19_1;
                postfix.o11(new Pair(tmp_3, RegexParser$parsePattern$lambda_1($this, cc)));
                if (needConcat.v11()) {
                  while (!opStack.p11() && !(opStack.s11().hi_1 === Companion_getInstance_1().j19_1) && opStack.s11().hi_1 < Companion_getInstance_1().q19_1) {
                    postfix.o11(opStack.v11());
                  }
                  var tmp_4 = Companion_getInstance_1().q19_1;
                  opStack.o11(new Pair(tmp_4, RegexParser$parsePattern$lambda_2($this)));
                }
                var i = 1;
                while (i < charSequenceLength(literal)) {
                  var d = charSequenceGet(literal, i);
                  var tmp_5 = Companion_getInstance_1().l19_1;
                  postfix.o11(new Pair(tmp_5, RegexParser$parsePattern$lambda_3($this, d)));
                  var tmp_6 = Companion_getInstance_1().q19_1;
                  opStack.o11(new Pair(tmp_6, RegexParser$parsePattern$lambda_4($this)));
                  i = i + 1 | 0;
                }
                needConcat.o11(true);
              }

              break;
            case 1:
              // Inline function 'kotlin.TODO' call

              throw NotImplementedError.im();
            default:
              noWhenBranchMatchedException();
              break;
          }
          c = next($this);
        } else if (tmp0_subject === _Char___init__impl__6a9atx(46)) {
          var tmp_7 = Companion_getInstance_1().l19_1;
          postfix.o11(new Pair(tmp_7, RegexParser$parsePattern$lambda_5($this)));
          if (needConcat.v11()) {
            while (!opStack.p11() && !(opStack.s11().hi_1 === Companion_getInstance_1().j19_1) && opStack.s11().hi_1 < Companion_getInstance_1().q19_1) {
              postfix.o11(opStack.v11());
            }
            var tmp_8 = Companion_getInstance_1().q19_1;
            opStack.o11(new Pair(tmp_8, RegexParser$parsePattern$lambda_6($this)));
          }
          needConcat.o11(true);
          c = next($this);
        } else if (tmp0_subject === _Char___init__impl__6a9atx(36)) {
          var tmp_9 = Companion_getInstance_1().l19_1;
          postfix.o11(new Pair(tmp_9, RegexParser$parsePattern$lambda_7($this)));
          if (needConcat.v11()) {
            while (!opStack.p11() && !(opStack.s11().hi_1 === Companion_getInstance_1().j19_1) && opStack.s11().hi_1 < Companion_getInstance_1().q19_1) {
              postfix.o11(opStack.v11());
            }
            var tmp_10 = Companion_getInstance_1().q19_1;
            opStack.o11(new Pair(tmp_10, RegexParser$parsePattern$lambda_8($this)));
          }
          needConcat.o11(true);
          c = next($this);
        } else if (tmp0_subject === _Char___init__impl__6a9atx(91)) {
          var options = parseCharacterClass($this);
          var tmp_11 = Companion_getInstance_1().l19_1;
          postfix.o11(new Pair(tmp_11, RegexParser$parsePattern$lambda_9($this, options)));
          if (needConcat.v11()) {
            while (!opStack.p11() && !(opStack.s11().hi_1 === Companion_getInstance_1().j19_1) && opStack.s11().hi_1 < Companion_getInstance_1().q19_1) {
              postfix.o11(opStack.v11());
            }
            var tmp_12 = Companion_getInstance_1().q19_1;
            opStack.o11(new Pair(tmp_12, RegexParser$parsePattern$lambda_10($this)));
          }
          needConcat.o11(true);
          c = next($this);
        } else if (tmp0_subject === _Char___init__impl__6a9atx(40)) {
          needConcat.o11(false);
          var tmp_13 = Companion_getInstance_1().j19_1;
          opStack.o11(new Pair(tmp_13, RegexParser$parsePattern$lambda_11));
          c = next($this);
          if (c === _Char___init__impl__6a9atx(63)) {
            // Inline function 'kotlin.TODO' call
            var reason = _get_pattern__f9i1rz($this);
            throw NotImplementedError.im('An operation is not implemented: ' + reason);
          }
        } else if (tmp0_subject === _Char___init__impl__6a9atx(124)) {
          while (!opStack.p11() && !(opStack.s11().hi_1 === Companion_getInstance_1().j19_1) && opStack.s11().hi_1 < Companion_getInstance_1().r19_1) {
            postfix.o11(opStack.v11());
          }
          var tmp_14 = Companion_getInstance_1().r19_1;
          opStack.o11(new Pair(tmp_14, RegexParser$parsePattern$lambda_12($this)));
          needConcat.v11();
          needConcat.o11(false);
          c = next($this);
        } else if (tmp0_subject === _Char___init__impl__6a9atx(63)) {
          var tmp_15 = Companion_getInstance_1().m19_1;
          postfix.o11(new Pair(tmp_15, RegexParser$parsePattern$lambda_13($this)));
          c = next($this);
          var tmp4_subject = c;
          if (tmp4_subject === _Char___init__impl__6a9atx(63)) {
            // Inline function 'kotlin.TODO' call
            throw NotImplementedError.im();
          } else if (tmp4_subject === _Char___init__impl__6a9atx(43)) {
            // Inline function 'kotlin.TODO' call
            throw NotImplementedError.im();
          }
        } else if (tmp0_subject === _Char___init__impl__6a9atx(43)) {
          var tmp_16 = Companion_getInstance_1().o19_1;
          postfix.o11(new Pair(tmp_16, RegexParser$parsePattern$lambda_14($this)));
          c = next($this);
          var tmp5_subject = c;
          if (tmp5_subject === _Char___init__impl__6a9atx(63)) {
            // Inline function 'kotlin.TODO' call
            var reason_0 = _get_pattern__f9i1rz($this);
            throw NotImplementedError.im('An operation is not implemented: ' + reason_0);
          } else if (tmp5_subject === _Char___init__impl__6a9atx(43)) {
            // Inline function 'kotlin.TODO' call
            var reason_1 = _get_pattern__f9i1rz($this);
            throw NotImplementedError.im('An operation is not implemented: ' + reason_1);
          }
        } else if (tmp0_subject === _Char___init__impl__6a9atx(42)) {
          var tmp_17 = Companion_getInstance_1().n19_1;
          postfix.o11(new Pair(tmp_17, RegexParser$parsePattern$lambda_15($this)));
          c = next($this);
          var tmp6_subject = c;
          if (tmp6_subject === _Char___init__impl__6a9atx(63)) {
            // Inline function 'kotlin.TODO' call
            var reason_2 = _get_pattern__f9i1rz($this);
            throw NotImplementedError.im('An operation is not implemented: ' + reason_2);
          } else if (tmp6_subject === _Char___init__impl__6a9atx(43)) {
            // Inline function 'kotlin.TODO' call
            var reason_3 = _get_pattern__f9i1rz($this);
            throw NotImplementedError.im('An operation is not implemented: ' + reason_3);
          }
        } else if (tmp0_subject === _Char___init__impl__6a9atx(123)) {
          var nb = StringBuilder.s();
          c = next($this);
          while (_Char___init__impl__6a9atx(48) <= c ? c <= _Char___init__impl__6a9atx(57) : false) {
            nb.za(c);
            c = next($this);
          }
          var tmp7_elvis_lhs = toIntOrNull(nb.toString(), 10);
          var tmp_18;
          if (tmp7_elvis_lhs == null) {
            var message = 'Counted repetition must be one of the forms {n} | {n,} | {n,m} where n and m are numbers';
            throw IllegalStateException.t4(toString(message));
          } else {
            tmp_18 = tmp7_elvis_lhs;
          }
          var n = tmp_18;
          var tmp8_subject = c;
          if (tmp8_subject === _Char___init__impl__6a9atx(125)) {
            var tmp_19 = Companion_getInstance_1().p19_1;
            postfix.o11(new Pair(tmp_19, RegexParser$parsePattern$lambda_16($this, n)));
            c = next($this);
          } else if (tmp8_subject === _Char___init__impl__6a9atx(44)) {
            c = next($this);
            if (c === _Char___init__impl__6a9atx(125)) {
              var tmp_20 = Companion_getInstance_1().p19_1;
              postfix.o11(new Pair(tmp_20, RegexParser$parsePattern$lambda_17($this, n)));
              c = next($this);
            } else {
              var mb = StringBuilder.s();
              mb.za(c);
              c = next($this);
              while (_Char___init__impl__6a9atx(48) <= c ? c <= _Char___init__impl__6a9atx(57) : false) {
                mb.za(c);
                c = next($this);
              }
              var tmp10_elvis_lhs = toIntOrNull(mb.toString(), 10);
              var tmp_21;
              if (tmp10_elvis_lhs == null) {
                var message_0 = 'Counted repetition must be one of the forms {n} | {n,} | {n,m} where n and m are numbers';
                throw IllegalStateException.t4(toString(message_0));
              } else {
                tmp_21 = tmp10_elvis_lhs;
              }
              var m = tmp_21;
              if (c === _Char___init__impl__6a9atx(125)) {
                var tmp_22 = Companion_getInstance_1().p19_1;
                postfix.o11(new Pair(tmp_22, RegexParser$parsePattern$lambda_18($this, n, m)));
                c = next($this);
              } else {
                // Inline function 'kotlin.error' call
                var message_1 = 'Counted repetition must be one of the forms {n} | {n,} | {n,m} where n and m are numbers';
                throw IllegalStateException.t4(toString(message_1));
              }
            }
          } else {
            // Inline function 'kotlin.error' call
            var message_2 = 'Counted repetition must be one of the forms {n} | {n,} | {n,m} where n and m are numbers';
            throw IllegalStateException.t4(toString(message_2));
          }
        } else if (tmp0_subject === _Char___init__impl__6a9atx(41)) {
          while (!opStack.p11() && !(opStack.s11().hi_1 === Companion_getInstance_1().j19_1)) {
            postfix.o11(opStack.v11());
          }
          if (!opStack.p11() && opStack.s11().hi_1 === Companion_getInstance_1().j19_1) {
            opStack.v11();
          }
          needConcat.v11();
          if (needConcat.v11()) {
            while (!opStack.p11() && !(opStack.s11().hi_1 === Companion_getInstance_1().j19_1) && opStack.s11().hi_1 < Companion_getInstance_1().q19_1) {
              postfix.o11(opStack.v11());
            }
            var tmp_23 = Companion_getInstance_1().q19_1;
            opStack.o11(new Pair(tmp_23, RegexParser$parsePattern$lambda_19($this)));
          }
          needConcat.o11(true);
          c = next($this);
        } else {
          var cc_0 = c;
          var tmp_24 = Companion_getInstance_1().l19_1;
          postfix.o11(new Pair(tmp_24, RegexParser$parsePattern$lambda_20($this, cc_0)));
          if (needConcat.v11()) {
            while (!opStack.p11() && !(opStack.s11().hi_1 === Companion_getInstance_1().j19_1) && opStack.s11().hi_1 < Companion_getInstance_1().q19_1) {
              postfix.o11(opStack.v11());
            }
            var tmp_25 = Companion_getInstance_1().q19_1;
            opStack.o11(new Pair(tmp_25, RegexParser$parsePattern$lambda_21($this)));
          }
          needConcat.o11(true);
          c = next($this);
        }
      }
    } catch ($p) {
      if ($p instanceof Error) {
        var t = $p;
        var tmp_26 = _get_pattern__f9i1rz($this);
        // Inline function 'kotlin.comparisons.maxOf' call
        var b = $this.b1a_1 - 5 | 0;
        var tmp_27 = Math.max(0, b);
        var tmp0 = _get_pattern__f9i1rz($this).length;
        // Inline function 'kotlin.comparisons.minOf' call
        var b_0 = $this.b1a_1;
        var tmp$ret$1 = Math.min(tmp0, b_0);
        var before = substring(tmp_26, tmp_27, tmp$ret$1);
        var tmp_28 = _get_pattern__f9i1rz($this);
        var tmp0_0 = _get_pattern__f9i1rz($this).length;
        // Inline function 'kotlin.comparisons.maxOf' call
        var b_1 = $this.b1a_1 - 5 | 0;
        var tmp_29 = Math.max(tmp0_0, b_1);
        var tmp0_1 = _get_pattern__f9i1rz($this).length;
        // Inline function 'kotlin.comparisons.minOf' call
        var b_2 = $this.b1a_1 + 5 | 0;
        var tmp$ret$3 = Math.min(tmp0_1, b_2);
        var after = substring(tmp_28, tmp_29, tmp$ret$3);
        var posStr = before + '^' + after;
        // Inline function 'kotlin.error' call
        var message_3 = 'Failed to parse regex "' + _get_pattern__f9i1rz($this) + '" at position ' + $this.b1a_1 + ', "' + posStr + '", ' + t.message;
        throw IllegalStateException.t4(toString(message_3));
      } else {
        throw $p;
      }
    }
    while (!opStack.p11()) {
      postfix.o11(opStack.v11());
    }
    // Inline function 'kotlin.collections.forEach' call
    var _iterator__ex2g4s = postfix.r11().g1();
    while (_iterator__ex2g4s.f()) {
      var element = _iterator__ex2g4s.e();
      element.ii_1();
    }
  }
  _get_matcherBuilder__icfciq($this).r18();
}
function parsePatternEscape($this) {
  var c = next($this);
  var tmp0_subject = c;
  var tmp;
  if (tmp0_subject === _Char___init__impl__6a9atx(92)) {
    tmp = new Pair(EscapeKind_SINGLE_getInstance(), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), c));
  } else if (tmp0_subject === _Char___init__impl__6a9atx(40)) {
    tmp = new Pair(EscapeKind_SINGLE_getInstance(), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), c));
  } else if (tmp0_subject === _Char___init__impl__6a9atx(124)) {
    tmp = new Pair(EscapeKind_SINGLE_getInstance(), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), c));
  } else if (tmp0_subject === _Char___init__impl__6a9atx(91)) {
    tmp = new Pair(EscapeKind_SINGLE_getInstance(), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), c));
  } else if (tmp0_subject === _Char___init__impl__6a9atx(93)) {
    tmp = new Pair(EscapeKind_SINGLE_getInstance(), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), c));
  } else if (tmp0_subject === _Char___init__impl__6a9atx(46)) {
    tmp = new Pair(EscapeKind_SINGLE_getInstance(), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), c));
  } else if (tmp0_subject === _Char___init__impl__6a9atx(36)) {
    tmp = new Pair(EscapeKind_SINGLE_getInstance(), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), c));
  } else if (tmp0_subject === _Char___init__impl__6a9atx(63)) {
    tmp = new Pair(EscapeKind_SINGLE_getInstance(), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), c));
  } else if (tmp0_subject === _Char___init__impl__6a9atx(43)) {
    tmp = new Pair(EscapeKind_SINGLE_getInstance(), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), c));
  } else if (tmp0_subject === _Char___init__impl__6a9atx(42)) {
    tmp = new Pair(EscapeKind_SINGLE_getInstance(), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), c));
  } else if (tmp0_subject === _Char___init__impl__6a9atx(116)) {
    tmp = new Pair(EscapeKind_SINGLE_getInstance(), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), _Char___init__impl__6a9atx(9)));
  } else if (tmp0_subject === _Char___init__impl__6a9atx(110)) {
    tmp = new Pair(EscapeKind_SINGLE_getInstance(), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), _Char___init__impl__6a9atx(10)));
  } else if (tmp0_subject === _Char___init__impl__6a9atx(114)) {
    tmp = new Pair(EscapeKind_SINGLE_getInstance(), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), _Char___init__impl__6a9atx(13)));
  } else if (tmp0_subject === _Char___init__impl__6a9atx(102)) {
    tmp = new Pair(EscapeKind_SINGLE_getInstance(), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), _Char___init__impl__6a9atx(12)));
  } else if (tmp0_subject === _Char___init__impl__6a9atx(97)) {
    tmp = new Pair(EscapeKind_SINGLE_getInstance(), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), _Char___init__impl__6a9atx(7)));
  } else if (tmp0_subject === _Char___init__impl__6a9atx(101)) {
    tmp = new Pair(EscapeKind_SINGLE_getInstance(), new CharacterMatcher(MatcherKind_LITERAL_getInstance(), _Char___init__impl__6a9atx(27)));
  } else if (tmp0_subject === _Char___init__impl__6a9atx(99)) {
    var reason = 'Control char';
    throw NotImplementedError.im('An operation is not implemented: ' + reason);
  } else if (tmp0_subject === _Char___init__impl__6a9atx(100)) {
    tmp = Companion_getInstance_1().s19_1;
  } else if (tmp0_subject === _Char___init__impl__6a9atx(68)) {
    tmp = Companion_getInstance_1().t19_1;
  } else if (tmp0_subject === _Char___init__impl__6a9atx(82)) {
    tmp = Companion_getInstance_1().u19_1;
  } else if (tmp0_subject === _Char___init__impl__6a9atx(115)) {
    tmp = Companion_getInstance_1().v19_1;
  } else if (tmp0_subject === _Char___init__impl__6a9atx(83)) {
    tmp = Companion_getInstance_1().w19_1;
  } else if (tmp0_subject === _Char___init__impl__6a9atx(119)) {
    tmp = Companion_getInstance_1().x19_1;
  } else if (tmp0_subject === _Char___init__impl__6a9atx(87)) {
    tmp = Companion_getInstance_1().y19_1;
  } else if (tmp0_subject === _Char___init__impl__6a9atx(48)) {
    // Inline function 'kotlin.TODO' call
    var reason_0 = 'Octal value';
    throw NotImplementedError.im('An operation is not implemented: ' + reason_0);
  } else if (tmp0_subject === _Char___init__impl__6a9atx(120)) {
    // Inline function 'kotlin.TODO' call
    var reason_1 = 'hex value';
    throw NotImplementedError.im('An operation is not implemented: ' + reason_1);
  } else if (tmp0_subject === _Char___init__impl__6a9atx(117)) {
    // Inline function 'kotlin.TODO' call
    var reason_2 = 'unicode hex value';
    throw NotImplementedError.im('An operation is not implemented: ' + reason_2);
  } else if (tmp0_subject === _Char___init__impl__6a9atx(81)) {
    var sb = StringBuilder.s();
    var end = false;
    c = next($this);
    while (!end) {
      if (c === _Char___init__impl__6a9atx(92)) {
        c = next($this);
        if (_Char___init__impl__6a9atx(69) === c) {
          end = true;
        } else {
          sb.za(c);
        }
      } else {
        sb.za(c);
        c = next($this);
      }
    }
    tmp = new Pair(EscapeKind_LITERAL_getInstance(), sb.toString());
  } else {
    var reason_3 = toString_0(c) + ' at ' + $this.b1a_1 + ' in ' + _get_pattern__f9i1rz($this);
    throw NotImplementedError.im('An operation is not implemented: ' + reason_3);
  }
  return tmp;
}
function parseCharacterClass($this) {
  // Inline function 'kotlin.collections.mutableListOf' call
  var options = ArrayList.o1();
  var c = parseNextCharOrEscape($this);
  var tmp;
  if (_Char___init__impl__6a9atx(94) === c) {
    c = parseNextCharOrEscape($this);
    tmp = true;
  } else {
    tmp = false;
  }
  var negated = tmp;
  var f = c;
  while (!(c === _Char___init__impl__6a9atx(93))) {
    c = parseNextCharOrEscape($this);
    var tmp0_subject = c;
    if (tmp0_subject === _Char___init__impl__6a9atx(93)) {
      options.v(new CharacterMatcher(MatcherKind_LITERAL_getInstance(), f));
    } else if (tmp0_subject === _Char___init__impl__6a9atx(45)) {
      c = parseNextCharOrEscape($this);
      if (c === _Char___init__impl__6a9atx(93)) {
        options.v(new CharacterMatcher(MatcherKind_LITERAL_getInstance(), f));
        options.v(new CharacterMatcher(MatcherKind_LITERAL_getInstance(), _Char___init__impl__6a9atx(45)));
      } else {
        options.v(new CharacterMatcher(MatcherKind_RANGE_getInstance(), f, c));
        c = parseNextCharOrEscape($this);
        f = c;
      }
    } else {
      options.v(new CharacterMatcher(MatcherKind_LITERAL_getInstance(), f));
      f = c;
    }
  }
  var tmp_0;
  if (negated) {
    var tmp_1 = MatcherKind_NEGATED_getInstance();
    var tmp_2 = MatcherKind_ONE_OF_getInstance();
    // Inline function 'kotlin.collections.toTypedArray' call
    var tmp$ret$1 = copyToArray(options);
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp$ret$4 = [new CharacterMatcher(tmp_2, VOID, VOID, tmp$ret$1)];
    tmp_0 = new CharacterMatcher(tmp_1, VOID, VOID, tmp$ret$4);
  } else {
    var tmp_3 = MatcherKind_ONE_OF_getInstance();
    // Inline function 'kotlin.collections.toTypedArray' call
    var tmp$ret$5 = copyToArray(options);
    tmp_0 = new CharacterMatcher(tmp_3, VOID, VOID, tmp$ret$5);
  }
  return tmp_0;
}
function parseNextCharOrEscape($this) {
  var c = next($this);
  return c === _Char___init__impl__6a9atx(92) ? parseCharacterClassEscape($this) : c;
}
function parseCharacterClassEscape($this) {
  var c = next($this);
  var tmp;
  if (c === _Char___init__impl__6a9atx(92)) {
    tmp = _Char___init__impl__6a9atx(92);
  } else if (c === _Char___init__impl__6a9atx(36)) {
    tmp = _Char___init__impl__6a9atx(36);
  } else if (c === _Char___init__impl__6a9atx(45)) {
    tmp = _Char___init__impl__6a9atx(45);
  } else if (c === _Char___init__impl__6a9atx(94)) {
    tmp = _Char___init__impl__6a9atx(94);
  } else if (c === _Char___init__impl__6a9atx(91)) {
    tmp = _Char___init__impl__6a9atx(91);
  } else if (c === _Char___init__impl__6a9atx(93)) {
    tmp = _Char___init__impl__6a9atx(93);
  } else if (c === _Char___init__impl__6a9atx(38)) {
    tmp = _Char___init__impl__6a9atx(38);
  } else if (c === _Char___init__impl__6a9atx(116)) {
    tmp = _Char___init__impl__6a9atx(9);
  } else if (c === _Char___init__impl__6a9atx(110)) {
    tmp = _Char___init__impl__6a9atx(10);
  } else if (c === _Char___init__impl__6a9atx(114)) {
    tmp = _Char___init__impl__6a9atx(13);
  } else if (c === _Char___init__impl__6a9atx(102)) {
    tmp = _Char___init__impl__6a9atx(12);
  } else if (c === _Char___init__impl__6a9atx(97)) {
    tmp = _Char___init__impl__6a9atx(7);
  } else if (c === _Char___init__impl__6a9atx(101)) {
    tmp = _Char___init__impl__6a9atx(27);
  } else if (c === _Char___init__impl__6a9atx(99)) {
    var reason = 'Control char';
    throw NotImplementedError.im('An operation is not implemented: ' + reason);
  } else if (c === _Char___init__impl__6a9atx(117)) {
    var unicodeChar = parseUnicode($this);
    tmp = unicodeChar;
  } else if (c === _Char___init__impl__6a9atx(120)) {
    tmp = parseHex($this);
  } else {
    var message = "Unknown escape code '" + toString_0(c) + "' in character class, at position " + $this.b1a_1 + ' in ' + _get_pattern__f9i1rz($this) + ', ';
    throw IllegalStateException.t4(toString(message));
  }
  return tmp;
}
function parseHex($this) {
  var tmp0_elvis_lhs = toHexInt($this, next($this), 16);
  var tmp;
  if (tmp0_elvis_lhs == null) {
    var message = 'Cannot parse Hex, at position ' + $this.b1a_1;
    throw IllegalStateException.t4(toString(message));
  } else {
    tmp = tmp0_elvis_lhs;
  }
  var hex = tmp;
  var tmp_0 = hex;
  var tmp1_elvis_lhs = toHexInt($this, next($this), 1);
  var tmp_1;
  if (tmp1_elvis_lhs == null) {
    var message_0 = 'Cannot parse Hex, at position ' + $this.b1a_1;
    throw IllegalStateException.t4(toString(message_0));
  } else {
    tmp_1 = tmp1_elvis_lhs;
  }
  hex = tmp_0 + tmp_1 | 0;
  return numberToChar(hex);
}
function parseUnicode($this) {
  var tmp0_elvis_lhs = toHexInt($this, next($this), 4096);
  var tmp;
  if (tmp0_elvis_lhs == null) {
    var message = 'Cannot parse Unicode, at position ' + $this.b1a_1;
    throw IllegalStateException.t4(toString(message));
  } else {
    tmp = tmp0_elvis_lhs;
  }
  var unicode = tmp;
  var tmp_0 = unicode;
  var tmp1_elvis_lhs = toHexInt($this, next($this), 256);
  var tmp_1;
  if (tmp1_elvis_lhs == null) {
    var message_0 = 'Cannot parse Unicode, at position ' + $this.b1a_1;
    throw IllegalStateException.t4(toString(message_0));
  } else {
    tmp_1 = tmp1_elvis_lhs;
  }
  unicode = tmp_0 + tmp_1 | 0;
  var tmp_2 = unicode;
  var tmp2_elvis_lhs = toHexInt($this, next($this), 16);
  var tmp_3;
  if (tmp2_elvis_lhs == null) {
    var message_1 = 'Cannot parse Unicode, at position ' + $this.b1a_1;
    throw IllegalStateException.t4(toString(message_1));
  } else {
    tmp_3 = tmp2_elvis_lhs;
  }
  unicode = tmp_2 + tmp_3 | 0;
  var tmp_4 = unicode;
  var tmp3_elvis_lhs = toHexInt($this, next($this), 1);
  var tmp_5;
  if (tmp3_elvis_lhs == null) {
    var message_2 = 'Cannot parse Unicode, at position ' + $this.b1a_1;
    throw IllegalStateException.t4(toString(message_2));
  } else {
    tmp_5 = tmp3_elvis_lhs;
  }
  unicode = tmp_4 + tmp_5 | 0;
  return numberToChar(unicode);
}
function toHexInt($this, c, power) {
  var v = toIntOrNull(toString_0(c), 16);
  return null == v ? null : imul(v, power);
}
function RegexParser$parsePattern$lambda(this$0, $matcher) {
  return () => {
    _get_matcherBuilder__icfciq(this$0).j18($matcher);
    return Unit_instance;
  };
}
function RegexParser$parsePattern$lambda_0(this$0) {
  return () => {
    _get_matcherBuilder__icfciq(this$0).k18();
    return Unit_instance;
  };
}
function RegexParser$parsePattern$lambda_1(this$0, $cc) {
  return () => {
    _get_matcherBuilder__icfciq(this$0).i18($cc);
    return Unit_instance;
  };
}
function RegexParser$parsePattern$lambda_2(this$0) {
  return () => {
    _get_matcherBuilder__icfciq(this$0).k18();
    return Unit_instance;
  };
}
function RegexParser$parsePattern$lambda_3(this$0, $d) {
  return () => {
    _get_matcherBuilder__icfciq(this$0).i18($d);
    return Unit_instance;
  };
}
function RegexParser$parsePattern$lambda_4(this$0) {
  return () => {
    _get_matcherBuilder__icfciq(this$0).k18();
    return Unit_instance;
  };
}
function RegexParser$parsePattern$lambda_5(this$0) {
  return () => {
    _get_matcherBuilder__icfciq(this$0).d18();
    return Unit_instance;
  };
}
function RegexParser$parsePattern$lambda_6(this$0) {
  return () => {
    _get_matcherBuilder__icfciq(this$0).k18();
    return Unit_instance;
  };
}
function RegexParser$parsePattern$lambda_7(this$0) {
  return () => {
    _get_matcherBuilder__icfciq(this$0).h18();
    return Unit_instance;
  };
}
function RegexParser$parsePattern$lambda_8(this$0) {
  return () => {
    _get_matcherBuilder__icfciq(this$0).k18();
    return Unit_instance;
  };
}
function RegexParser$parsePattern$lambda_9(this$0, $options) {
  return () => {
    _get_matcherBuilder__icfciq(this$0).j18($options);
    return Unit_instance;
  };
}
function RegexParser$parsePattern$lambda_10(this$0) {
  return () => {
    _get_matcherBuilder__icfciq(this$0).k18();
    return Unit_instance;
  };
}
function RegexParser$parsePattern$lambda_11() {
  return Unit_instance;
}
function RegexParser$parsePattern$lambda_12(this$0) {
  return () => {
    _get_matcherBuilder__icfciq(this$0).l18();
    return Unit_instance;
  };
}
function RegexParser$parsePattern$lambda_13(this$0) {
  return () => {
    _get_matcherBuilder__icfciq(this$0).m18();
    return Unit_instance;
  };
}
function RegexParser$parsePattern$lambda_14(this$0) {
  return () => {
    _get_matcherBuilder__icfciq(this$0).n18();
    return Unit_instance;
  };
}
function RegexParser$parsePattern$lambda_15(this$0) {
  return () => {
    _get_matcherBuilder__icfciq(this$0).o18();
    return Unit_instance;
  };
}
function RegexParser$parsePattern$lambda_16(this$0, $n) {
  return () => {
    _get_matcherBuilder__icfciq(this$0).p18($n, $n);
    return Unit_instance;
  };
}
function RegexParser$parsePattern$lambda_17(this$0, $n) {
  return () => {
    _get_matcherBuilder__icfciq(this$0).p18($n, -1);
    return Unit_instance;
  };
}
function RegexParser$parsePattern$lambda_18(this$0, $n, $m) {
  return () => {
    _get_matcherBuilder__icfciq(this$0).p18($n, $m);
    return Unit_instance;
  };
}
function RegexParser$parsePattern$lambda_19(this$0) {
  return () => {
    _get_matcherBuilder__icfciq(this$0).k18();
    return Unit_instance;
  };
}
function RegexParser$parsePattern$lambda_20(this$0, $cc) {
  return () => {
    _get_matcherBuilder__icfciq(this$0).i18($cc);
    return Unit_instance;
  };
}
function RegexParser$parsePattern$lambda_21(this$0) {
  return () => {
    _get_matcherBuilder__icfciq(this$0).k18();
    return Unit_instance;
  };
}
function EscapeKind_SINGLE_getInstance() {
  EscapeKind_initEntries();
  return EscapeKind_SINGLE_instance;
}
function EscapeKind_OPTIONS_getInstance() {
  EscapeKind_initEntries();
  return EscapeKind_OPTIONS_instance;
}
function EscapeKind_LITERAL_getInstance() {
  EscapeKind_initEntries();
  return EscapeKind_LITERAL_instance;
}
var Companion_instance_1;
function Companion_getInstance_2() {
  if (Companion_instance_1 === VOID)
    new Companion_1();
  return Companion_instance_1;
}
function notOneOf($this, matchers) {
  var chars = toMutableList(Companion_getInstance_2().PRINTABLE_ASCII);
  // Inline function 'kotlin.collections.forEach' call
  var inductionVariable = 0;
  var last = matchers.length;
  while (inductionVariable < last) {
    var element = matchers[inductionVariable];
    inductionVariable = inductionVariable + 1 | 0;
    switch (element.s18_1.q3_1) {
      case 0:
        // Inline function 'kotlin.error' call

        var message = 'should not happen';
        throw IllegalStateException.t4(toString(message));
      case 1:
        new Char($this.anyChar);
        break;
      case 2:
        new Char(_Char___init__impl__6a9atx(10));
        break;
      case 3:
        // Inline function 'kotlin.error' call

        var message_0 = 'should not happen';
        throw IllegalStateException.t4(toString(message_0));
      case 4:
        chars.j3(new Char(element.t18_1));
        break;
      case 5:
        // Inline function 'kotlin.collections.forEach' call

        var indexedObject = element.v18_1;
        var inductionVariable_0 = 0;
        var last_0 = indexedObject.length;
        while (inductionVariable_0 < last_0) {
          var element_0 = indexedObject[inductionVariable_0];
          inductionVariable_0 = inductionVariable_0 + 1 | 0;
          chars.h2(allOf($this, element_0));
        }

        break;
      case 6:
        removeAll(chars, Char__rangeTo_impl_tkncvp(element.w18_1, element.u18_1));
        break;
      default:
        noWhenBranchMatchedException();
        break;
    }
  }
  return first(chars).k2_1;
}
function allOf($this, cm) {
  var tmp;
  switch (cm.s18_1.q3_1) {
    case 0:
      tmp = emptyList();
      break;
    case 1:
      tmp = listOf(new Char($this.anyChar));
      break;
    case 2:
      tmp = listOf(new Char(_Char___init__impl__6a9atx(10)));
      break;
    case 3:
      var message = 'should not happen';
      throw IllegalStateException.t4(toString(message));
    case 4:
      tmp = listOf(new Char(cm.t18_1));
      break;
    case 5:
      // Inline function 'kotlin.collections.flatMap' call

      var tmp0 = cm.v18_1;
      // Inline function 'kotlin.collections.flatMapTo' call

      var destination = ArrayList.o1();
      var inductionVariable = 0;
      var last = tmp0.length;
      while (inductionVariable < last) {
        var element = tmp0[inductionVariable];
        inductionVariable = inductionVariable + 1 | 0;
        var list = allOf($this, element);
        addAll(destination, list);
      }

      tmp = destination;
      break;
    case 6:
      tmp = toList(Char__rangeTo_impl_tkncvp(cm.w18_1, cm.u18_1));
      break;
    default:
      noWhenBranchMatchedException();
      break;
  }
  return tmp;
}
var Companion_instance_2;
function Companion_getInstance_3() {
  if (Companion_instance_2 === VOID)
    new Companion_2();
  return Companion_instance_2;
}
var MatcherKind_EMPTY_instance;
var MatcherKind_ANY_instance;
var MatcherKind_END_OF_LINE_OR_INPUT_instance;
var MatcherKind_NEGATED_instance;
var MatcherKind_LITERAL_instance;
var MatcherKind_ONE_OF_instance;
var MatcherKind_RANGE_instance;
var MatcherKind_entriesInitialized;
function MatcherKind_initEntries() {
  if (MatcherKind_entriesInitialized)
    return Unit_instance;
  MatcherKind_entriesInitialized = true;
  MatcherKind_EMPTY_instance = new MatcherKind('EMPTY', 0);
  MatcherKind_ANY_instance = new MatcherKind('ANY', 1);
  MatcherKind_END_OF_LINE_OR_INPUT_instance = new MatcherKind('END_OF_LINE_OR_INPUT', 2);
  MatcherKind_NEGATED_instance = new MatcherKind('NEGATED', 3);
  MatcherKind_LITERAL_instance = new MatcherKind('LITERAL', 4);
  MatcherKind_ONE_OF_instance = new MatcherKind('ONE_OF', 5);
  MatcherKind_RANGE_instance = new MatcherKind('RANGE', 6);
}
function addNextStates(nextStates, next) {
  var tmp;
  if (null == next) {
    tmp = false;
  } else {
    var tmp_0;
    if (next.q17_1) {
      var tmp0 = next.r17_1;
      var tmp$ret$0;
      $l$block_0: {
        // Inline function 'kotlin.collections.any' call
        var tmp_1;
        if (isInterface(tmp0, Collection)) {
          tmp_1 = tmp0.l1();
        } else {
          tmp_1 = false;
        }
        if (tmp_1) {
          tmp$ret$0 = false;
          break $l$block_0;
        }
        var _iterator__ex2g4s = tmp0.g1();
        while (_iterator__ex2g4s.f()) {
          var element = _iterator__ex2g4s.e();
          if (addNextStates(nextStates, element.x17_1)) {
            tmp$ret$0 = true;
            break $l$block_0;
          }
        }
        tmp$ret$0 = false;
      }
      tmp_0 = tmp$ret$0;
    } else {
      nextStates.v(next);
      tmp_0 = equals(next, Companion_getInstance_0().t17_1);
    }
    tmp = tmp_0;
  }
  return tmp;
}
var TransitionKind_MATCHER_instance;
var TransitionKind_EMPTY_instance;
var TransitionKind_END_OF_LINE_OR_INPUT_instance;
var TransitionKind_entriesInitialized;
function TransitionKind_initEntries() {
  if (TransitionKind_entriesInitialized)
    return Unit_instance;
  TransitionKind_entriesInitialized = true;
  TransitionKind_MATCHER_instance = new TransitionKind('MATCHER', 0);
  TransitionKind_EMPTY_instance = new TransitionKind('EMPTY', 1);
  TransitionKind_END_OF_LINE_OR_INPUT_instance = new TransitionKind('END_OF_LINE_OR_INPUT', 2);
}
function MatcherKind_EMPTY_getInstance() {
  MatcherKind_initEntries();
  return MatcherKind_EMPTY_instance;
}
function MatcherKind_ANY_getInstance() {
  MatcherKind_initEntries();
  return MatcherKind_ANY_instance;
}
function MatcherKind_END_OF_LINE_OR_INPUT_getInstance() {
  MatcherKind_initEntries();
  return MatcherKind_END_OF_LINE_OR_INPUT_instance;
}
function MatcherKind_NEGATED_getInstance() {
  MatcherKind_initEntries();
  return MatcherKind_NEGATED_instance;
}
function MatcherKind_LITERAL_getInstance() {
  MatcherKind_initEntries();
  return MatcherKind_LITERAL_instance;
}
function MatcherKind_ONE_OF_getInstance() {
  MatcherKind_initEntries();
  return MatcherKind_ONE_OF_instance;
}
function MatcherKind_RANGE_getInstance() {
  MatcherKind_initEntries();
  return MatcherKind_RANGE_instance;
}
function TransitionKind_MATCHER_getInstance() {
  TransitionKind_initEntries();
  return TransitionKind_MATCHER_instance;
}
function TransitionKind_EMPTY_getInstance() {
  TransitionKind_initEntries();
  return TransitionKind_EMPTY_instance;
}
var RegexEngineKind_PLATFORM_instance;
var RegexEngineKind_AGL_instance;
function values() {
  return [RegexEngineKind_PLATFORM_getInstance(), RegexEngineKind_AGL_getInstance()];
}
function valueOf(value) {
  switch (value) {
    case 'PLATFORM':
      return RegexEngineKind_PLATFORM_getInstance();
    case 'AGL':
      return RegexEngineKind_AGL_getInstance();
    default:
      RegexEngineKind_initEntries();
      THROW_IAE('No enum constant net.akehurst.language.regex.api.RegexEngineKind.' + value);
      break;
  }
}
var RegexEngineKind_entriesInitialized;
function RegexEngineKind_initEntries() {
  if (RegexEngineKind_entriesInitialized)
    return Unit_instance;
  RegexEngineKind_entriesInitialized = true;
  RegexEngineKind_PLATFORM_instance = new RegexEngineKind('PLATFORM', 0);
  RegexEngineKind_AGL_instance = new RegexEngineKind('AGL', 1);
}
var CommonRegexPatterns_instance;
function CommonRegexPatterns_getInstance() {
  if (CommonRegexPatterns_instance === VOID)
    new CommonRegexPatterns_0();
  return CommonRegexPatterns_instance;
}
function RegexEngineKind_PLATFORM_getInstance() {
  RegexEngineKind_initEntries();
  return RegexEngineKind_PLATFORM_instance;
}
function RegexEngineKind_AGL_getInstance() {
  RegexEngineKind_initEntries();
  return RegexEngineKind_AGL_instance;
}
var RegexEnginePlatform_instance;
function RegexEnginePlatform_getInstance() {
  if (RegexEnginePlatform_instance === VOID)
    new RegexEnginePlatform_0();
  return RegexEnginePlatform_instance;
}
var RegexEngineAgl_instance;
function RegexEngineAgl_getInstance() {
  if (RegexEngineAgl_instance === VOID)
    new RegexEngineAgl_0();
  return RegexEngineAgl_instance;
}
//region block: post-declaration
initMetadataForObject(BuildConfig_0, 'BuildConfig');
initMetadataForClass(RegexMatcherBuilder, 'RegexMatcherBuilder');
initMetadataForCompanion(Companion);
initMetadataForInterface(RegexMatcher, 'RegexMatcher');
protoOf(RegexMatcherImpl).match = match;
initMetadataForClass(RegexMatcherImpl, 'RegexMatcherImpl', VOID, VOID, [RegexMatcher]);
initMetadataForClass(EscapeKind, 'EscapeKind');
initMetadataForCompanion(Companion_0);
initMetadataForClass(RegexParser, 'RegexParser', RegexParser);
initMetadataForCompanion(Companion_1);
initMetadataForClass(RegexValueProvider, 'RegexValueProvider');
initMetadataForCompanion(Companion_2);
initMetadataForClass(CharacterMatcher, 'CharacterMatcher');
initMetadataForClass(MatcherKind, 'MatcherKind');
initMetadataForClass(State, 'State');
initMetadataForClass(Transition, 'Transition');
initMetadataForClass(TransitionKind, 'TransitionKind');
initMetadataForClass(Fragment, 'Fragment');
initMetadataForClass(RegexEngineKind, 'RegexEngineKind');
initMetadataForInterface(MatchResult, 'MatchResult');
initMetadataForClass(MatchResultAgl, 'MatchResultAgl', VOID, VOID, [MatchResult]);
initMetadataForInterface(Regex_0, 'Regex');
initMetadataForInterface(RegexEngine, 'RegexEngine');
initMetadataForInterface(EscapedValue, 'EscapedValue');
initMetadataForInterface(UnescapedValue, 'UnescapedValue');
initMetadataForClass(EscapedPattern, 'EscapedPattern', VOID, VOID, [EscapedValue]);
initMetadataForClass(UnescapedPattern, 'UnescapedPattern', VOID, VOID, [UnescapedValue]);
initMetadataForClass(EscapedLiteral, 'EscapedLiteral', VOID, VOID, [EscapedValue]);
initMetadataForClass(UnescapedLiteral, 'UnescapedLiteral', VOID, VOID, [UnescapedValue]);
initMetadataForObject(CommonRegexPatterns_0, 'CommonRegexPatterns');
initMetadataForClass(RegexPlatform, 'RegexPlatform', VOID, VOID, [Regex_0]);
initMetadataForClass(RegexAgl, 'RegexAgl', VOID, VOID, [Regex_0]);
initMetadataForObject(RegexEnginePlatform_0, 'RegexEnginePlatform', VOID, VOID, [RegexEngine]);
initMetadataForObject(RegexEngineAgl_0, 'RegexEngineAgl', VOID, VOID, [RegexEngine]);
//endregion
//region block: init
BuildConfig_instance = new BuildConfig_0();
//endregion
//region block: exports
var BuildConfig = {getInstance: BuildConfig_getInstance};
defineProp(RegexValueProvider, 'Companion', Companion_getInstance_2, VOID, true);
RegexEngineKind.values = values;
RegexEngineKind.valueOf = valueOf;
defineProp(RegexEngineKind, 'PLATFORM', RegexEngineKind_PLATFORM_getInstance, VOID, true);
defineProp(RegexEngineKind, 'AGL', RegexEngineKind_AGL_getInstance, VOID, true);
var CommonRegexPatterns = {getInstance: CommonRegexPatterns_getInstance};
var RegexEnginePlatform = {getInstance: RegexEnginePlatform_getInstance};
var RegexEngineAgl = {getInstance: RegexEngineAgl_getInstance};
export {
  BuildConfig as BuildConfig,
  regexMatcher as regexMatcher,
  RegexParser as RegexParser,
  RegexValueProvider as RegexValueProvider,
  RegexEngineKind as RegexEngineKind,
  EscapedPattern as EscapedPattern,
  UnescapedPattern as UnescapedPattern,
  EscapedLiteral as EscapedLiteral,
  UnescapedLiteral as UnescapedLiteral,
  CommonRegexPatterns as CommonRegexPatterns,
  RegexPlatform as RegexPlatform,
  RegexAgl as RegexAgl,
  RegexEnginePlatform as RegexEnginePlatform,
  RegexEngineAgl as RegexEngineAgl,
};
export {
  RegexEngineKind_PLATFORM_getInstance as RegexEngineKind_PLATFORM_getInstancet2mxw5r4wy8w,
  RegexEngineAgl_getInstance as RegexEngineAgl_getInstance2k14n4tyovyl8,
  RegexEnginePlatform_getInstance as RegexEnginePlatform_getInstance1hlxdjjdt9nw2,
  CommonRegexPatterns_getInstance as CommonRegexPatterns_getInstanceyhbpadc5bomg,
  RegexParser as RegexParserpykib5gi6mm9,
  RegexValueProvider as RegexValueProvider1jsd46klwvaq9,
  regexMatcher as regexMatcher7lcajteh1ep3,
  EscapedLiteral as EscapedLiteral216s3ovlj9r2g,
  EscapedPattern as EscapedPattern2p8vv84rvl1bl,
  UnescapedLiteral as UnescapedLiteral1oksfmzc43do,
  UnescapedPattern as UnescapedPattern1wl4r36xh455f,
};
//endregion

//# sourceMappingURL=net.akehurst.language-agl-regex.mjs.map