{"version":3,"file":"moo.mjs","sources":["../../../../../../node_modules/moo/moo.js"],"sourcesContent":["(function(root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    define([], factory) /* global define */\n  } else if (typeof module === 'object' && module.exports) {\n    module.exports = factory()\n  } else {\n    root.moo = factory()\n  }\n}(this, function() {\n  'use strict';\n\n  var hasOwnProperty = Object.prototype.hasOwnProperty\n  var toString = Object.prototype.toString\n  var hasSticky = typeof new RegExp().sticky === 'boolean'\n\n  /***************************************************************************/\n\n  function isRegExp(o) { return o && toString.call(o) === '[object RegExp]' }\n  function isObject(o) { return o && typeof o === 'object' && !isRegExp(o) && !Array.isArray(o) }\n\n  function reEscape(s) {\n    return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&')\n  }\n  function reGroups(s) {\n    var re = new RegExp('|' + s)\n    return re.exec('').length - 1\n  }\n  function reCapture(s) {\n    return '(' + s + ')'\n  }\n  function reUnion(regexps) {\n    if (!regexps.length) return '(?!)'\n    var source =  regexps.map(function(s) {\n      return \"(?:\" + s + \")\"\n    }).join('|')\n    return \"(?:\" + source + \")\"\n  }\n\n  function regexpOrLiteral(obj) {\n    if (typeof obj === 'string') {\n      return '(?:' + reEscape(obj) + ')'\n\n    } else if (isRegExp(obj)) {\n      // TODO: consider /u support\n      if (obj.ignoreCase) throw new Error('RegExp /i flag not allowed')\n      if (obj.global) throw new Error('RegExp /g flag is implied')\n      if (obj.sticky) throw new Error('RegExp /y flag is implied')\n      if (obj.multiline) throw new Error('RegExp /m flag is implied')\n      return obj.source\n\n    } else {\n      throw new Error('Not a pattern: ' + obj)\n    }\n  }\n\n  function pad(s, length) {\n    if (s.length > length) {\n      return s\n    }\n    return Array(length - s.length + 1).join(\" \") + s\n  }\n\n  function lastNLines(string, numLines) {\n    var position = string.length\n    var lineBreaks = 0;\n    while (true) {\n      var idx = string.lastIndexOf(\"\\n\", position - 1)\n      if (idx === -1) {\n        break;\n      } else {\n        lineBreaks++\n      }\n      position = idx\n      if (lineBreaks === numLines) {\n        break;\n      }\n      if (position === 0) {\n        break;\n      }\n    }\n    var startPosition = \n      lineBreaks < numLines ?\n      0 : \n      position + 1\n    return string.substring(startPosition).split(\"\\n\")\n  }\n\n  function objectToRules(object) {\n    var keys = Object.getOwnPropertyNames(object)\n    var result = []\n    for (var i = 0; i < keys.length; i++) {\n      var key = keys[i]\n      var thing = object[key]\n      var rules = [].concat(thing)\n      if (key === 'include') {\n        for (var j = 0; j < rules.length; j++) {\n          result.push({include: rules[j]})\n        }\n        continue\n      }\n      var match = []\n      rules.forEach(function(rule) {\n        if (isObject(rule)) {\n          if (match.length) result.push(ruleOptions(key, match))\n          result.push(ruleOptions(key, rule))\n          match = []\n        } else {\n          match.push(rule)\n        }\n      })\n      if (match.length) result.push(ruleOptions(key, match))\n    }\n    return result\n  }\n\n  function arrayToRules(array) {\n    var result = []\n    for (var i = 0; i < array.length; i++) {\n      var obj = array[i]\n      if (obj.include) {\n        var include = [].concat(obj.include)\n        for (var j = 0; j < include.length; j++) {\n          result.push({include: include[j]})\n        }\n        continue\n      }\n      if (!obj.type) {\n        throw new Error('Rule has no type: ' + JSON.stringify(obj))\n      }\n      result.push(ruleOptions(obj.type, obj))\n    }\n    return result\n  }\n\n  function ruleOptions(type, obj) {\n    if (!isObject(obj)) {\n      obj = { match: obj }\n    }\n    if (obj.include) {\n      throw new Error('Matching rules cannot also include states')\n    }\n\n    // nb. error and fallback imply lineBreaks\n    var options = {\n      defaultType: type,\n      lineBreaks: !!obj.error || !!obj.fallback,\n      pop: false,\n      next: null,\n      push: null,\n      error: false,\n      fallback: false,\n      value: null,\n      type: null,\n      shouldThrow: false,\n    }\n\n    // Avoid Object.assign(), so we support IE9+\n    for (var key in obj) {\n      if (hasOwnProperty.call(obj, key)) {\n        options[key] = obj[key]\n      }\n    }\n\n    // type transform cannot be a string\n    if (typeof options.type === 'string' && type !== options.type) {\n      throw new Error(\"Type transform cannot be a string (type '\" + options.type + \"' for token '\" + type + \"')\")\n    }\n\n    // convert to array\n    var match = options.match\n    options.match = Array.isArray(match) ? match : match ? [match] : []\n    options.match.sort(function(a, b) {\n      return isRegExp(a) && isRegExp(b) ? 0\n           : isRegExp(b) ? -1 : isRegExp(a) ? +1 : b.length - a.length\n    })\n    return options\n  }\n\n  function toRules(spec) {\n    return Array.isArray(spec) ? arrayToRules(spec) : objectToRules(spec)\n  }\n\n  var defaultErrorRule = ruleOptions('error', {lineBreaks: true, shouldThrow: true})\n  function compileRules(rules, hasStates) {\n    var errorRule = null\n    var fast = Object.create(null)\n    var fastAllowed = true\n    var unicodeFlag = null\n    var groups = []\n    var parts = []\n\n    // If there is a fallback rule, then disable fast matching\n    for (var i = 0; i < rules.length; i++) {\n      if (rules[i].fallback) {\n        fastAllowed = false\n      }\n    }\n\n    for (var i = 0; i < rules.length; i++) {\n      var options = rules[i]\n\n      if (options.include) {\n        // all valid inclusions are removed by states() preprocessor\n        throw new Error('Inheritance is not allowed in stateless lexers')\n      }\n\n      if (options.error || options.fallback) {\n        // errorRule can only be set once\n        if (errorRule) {\n          if (!options.fallback === !errorRule.fallback) {\n            throw new Error(\"Multiple \" + (options.fallback ? \"fallback\" : \"error\") + \" rules not allowed (for token '\" + options.defaultType + \"')\")\n          } else {\n            throw new Error(\"fallback and error are mutually exclusive (for token '\" + options.defaultType + \"')\")\n          }\n        }\n        errorRule = options\n      }\n\n      var match = options.match.slice()\n      if (fastAllowed) {\n        while (match.length && typeof match[0] === 'string' && match[0].length === 1) {\n          var word = match.shift()\n          fast[word.charCodeAt(0)] = options\n        }\n      }\n\n      // Warn about inappropriate state-switching options\n      if (options.pop || options.push || options.next) {\n        if (!hasStates) {\n          throw new Error(\"State-switching options are not allowed in stateless lexers (for token '\" + options.defaultType + \"')\")\n        }\n        if (options.fallback) {\n          throw new Error(\"State-switching options are not allowed on fallback tokens (for token '\" + options.defaultType + \"')\")\n        }\n      }\n\n      // Only rules with a .match are included in the RegExp\n      if (match.length === 0) {\n        continue\n      }\n      fastAllowed = false\n\n      groups.push(options)\n\n      // Check unicode flag is used everywhere or nowhere\n      for (var j = 0; j < match.length; j++) {\n        var obj = match[j]\n        if (!isRegExp(obj)) {\n          continue\n        }\n\n        if (unicodeFlag === null) {\n          unicodeFlag = obj.unicode\n        } else if (unicodeFlag !== obj.unicode && options.fallback === false) {\n          throw new Error('If one rule is /u then all must be')\n        }\n      }\n\n      // convert to RegExp\n      var pat = reUnion(match.map(regexpOrLiteral))\n\n      // validate\n      var regexp = new RegExp(pat)\n      if (regexp.test(\"\")) {\n        throw new Error(\"RegExp matches empty string: \" + regexp)\n      }\n      var groupCount = reGroups(pat)\n      if (groupCount > 0) {\n        throw new Error(\"RegExp has capture groups: \" + regexp + \"\\nUse (?: … ) instead\")\n      }\n\n      // try and detect rules matching newlines\n      if (!options.lineBreaks && regexp.test('\\n')) {\n        throw new Error('Rule should declare lineBreaks: ' + regexp)\n      }\n\n      // store regex\n      parts.push(reCapture(pat))\n    }\n\n\n    // If there's no fallback rule, use the sticky flag so we only look for\n    // matches at the current index.\n    //\n    // If we don't support the sticky flag, then fake it using an irrefutable\n    // match (i.e. an empty pattern).\n    var fallbackRule = errorRule && errorRule.fallback\n    var flags = hasSticky && !fallbackRule ? 'ym' : 'gm'\n    var suffix = hasSticky || fallbackRule ? '' : '|'\n\n    if (unicodeFlag === true) flags += \"u\"\n    var combined = new RegExp(reUnion(parts) + suffix, flags)\n    return {regexp: combined, groups: groups, fast: fast, error: errorRule || defaultErrorRule}\n  }\n\n  function compile(rules) {\n    var result = compileRules(toRules(rules))\n    return new Lexer({start: result}, 'start')\n  }\n\n  function checkStateGroup(g, name, map) {\n    var state = g && (g.push || g.next)\n    if (state && !map[state]) {\n      throw new Error(\"Missing state '\" + state + \"' (in token '\" + g.defaultType + \"' of state '\" + name + \"')\")\n    }\n    if (g && g.pop && +g.pop !== 1) {\n      throw new Error(\"pop must be 1 (in token '\" + g.defaultType + \"' of state '\" + name + \"')\")\n    }\n  }\n  function compileStates(states, start) {\n    var all = states.$all ? toRules(states.$all) : []\n    delete states.$all\n\n    var keys = Object.getOwnPropertyNames(states)\n    if (!start) start = keys[0]\n\n    var ruleMap = Object.create(null)\n    for (var i = 0; i < keys.length; i++) {\n      var key = keys[i]\n      ruleMap[key] = toRules(states[key]).concat(all)\n    }\n    for (var i = 0; i < keys.length; i++) {\n      var key = keys[i]\n      var rules = ruleMap[key]\n      var included = Object.create(null)\n      for (var j = 0; j < rules.length; j++) {\n        var rule = rules[j]\n        if (!rule.include) continue\n        var splice = [j, 1]\n        if (rule.include !== key && !included[rule.include]) {\n          included[rule.include] = true\n          var newRules = ruleMap[rule.include]\n          if (!newRules) {\n            throw new Error(\"Cannot include nonexistent state '\" + rule.include + \"' (in state '\" + key + \"')\")\n          }\n          for (var k = 0; k < newRules.length; k++) {\n            var newRule = newRules[k]\n            if (rules.indexOf(newRule) !== -1) continue\n            splice.push(newRule)\n          }\n        }\n        rules.splice.apply(rules, splice)\n        j--\n      }\n    }\n\n    var map = Object.create(null)\n    for (var i = 0; i < keys.length; i++) {\n      var key = keys[i]\n      map[key] = compileRules(ruleMap[key], true)\n    }\n\n    for (var i = 0; i < keys.length; i++) {\n      var name = keys[i]\n      var state = map[name]\n      var groups = state.groups\n      for (var j = 0; j < groups.length; j++) {\n        checkStateGroup(groups[j], name, map)\n      }\n      var fastKeys = Object.getOwnPropertyNames(state.fast)\n      for (var j = 0; j < fastKeys.length; j++) {\n        checkStateGroup(state.fast[fastKeys[j]], name, map)\n      }\n    }\n\n    return new Lexer(map, start)\n  }\n\n  function keywordTransform(map) {\n\n    // Use a JavaScript Map to map keywords to their corresponding token type\n    // unless Map is unsupported, then fall back to using an Object:\n    var isMap = typeof Map !== 'undefined'\n    var reverseMap = isMap ? new Map : Object.create(null)\n\n    var types = Object.getOwnPropertyNames(map)\n    for (var i = 0; i < types.length; i++) {\n      var tokenType = types[i]\n      var item = map[tokenType]\n      var keywordList = Array.isArray(item) ? item : [item]\n      keywordList.forEach(function(keyword) {\n        if (typeof keyword !== 'string') {\n          throw new Error(\"keyword must be string (in keyword '\" + tokenType + \"')\")\n        }\n        if (isMap) {\n          reverseMap.set(keyword, tokenType)\n        } else {\n          reverseMap[keyword] = tokenType\n        }\n      })\n    }\n    return function(k) {\n      return isMap ? reverseMap.get(k) : reverseMap[k]\n    }\n  }\n\n  /***************************************************************************/\n\n  var Lexer = function(states, state) {\n    this.startState = state\n    this.states = states\n    this.buffer = ''\n    this.stack = []\n    this.reset()\n  }\n\n  Lexer.prototype.reset = function(data, info) {\n    this.buffer = data || ''\n    this.index = 0\n    this.line = info ? info.line : 1\n    this.col = info ? info.col : 1\n    this.queuedToken = info ? info.queuedToken : null\n    this.queuedText = info ? info.queuedText: \"\";\n    this.queuedThrow = info ? info.queuedThrow : null\n    this.setState(info ? info.state : this.startState)\n    this.stack = info && info.stack ? info.stack.slice() : []\n    return this\n  }\n\n  Lexer.prototype.save = function() {\n    return {\n      line: this.line,\n      col: this.col,\n      state: this.state,\n      stack: this.stack.slice(),\n      queuedToken: this.queuedToken,\n      queuedText: this.queuedText,\n      queuedThrow: this.queuedThrow,\n    }\n  }\n\n  Lexer.prototype.setState = function(state) {\n    if (!state || this.state === state) return\n    this.state = state\n    var info = this.states[state]\n    this.groups = info.groups\n    this.error = info.error\n    this.re = info.regexp\n    this.fast = info.fast\n  }\n\n  Lexer.prototype.popState = function() {\n    this.setState(this.stack.pop())\n  }\n\n  Lexer.prototype.pushState = function(state) {\n    this.stack.push(this.state)\n    this.setState(state)\n  }\n\n  var eat = hasSticky ? function(re, buffer) { // assume re is /y\n    return re.exec(buffer)\n  } : function(re, buffer) { // assume re is /g\n    var match = re.exec(buffer)\n    // will always match, since we used the |(?:) trick\n    if (match[0].length === 0) {\n      return null\n    }\n    return match\n  }\n\n  Lexer.prototype._getGroup = function(match) {\n    var groupCount = this.groups.length\n    for (var i = 0; i < groupCount; i++) {\n      if (match[i + 1] !== undefined) {\n        return this.groups[i]\n      }\n    }\n    throw new Error('Cannot find token type for matched text')\n  }\n\n  function tokenToString() {\n    return this.value\n  }\n\n  Lexer.prototype.next = function() {\n    var index = this.index\n\n    // If a fallback token matched, we don't need to re-run the RegExp\n    if (this.queuedGroup) {\n      var token = this._token(this.queuedGroup, this.queuedText, index)\n      this.queuedGroup = null\n      this.queuedText = \"\"\n      return token\n    }\n\n    var buffer = this.buffer\n    if (index === buffer.length) {\n      return // EOF\n    }\n\n    // Fast matching for single characters\n    var group = this.fast[buffer.charCodeAt(index)]\n    if (group) {\n      return this._token(group, buffer.charAt(index), index)\n    }\n\n    // Execute RegExp\n    var re = this.re\n    re.lastIndex = index\n    var match = eat(re, buffer)\n\n    // Error tokens match the remaining buffer\n    var error = this.error\n    if (match == null) {\n      return this._token(error, buffer.slice(index, buffer.length), index)\n    }\n\n    var group = this._getGroup(match)\n    var text = match[0]\n\n    if (error.fallback && match.index !== index) {\n      this.queuedGroup = group\n      this.queuedText = text\n\n      // Fallback tokens contain the unmatched portion of the buffer\n      return this._token(error, buffer.slice(index, match.index), index)\n    }\n\n    return this._token(group, text, index)\n  }\n\n  Lexer.prototype._token = function(group, text, offset) {\n    // count line breaks\n    var lineBreaks = 0\n    if (group.lineBreaks) {\n      var matchNL = /\\n/g\n      var nl = 1\n      if (text === '\\n') {\n        lineBreaks = 1\n      } else {\n        while (matchNL.exec(text)) { lineBreaks++; nl = matchNL.lastIndex }\n      }\n    }\n\n    var token = {\n      type: (typeof group.type === 'function' && group.type(text)) || group.defaultType,\n      value: typeof group.value === 'function' ? group.value(text) : text,\n      text: text,\n      toString: tokenToString,\n      offset: offset,\n      lineBreaks: lineBreaks,\n      line: this.line,\n      col: this.col,\n    }\n    // nb. adding more props to token object will make V8 sad!\n\n    var size = text.length\n    this.index += size\n    this.line += lineBreaks\n    if (lineBreaks !== 0) {\n      this.col = size - nl + 1\n    } else {\n      this.col += size\n    }\n\n    // throw, if no rule with {error: true}\n    if (group.shouldThrow) {\n      var err = new Error(this.formatError(token, \"invalid syntax\"))\n      throw err;\n    }\n\n    if (group.pop) this.popState()\n    else if (group.push) this.pushState(group.push)\n    else if (group.next) this.setState(group.next)\n\n    return token\n  }\n\n  if (typeof Symbol !== 'undefined' && Symbol.iterator) {\n    var LexerIterator = function(lexer) {\n      this.lexer = lexer\n    }\n\n    LexerIterator.prototype.next = function() {\n      var token = this.lexer.next()\n      return {value: token, done: !token}\n    }\n\n    LexerIterator.prototype[Symbol.iterator] = function() {\n      return this\n    }\n\n    Lexer.prototype[Symbol.iterator] = function() {\n      return new LexerIterator(this)\n    }\n  }\n\n  Lexer.prototype.formatError = function(token, message) {\n    if (token == null) {\n      // An undefined token indicates EOF\n      var text = this.buffer.slice(this.index)\n      var token = {\n        text: text,\n        offset: this.index,\n        lineBreaks: text.indexOf('\\n') === -1 ? 0 : 1,\n        line: this.line,\n        col: this.col,\n      }\n    }\n    \n    var numLinesAround = 2\n    var firstDisplayedLine = Math.max(token.line - numLinesAround, 1)\n    var lastDisplayedLine = token.line + numLinesAround\n    var lastLineDigits = String(lastDisplayedLine).length\n    var displayedLines = lastNLines(\n        this.buffer, \n        (this.line - token.line) + numLinesAround + 1\n      )\n      .slice(0, 5)\n    var errorLines = []\n    errorLines.push(message + \" at line \" + token.line + \" col \" + token.col + \":\")\n    errorLines.push(\"\")\n    for (var i = 0; i < displayedLines.length; i++) {\n      var line = displayedLines[i]\n      var lineNo = firstDisplayedLine + i\n      errorLines.push(pad(String(lineNo), lastLineDigits) + \"  \" + line);\n      if (lineNo === token.line) {\n        errorLines.push(pad(\"\", lastLineDigits + token.col + 1) + \"^\")\n      }\n    }\n    return errorLines.join(\"\\n\")\n  }\n\n  Lexer.prototype.clone = function() {\n    return new Lexer(this.states, this.state)\n  }\n\n  Lexer.prototype.has = function(tokenType) {\n    return true\n  }\n\n\n  return {\n    compile: compile,\n    states: compileStates,\n    error: Object.freeze({error: true}),\n    fallback: Object.freeze({fallback: true}),\n    keywords: keywordTransform,\n  }\n\n}));\n"],"names":["this"],"mappings":"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","x_google_ignoreList":[0]}