1{"version":3,"sources":["../../node_modules/codemirror/mode/commonlisp/commonlisp.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","defineMode","config","specialForm","assumeBody","numLiteral","symbol","type","readSym","stream","ch","next","test","backUp","current","base","state","eatSpace","match","tokenize","inString","skipToEnd","skipTo","inComment","name","charAt","lastType","escaped","last","startState","ctx","prev","start","indentTo","token","sol","style","indentUnit","column","indent","_textAfter","i","closeBrackets","pairs","lineComment","blockCommentStart","blockCommentEnd","defineMIME"],"mappings":"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","file":"commonlisp.min.js","sourcesContent":["// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"commonlisp\", function (config) {\n  var specialForm = /^(block|let*|return-from|catch|load-time-value|setq|eval-when|locally|symbol-macrolet|flet|macrolet|tagbody|function|multiple-value-call|the|go|multiple-value-prog1|throw|if|progn|unwind-protect|labels|progv|let|quote)$/;\n  var assumeBody = /^with|^def|^do|^prog|case$|^cond$|bind$|when$|unless$/;\n  var numLiteral = /^(?:[+\\-]?(?:\\d+|\\d*\\.\\d+)(?:[efd][+\\-]?\\d+)?|[+\\-]?\\d+(?:\\/[+\\-]?\\d+)?|#b[+\\-]?[01]+|#o[+\\-]?[0-7]+|#x[+\\-]?[\\da-f]+)/;\n  var symbol = /[^\\s'`,@()\\[\\]\";]/;\n  var type;\n\n  function readSym(stream) {\n    var ch;\n    while (ch = stream.next()) {\n      if (ch == \"\\\\\") stream.next();\n      else if (!symbol.test(ch)) { stream.backUp(1); break; }\n    }\n    return stream.current();\n  }\n\n  function base(stream, state) {\n    if (stream.eatSpace()) {type = \"ws\"; return null;}\n    if (stream.match(numLiteral)) return \"number\";\n    var ch = stream.next();\n    if (ch == \"\\\\\") ch = stream.next();\n\n    if (ch == '\"') return (state.tokenize = inString)(stream, state);\n    else if (ch == \"(\") { type = \"open\"; return \"bracket\"; }\n    else if (ch == \")\" || ch == \"]\") { type = \"close\"; return \"bracket\"; }\n    else if (ch == \";\") { stream.skipToEnd(); type = \"ws\"; return \"comment\"; }\n    else if (/['`,@]/.test(ch)) return null;\n    else if (ch == \"|\") {\n      if (stream.skipTo(\"|\")) { stream.next(); return \"symbol\"; }\n      else { stream.skipToEnd(); return \"error\"; }\n    } else if (ch == \"#\") {\n      var ch = stream.next();\n      if (ch == \"(\") { type = \"open\"; return \"bracket\"; }\n      else if (/[+\\-=\\.']/.test(ch)) return null;\n      else if (/\\d/.test(ch) && stream.match(/^\\d*#/)) return null;\n      else if (ch == \"|\") return (state.tokenize = inComment)(stream, state);\n      else if (ch == \":\") { readSym(stream); return \"meta\"; }\n      else if (ch == \"\\\\\") { stream.next(); readSym(stream); return \"string-2\" }\n      else return \"error\";\n    } else {\n      var name = readSym(stream);\n      if (name == \".\") return null;\n      type = \"symbol\";\n      if (name == \"nil\" || name == \"t\" || name.charAt(0) == \":\") return \"atom\";\n      if (state.lastType == \"open\" && (specialForm.test(name) || assumeBody.test(name))) return \"keyword\";\n      if (name.charAt(0) == \"&\") return \"variable-2\";\n      return \"variable\";\n    }\n  }\n\n  function inString(stream, state) {\n    var escaped = false, next;\n    while (next = stream.next()) {\n      if (next == '\"' && !escaped) { state.tokenize = base; break; }\n      escaped = !escaped && next == \"\\\\\";\n    }\n    return \"string\";\n  }\n\n  function inComment(stream, state) {\n    var next, last;\n    while (next = stream.next()) {\n      if (next == \"#\" && last == \"|\") { state.tokenize = base; break; }\n      last = next;\n    }\n    type = \"ws\";\n    return \"comment\";\n  }\n\n  return {\n    startState: function () {\n      return {ctx: {prev: null, start: 0, indentTo: 0}, lastType: null, tokenize: base};\n    },\n\n    token: function (stream, state) {\n      if (stream.sol() && typeof state.ctx.indentTo != \"number\")\n        state.ctx.indentTo = state.ctx.start + 1;\n\n      type = null;\n      var style = state.tokenize(stream, state);\n      if (type != \"ws\") {\n        if (state.ctx.indentTo == null) {\n          if (type == \"symbol\" && assumeBody.test(stream.current()))\n            state.ctx.indentTo = state.ctx.start + config.indentUnit;\n          else\n            state.ctx.indentTo = \"next\";\n        } else if (state.ctx.indentTo == \"next\") {\n          state.ctx.indentTo = stream.column();\n        }\n        state.lastType = type;\n      }\n      if (type == \"open\") state.ctx = {prev: state.ctx, start: stream.column(), indentTo: null};\n      else if (type == \"close\") state.ctx = state.ctx.prev || state.ctx;\n      return style;\n    },\n\n    indent: function (state, _textAfter) {\n      var i = state.ctx.indentTo;\n      return typeof i == \"number\" ? i : state.ctx.start + 1;\n    },\n\n    closeBrackets: {pairs: \"()[]{}\\\"\\\"\"},\n    lineComment: \";;\",\n    blockCommentStart: \"#|\",\n    blockCommentEnd: \"|#\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-common-lisp\", \"commonlisp\");\n\n});\n"]}