{"version":3,"sources":["jsdelivr-header.js","/npm/codemirror@5.65.20/mode/swift/swift.js"],"names":[],"mappings":"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","file":"/npm/codemirror@5.65.20/mode/swift/swift.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/codemirror@5.65.20/mode/swift/swift.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n// Swift mode created by Michael Kaminsky https://github.com/mkaminsky11\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\")\n    mod(require(\"../../lib/codemirror\"))\n  else if (typeof define == \"function\" && define.amd)\n    define([\"../../lib/codemirror\"], mod)\n  else\n    mod(CodeMirror)\n})(function(CodeMirror) {\n  \"use strict\"\n\n  function wordSet(words) {\n    var set = {}\n    for (var i = 0; i < words.length; i++) set[words[i]] = true\n    return set\n  }\n\n  var keywords = wordSet([\"_\",\"var\",\"let\",\"actor\",\"class\",\"enum\",\"extension\",\"import\",\"protocol\",\"struct\",\"func\",\"typealias\",\"associatedtype\",\n                          \"open\",\"public\",\"internal\",\"fileprivate\",\"private\",\"deinit\",\"init\",\"new\",\"override\",\"self\",\"subscript\",\"super\",\n                          \"convenience\",\"dynamic\",\"final\",\"indirect\",\"lazy\",\"required\",\"static\",\"unowned\",\"unowned(safe)\",\"unowned(unsafe)\",\"weak\",\"as\",\"is\",\n                          \"break\",\"case\",\"continue\",\"default\",\"else\",\"fallthrough\",\"for\",\"guard\",\"if\",\"in\",\"repeat\",\"switch\",\"where\",\"while\",\n                          \"defer\",\"return\",\"inout\",\"mutating\",\"nonmutating\",\"isolated\",\"nonisolated\",\"catch\",\"do\",\"rethrows\",\"throw\",\"throws\",\"async\",\"await\",\"try\",\"didSet\",\"get\",\"set\",\"willSet\",\n                          \"assignment\",\"associativity\",\"infix\",\"left\",\"none\",\"operator\",\"postfix\",\"precedence\",\"precedencegroup\",\"prefix\",\"right\",\n                          \"Any\",\"AnyObject\",\"Type\",\"dynamicType\",\"Self\",\"Protocol\",\"__COLUMN__\",\"__FILE__\",\"__FUNCTION__\",\"__LINE__\"])\n  var definingKeywords = wordSet([\"var\",\"let\",\"actor\",\"class\",\"enum\",\"extension\",\"import\",\"protocol\",\"struct\",\"func\",\"typealias\",\"associatedtype\",\"for\"])\n  var atoms = wordSet([\"true\",\"false\",\"nil\",\"self\",\"super\",\"_\"])\n  var types = wordSet([\"Array\",\"Bool\",\"Character\",\"Dictionary\",\"Double\",\"Float\",\"Int\",\"Int8\",\"Int16\",\"Int32\",\"Int64\",\"Never\",\"Optional\",\"Set\",\"String\",\n                       \"UInt8\",\"UInt16\",\"UInt32\",\"UInt64\",\"Void\"])\n  var operators = \"+-/*%=|&<>~^?!\"\n  var punc = \":;,.(){}[]\"\n  var binary = /^\\-?0b[01][01_]*/\n  var octal = /^\\-?0o[0-7][0-7_]*/\n  var hexadecimal = /^\\-?0x[\\dA-Fa-f][\\dA-Fa-f_]*(?:(?:\\.[\\dA-Fa-f][\\dA-Fa-f_]*)?[Pp]\\-?\\d[\\d_]*)?/\n  var decimal = /^\\-?\\d[\\d_]*(?:\\.\\d[\\d_]*)?(?:[Ee]\\-?\\d[\\d_]*)?/\n  var identifier = /^\\$\\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\\1/\n  var property = /^\\.(?:\\$\\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\\1)/\n  var instruction = /^\\#[A-Za-z]+/\n  var attribute = /^@(?:\\$\\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\\1)/\n  //var regexp = /^\\/(?!\\s)(?:\\/\\/)?(?:\\\\.|[^\\/])+\\//\n\n  function tokenBase(stream, state, prev) {\n    if (stream.sol()) state.indented = stream.indentation()\n    if (stream.eatSpace()) return null\n\n    var ch = stream.peek()\n    if (ch == \"/\") {\n      if (stream.match(\"//\")) {\n        stream.skipToEnd()\n        return \"comment\"\n      }\n      if (stream.match(\"/*\")) {\n        state.tokenize.push(tokenComment)\n        return tokenComment(stream, state)\n      }\n    }\n    if (stream.match(instruction)) return \"builtin\"\n    if (stream.match(attribute)) return \"attribute\"\n    if (stream.match(binary)) return \"number\"\n    if (stream.match(octal)) return \"number\"\n    if (stream.match(hexadecimal)) return \"number\"\n    if (stream.match(decimal)) return \"number\"\n    if (stream.match(property)) return \"property\"\n    if (operators.indexOf(ch) > -1) {\n      stream.next()\n      return \"operator\"\n    }\n    if (punc.indexOf(ch) > -1) {\n      stream.next()\n      stream.match(\"..\")\n      return \"punctuation\"\n    }\n    var stringMatch\n    if (stringMatch = stream.match(/(\"\"\"|\"|')/)) {\n      var tokenize = tokenString.bind(null, stringMatch[0])\n      state.tokenize.push(tokenize)\n      return tokenize(stream, state)\n    }\n\n    if (stream.match(identifier)) {\n      var ident = stream.current()\n      if (types.hasOwnProperty(ident)) return \"variable-2\"\n      if (atoms.hasOwnProperty(ident)) return \"atom\"\n      if (keywords.hasOwnProperty(ident)) {\n        if (definingKeywords.hasOwnProperty(ident))\n          state.prev = \"define\"\n        return \"keyword\"\n      }\n      if (prev == \"define\") return \"def\"\n      return \"variable\"\n    }\n\n    stream.next()\n    return null\n  }\n\n  function tokenUntilClosingParen() {\n    var depth = 0\n    return function(stream, state, prev) {\n      var inner = tokenBase(stream, state, prev)\n      if (inner == \"punctuation\") {\n        if (stream.current() == \"(\") ++depth\n        else if (stream.current() == \")\") {\n          if (depth == 0) {\n            stream.backUp(1)\n            state.tokenize.pop()\n            return state.tokenize[state.tokenize.length - 1](stream, state)\n          }\n          else --depth\n        }\n      }\n      return inner\n    }\n  }\n\n  function tokenString(openQuote, stream, state) {\n    var singleLine = openQuote.length == 1\n    var ch, escaped = false\n    while (ch = stream.peek()) {\n      if (escaped) {\n        stream.next()\n        if (ch == \"(\") {\n          state.tokenize.push(tokenUntilClosingParen())\n          return \"string\"\n        }\n        escaped = false\n      } else if (stream.match(openQuote)) {\n        state.tokenize.pop()\n        return \"string\"\n      } else {\n        stream.next()\n        escaped = ch == \"\\\\\"\n      }\n    }\n    if (singleLine) {\n      state.tokenize.pop()\n    }\n    return \"string\"\n  }\n\n  function tokenComment(stream, state) {\n    var ch\n    while (ch = stream.next()) {\n      if (ch === \"/\" && stream.eat(\"*\")) {\n        state.tokenize.push(tokenComment)\n      } else if (ch === \"*\" && stream.eat(\"/\")) {\n        state.tokenize.pop()\n        break\n      }\n    }\n    return \"comment\"\n  }\n\n  function Context(prev, align, indented) {\n    this.prev = prev\n    this.align = align\n    this.indented = indented\n  }\n\n  function pushContext(state, stream) {\n    var align = stream.match(/^\\s*($|\\/[\\/\\*])/, false) ? null : stream.column() + 1\n    state.context = new Context(state.context, align, state.indented)\n  }\n\n  function popContext(state) {\n    if (state.context) {\n      state.indented = state.context.indented\n      state.context = state.context.prev\n    }\n  }\n\n  CodeMirror.defineMode(\"swift\", function(config) {\n    return {\n      startState: function() {\n        return {\n          prev: null,\n          context: null,\n          indented: 0,\n          tokenize: []\n        }\n      },\n\n      token: function(stream, state) {\n        var prev = state.prev\n        state.prev = null\n        var tokenize = state.tokenize[state.tokenize.length - 1] || tokenBase\n        var style = tokenize(stream, state, prev)\n        if (!style || style == \"comment\") state.prev = prev\n        else if (!state.prev) state.prev = style\n\n        if (style == \"punctuation\") {\n          var bracket = /[\\(\\[\\{]|([\\]\\)\\}])/.exec(stream.current())\n          if (bracket) (bracket[1] ? popContext : pushContext)(state, stream)\n        }\n\n        return style\n      },\n\n      indent: function(state, textAfter) {\n        var cx = state.context\n        if (!cx) return 0\n        var closing = /^[\\]\\}\\)]/.test(textAfter)\n        if (cx.align != null) return cx.align - (closing ? 1 : 0)\n        return cx.indented + (closing ? 0 : config.indentUnit)\n      },\n\n      electricInput: /^\\s*[\\)\\}\\]]$/,\n\n      lineComment: \"//\",\n      blockCommentStart: \"/*\",\n      blockCommentEnd: \"*/\",\n      fold: \"brace\",\n      closeBrackets: \"()[]{}''\\\"\\\"``\"\n    }\n  })\n\n  CodeMirror.defineMIME(\"text/x-swift\",\"swift\")\n});\n"]}