{"version":3,"file":"ParseState.mjs","names":["ParseState","index","start","end","flags","constructor","input","length","done","testLowerCase","pattern","substring","toLowerCase","testRegex","lastIndex","test","toRegExp","s","RegExp","replace"],"sources":["../../src/util/ParseState.ts"],"sourcesContent":["export class ParseState {\n  index = 0\n  readonly start: number\n  readonly end: number\n  readonly flags: string\n\n  constructor(\n    public input: string,\n    {\n      start = 0,\n      end = input.length,\n      flags = 'g',\n    }: {\n      /**\n       * The starting index (defaults to 0)\n       */\n      start?: number\n      /**\n       * The ending index (defaults to input.length)\n       */\n      end?: number\n      /**\n       * Flags to add to all regexes\n       */\n      flags?: string\n    } = {}\n  ) {\n    this.start = start\n    this.end = end\n    this.flags = flags\n  }\n\n  get done() {\n    return this.index >= this.end\n  }\n\n  testLowerCase(pattern: string): boolean {\n    if (\n      this.input\n        .substring(this.index, this.index + pattern.length)\n        .toLowerCase() === pattern\n    ) {\n      this.index += pattern.length\n      return true\n    }\n    return false\n  }\n\n  testRegex(pattern: RegExp): boolean {\n    pattern.lastIndex = this.index\n    if (pattern.test(this.input)) {\n      this.index = pattern.lastIndex\n      return true\n    }\n    return false\n  }\n}\n\nexport function toRegExp(s: string, flags = ''): RegExp {\n  return new RegExp(s.replace(/[/\\-\\\\^$*+?.()|[\\]{}]/g, '\\\\$&'), flags)\n}\n"],"mappings":"AAAA,OAAO,MAAMA,UAAU,CAAC;EACtBC,KAAK,GAAG,CAAC;EACAC,KAAK;EACLC,GAAG;EACHC,KAAK;EAEdC,WAAWA,CACFC,KAAa,EACpB;IACEJ,KAAK,GAAG,CAAC;IACTC,GAAG,GAAGG,KAAK,CAACC,MAAM;IAClBH,KAAK,GAAG;EAcV,CAAC,GAAG,CAAC,CAAC,EACN;IAAA,KAnBOE,KAAa,GAAbA,KAAa;IAoBpB,IAAI,CAACJ,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,GAAG,GAAGA,GAAG;IACd,IAAI,CAACC,KAAK,GAAGA,KAAK;EACpB;EAEA,IAAII,IAAIA,CAAA,EAAG;IACT,OAAO,IAAI,CAACP,KAAK,IAAI,IAAI,CAACE,GAAG;EAC/B;EAEAM,aAAaA,CAACC,OAAe,EAAW;IACtC,IACE,IAAI,CAACJ,KAAK,CACPK,SAAS,CAAC,IAAI,CAACV,KAAK,EAAE,IAAI,CAACA,KAAK,GAAGS,OAAO,CAACH,MAAM,CAAC,CAClDK,WAAW,CAAC,CAAC,KAAKF,OAAO,EAC5B;MACA,IAAI,CAACT,KAAK,IAAIS,OAAO,CAACH,MAAM;MAC5B,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd;EAEAM,SAASA,CAACH,OAAe,EAAW;IAClCA,OAAO,CAACI,SAAS,GAAG,IAAI,CAACb,KAAK;IAC9B,IAAIS,OAAO,CAACK,IAAI,CAAC,IAAI,CAACT,KAAK,CAAC,EAAE;MAC5B,IAAI,CAACL,KAAK,GAAGS,OAAO,CAACI,SAAS;MAC9B,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd;AACF;AAEA,OAAO,SAASE,QAAQA,CAACC,CAAS,EAAEb,KAAK,GAAG,EAAE,EAAU;EACtD,OAAO,IAAIc,MAAM,CAACD,CAAC,CAACE,OAAO,CAAC,wBAAwB,EAAE,MAAM,CAAC,EAAEf,KAAK,CAAC;AACvE","ignoreList":[]}