{"version":3,"file":"solr-Dv5yQw8C.cjs","sources":["../../../node_modules/@codemirror/legacy-modes/mode/solr.js"],"sourcesContent":["var isStringChar = /[^\\s\\|\\!\\+\\-\\*\\?\\~\\^\\&\\:\\(\\)\\[\\]\\{\\}\\\"\\\\]/;\nvar isOperatorChar = /[\\|\\!\\+\\-\\*\\?\\~\\^\\&]/;\nvar isOperatorString = /^(OR|AND|NOT|TO)$/;\n\nfunction isNumber(word) {\n  return parseFloat(word).toString() === word;\n}\n\nfunction tokenString(quote) {\n  return function(stream, state) {\n    var escaped = false, next;\n    while ((next = stream.next()) != null) {\n      if (next == quote && !escaped) break;\n      escaped = !escaped && next == \"\\\\\";\n    }\n\n    if (!escaped) state.tokenize = tokenBase;\n    return \"string\";\n  };\n}\n\nfunction tokenOperator(operator) {\n  return function(stream, state) {\n    if (operator == \"|\")\n      stream.eat(/\\|/);\n    else if (operator == \"&\")\n      stream.eat(/\\&/);\n\n    state.tokenize = tokenBase;\n    return \"operator\";\n  };\n}\n\nfunction tokenWord(ch) {\n  return function(stream, state) {\n    var word = ch;\n    while ((ch = stream.peek()) && ch.match(isStringChar) != null) {\n      word += stream.next();\n    }\n\n    state.tokenize = tokenBase;\n    if (isOperatorString.test(word))\n      return \"operator\";\n    else if (isNumber(word))\n      return \"number\";\n    else if (stream.peek() == \":\")\n      return \"propertyName\";\n    else\n      return \"string\";\n  };\n}\n\nfunction tokenBase(stream, state) {\n  var ch = stream.next();\n  if (ch == '\"')\n    state.tokenize = tokenString(ch);\n  else if (isOperatorChar.test(ch))\n    state.tokenize = tokenOperator(ch);\n  else if (isStringChar.test(ch))\n    state.tokenize = tokenWord(ch);\n\n  return (state.tokenize != tokenBase) ? state.tokenize(stream, state) : null;\n}\n\nexport const solr = {\n  name: \"solr\",\n\n  startState: function() {\n    return {\n      tokenize: tokenBase\n    };\n  },\n\n  token: function(stream, state) {\n    if (stream.eatSpace()) return null;\n    return state.tokenize(stream, state);\n  }\n};\n"],"names":["isStringChar","isOperatorChar","isOperatorString","tokenWord","ch","stream","state","word","peek","match","next","tokenize","tokenBase","test","parseFloat","toString","isNumber","operator","quote","escaped","eat","solr","name","startState","token","eatSpace"],"mappings":"gFAAA,IAAIA,EAAe,4CACfC,EAAiB,uBACjBC,EAAmB,oBA+BvB,SAASC,EAAUC,GACjB,OAAO,SAASC,EAAQC,GAEtB,IADA,IAAIC,EAAOH,GACHA,EAAKC,EAAOG,SAAqC,MAA1BJ,EAAGK,MAAMT,IACtCO,GAAQF,EAAOK,OAIjB,OADAJ,EAAMK,SAAWC,EACbV,EAAiBW,KAAKN,GACjB,WAtCb,SAAkBA,GAChB,OAAOO,WAAWP,GAAMQ,aAAeR,CACzC,CAqCaS,CAAST,GACT,SACiB,KAAjBF,EAAOG,OACP,eAEA,QACX,CACF,CAEA,SAASI,EAAUP,EAAQC,GACzB,IAhCqBW,EAbFC,EA6Cfd,EAAKC,EAAOK,OAQhB,MAPU,KAANN,EACFE,EAAMK,UA/CWO,EA+CYd,EA9CxB,SAASC,EAAQC,GAEtB,IADA,IAAqBI,EAAjBS,GAAU,EACmB,OAAzBT,EAAOL,EAAOK,UAChBA,GAAQQ,GAAUC,IACtBA,GAAWA,GAAmB,MAART,EAIxB,OADKS,IAASb,EAAMK,SAAWC,GACxB,QACT,GAsCSX,EAAeY,KAAKT,GAC3BE,EAAMK,UApCaM,EAoCYb,EAnC1B,SAASC,EAAQC,GAOtB,MANgB,KAAZW,EACFZ,EAAOe,IAAI,MACQ,KAAZH,GACPZ,EAAOe,IAAI,MAEbd,EAAMK,SAAWC,EACV,UACT,GA4BSZ,EAAaa,KAAKT,KACzBE,EAAMK,SAAWR,EAAUC,IAErBE,EAAMK,UAAYC,EAAaN,EAAMK,SAASN,EAAQC,GAAS,IACzE,CAEY,MAACe,EAAO,CAClBC,KAAM,OAENC,WAAY,WACV,MAAO,CACLZ,SAAUC,EAEd,EAEAY,MAAO,SAASnB,EAAQC,GACtB,OAAID,EAAOoB,WAAmB,KACvBnB,EAAMK,SAASN,EAAQC,EAChC","x_google_ignoreList":[0]}