{"version":3,"file":"commonlisp-BsK54Tey.cjs","sources":["../../../node_modules/@codemirror/legacy-modes/mode/commonlisp.js"],"sourcesContent":["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)$/;\nvar assumeBody = /^with|^def|^do|^prog|case$|^cond$|bind$|when$|unless$/;\nvar numLiteral = /^(?:[+\\-]?(?:\\d+|\\d*\\.\\d+)(?:[efd][+\\-]?\\d+)?|[+\\-]?\\d+(?:\\/[+\\-]?\\d+)?|#b[+\\-]?[01]+|#o[+\\-]?[0-7]+|#x[+\\-]?[\\da-f]+)/;\nvar symbol = /[^\\s'`,@()\\[\\]\";]/;\nvar type;\n\nfunction 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\nfunction 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 == \")\") { 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 \"variableName\"; }\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.special\" }\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 \"variableName.special\";\n    return \"variableName\";\n  }\n}\n\nfunction 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\nfunction 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\nexport const commonLisp = {\n  name: \"commonlisp\",\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 + stream.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) {\n    var i = state.ctx.indentTo;\n    return typeof i == \"number\" ? i : state.ctx.start + 1;\n  },\n\n  languageData: {\n    commentTokens: {line: \";;\", block: {open: \"#|\", close: \"|#\"}},\n    closeBrackets: {brackets: [\"(\", \"[\", \"{\", '\"']}\n  }\n};\n\n"],"names":["type","specialForm","assumeBody","numLiteral","symbol","readSym","stream","ch","next","test","backUp","current","base","state","eatSpace","match","tokenize","inString","skipToEnd","skipTo","inComment","name","charAt","lastType","escaped","last","commonLisp","startState","ctx","prev","start","indentTo","token","sol","style","indentUnit","column","indent","i","languageData","commentTokens","line","block","open","close","closeBrackets","brackets"],"mappings":"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","x_google_ignoreList":[0]}