{"version":3,"file":"sparql-Ne__rGfz.cjs","sources":["../../../node_modules/@codemirror/legacy-modes/mode/sparql.js"],"sourcesContent":["var curPunc;\n\nfunction wordRegexp(words) {\n  return new RegExp(\"^(?:\" + words.join(\"|\") + \")$\", \"i\");\n}\nvar ops = wordRegexp([\"str\", \"lang\", \"langmatches\", \"datatype\", \"bound\", \"sameterm\", \"isiri\", \"isuri\",\n                      \"iri\", \"uri\", \"bnode\", \"count\", \"sum\", \"min\", \"max\", \"avg\", \"sample\",\n                      \"group_concat\", \"rand\", \"abs\", \"ceil\", \"floor\", \"round\", \"concat\", \"substr\", \"strlen\",\n                      \"replace\", \"ucase\", \"lcase\", \"encode_for_uri\", \"contains\", \"strstarts\", \"strends\",\n                      \"strbefore\", \"strafter\", \"year\", \"month\", \"day\", \"hours\", \"minutes\", \"seconds\",\n                      \"timezone\", \"tz\", \"now\", \"uuid\", \"struuid\", \"md5\", \"sha1\", \"sha256\", \"sha384\",\n                      \"sha512\", \"coalesce\", \"if\", \"strlang\", \"strdt\", \"isnumeric\", \"regex\", \"exists\",\n                      \"isblank\", \"isliteral\", \"a\", \"bind\"]);\nvar keywords = wordRegexp([\"base\", \"prefix\", \"select\", \"distinct\", \"reduced\", \"construct\", \"describe\",\n                           \"ask\", \"from\", \"named\", \"where\", \"order\", \"limit\", \"offset\", \"filter\", \"optional\",\n                           \"graph\", \"by\", \"asc\", \"desc\", \"as\", \"having\", \"undef\", \"values\", \"group\",\n                           \"minus\", \"in\", \"not\", \"service\", \"silent\", \"using\", \"insert\", \"delete\", \"union\",\n                           \"true\", \"false\", \"with\",\n                           \"data\", \"copy\", \"to\", \"move\", \"add\", \"create\", \"drop\", \"clear\", \"load\", \"into\"]);\nvar operatorChars = /[*+\\-<>=&|\\^\\/!\\?]/;\nvar PN_CHARS = \"[A-Za-z_\\\\-0-9]\";\nvar PREFIX_START = new RegExp(\"[A-Za-z]\");\nvar PREFIX_REMAINDER = new RegExp(\"((\" + PN_CHARS + \"|\\\\.)*(\" + PN_CHARS + \"))?:\");\n\nfunction tokenBase(stream, state) {\n  var ch = stream.next();\n  curPunc = null;\n  if (ch == \"$\" || ch == \"?\") {\n    if(ch == \"?\" && stream.match(/\\s/, false)){\n      return \"operator\";\n    }\n    stream.match(/^[A-Za-z0-9_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][A-Za-z0-9_\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]*/);\n    return \"variableName.local\";\n  }\n  else if (ch == \"<\" && !stream.match(/^[\\s\\u00a0=]/, false)) {\n    stream.match(/^[^\\s\\u00a0>]*>?/);\n    return \"atom\";\n  }\n  else if (ch == \"\\\"\" || ch == \"'\") {\n    state.tokenize = tokenLiteral(ch);\n    return state.tokenize(stream, state);\n  }\n  else if (/[{}\\(\\),\\.;\\[\\]]/.test(ch)) {\n    curPunc = ch;\n    return \"bracket\";\n  }\n  else if (ch == \"#\") {\n    stream.skipToEnd();\n    return \"comment\";\n  }\n  else if (operatorChars.test(ch)) {\n    return \"operator\";\n  }\n  else if (ch == \":\") {\n    eatPnLocal(stream);\n    return \"atom\";\n  }\n  else if (ch == \"@\") {\n    stream.eatWhile(/[a-z\\d\\-]/i);\n    return \"meta\";\n  }\n  else if (PREFIX_START.test(ch) && stream.match(PREFIX_REMAINDER)) {\n    eatPnLocal(stream);\n    return \"atom\";\n  }\n  stream.eatWhile(/[_\\w\\d]/);\n  var word = stream.current();\n  if (ops.test(word))\n    return \"builtin\";\n  else if (keywords.test(word))\n    return \"keyword\";\n  else\n    return \"variable\";\n}\n\nfunction eatPnLocal(stream) {\n  stream.match(/(\\.(?=[\\w_\\-\\\\%])|[:\\w_-]|\\\\[-\\\\_~.!$&'()*+,;=/?#@%]|%[a-f\\d][a-f\\d])+/i);\n}\n\nfunction tokenLiteral(quote) {\n  return function(stream, state) {\n    var escaped = false, ch;\n    while ((ch = stream.next()) != null) {\n      if (ch == quote && !escaped) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      escaped = !escaped && ch == \"\\\\\";\n    }\n    return \"string\";\n  };\n}\n\nfunction pushContext(state, type, col) {\n  state.context = {prev: state.context, indent: state.indent, col: col, type: type};\n}\nfunction popContext(state) {\n  state.indent = state.context.indent;\n  state.context = state.context.prev;\n}\n\nexport const sparql = {\n  name: \"sparql\",\n\n  startState: function() {\n    return {tokenize: tokenBase,\n            context: null,\n            indent: 0,\n            col: 0};\n  },\n\n  token: function(stream, state) {\n    if (stream.sol()) {\n      if (state.context && state.context.align == null) state.context.align = false;\n      state.indent = stream.indentation();\n    }\n    if (stream.eatSpace()) return null;\n    var style = state.tokenize(stream, state);\n\n    if (style != \"comment\" && state.context && state.context.align == null && state.context.type != \"pattern\") {\n      state.context.align = true;\n    }\n\n    if (curPunc == \"(\") pushContext(state, \")\", stream.column());\n    else if (curPunc == \"[\") pushContext(state, \"]\", stream.column());\n    else if (curPunc == \"{\") pushContext(state, \"}\", stream.column());\n    else if (/[\\]\\}\\)]/.test(curPunc)) {\n      while (state.context && state.context.type == \"pattern\") popContext(state);\n      if (state.context && curPunc == state.context.type) {\n        popContext(state);\n        if (curPunc == \"}\" && state.context && state.context.type == \"pattern\")\n          popContext(state);\n      }\n    }\n    else if (curPunc == \".\" && state.context && state.context.type == \"pattern\") popContext(state);\n    else if (/atom|string|variable/.test(style) && state.context) {\n      if (/[\\}\\]]/.test(state.context.type))\n        pushContext(state, \"pattern\", stream.column());\n      else if (state.context.type == \"pattern\" && !state.context.align) {\n        state.context.align = true;\n        state.context.col = stream.column();\n      }\n    }\n\n    return style;\n  },\n\n  indent: function(state, textAfter, cx) {\n    var firstChar = textAfter && textAfter.charAt(0);\n    var context = state.context;\n    if (/[\\]\\}]/.test(firstChar))\n      while (context && context.type == \"pattern\") context = context.prev;\n\n    var closing = context && firstChar == context.type;\n    if (!context)\n      return 0;\n    else if (context.type == \"pattern\")\n      return context.col;\n    else if (context.align)\n      return context.col + (closing ? 0 : 1);\n    else\n      return context.indent + (closing ? 0 : cx.unit);\n  },\n\n  languageData: {\n    commentTokens: {line: \"#\"}\n  }\n};\n\n"],"names":["curPunc","wordRegexp","words","RegExp","join","ops","keywords","operatorChars","PN_CHARS","PREFIX_START","PREFIX_REMAINDER","tokenBase","stream","state","quote","ch","next","match","tokenize","escaped","test","skipToEnd","eatPnLocal","eatWhile","word","current","pushContext","type","col","context","prev","indent","popContext","sparql","name","startState","token","sol","align","indentation","eatSpace","style","column","textAfter","cx","firstChar","charAt","closing","unit","languageData","commentTokens","line"],"mappings":"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","x_google_ignoreList":[0]}