{"version":3,"file":"spreadsheet-sA8wKbVn.cjs","sources":["../../../node_modules/@codemirror/legacy-modes/mode/spreadsheet.js"],"sourcesContent":["export const spreadsheet = {\n  name: \"spreadsheet\",\n\n  startState: function () {\n    return {\n      stringType: null,\n      stack: []\n    };\n  },\n  token: function (stream, state) {\n    if (!stream) return;\n\n    //check for state changes\n    if (state.stack.length === 0) {\n      //strings\n      if ((stream.peek() == '\"') || (stream.peek() == \"'\")) {\n        state.stringType = stream.peek();\n        stream.next(); // Skip quote\n        state.stack.unshift(\"string\");\n      }\n    }\n\n    //return state\n    //stack has\n    switch (state.stack[0]) {\n    case \"string\":\n      while (state.stack[0] === \"string\" && !stream.eol()) {\n        if (stream.peek() === state.stringType) {\n          stream.next(); // Skip quote\n          state.stack.shift(); // Clear flag\n        } else if (stream.peek() === \"\\\\\") {\n          stream.next();\n          stream.next();\n        } else {\n          stream.match(/^.[^\\\\\\\"\\']*/);\n        }\n      }\n      return \"string\";\n\n    case \"characterClass\":\n      while (state.stack[0] === \"characterClass\" && !stream.eol()) {\n        if (!(stream.match(/^[^\\]\\\\]+/) || stream.match(/^\\\\./)))\n          state.stack.shift();\n      }\n      return \"operator\";\n    }\n\n    var peek = stream.peek();\n\n    //no stack\n    switch (peek) {\n    case \"[\":\n      stream.next();\n      state.stack.unshift(\"characterClass\");\n      return \"bracket\";\n    case \":\":\n      stream.next();\n      return \"operator\";\n    case \"\\\\\":\n      if (stream.match(/\\\\[a-z]+/)) return \"string.special\";\n      else {\n        stream.next();\n        return \"atom\";\n      }\n    case \".\":\n    case \",\":\n    case \";\":\n    case \"*\":\n    case \"-\":\n    case \"+\":\n    case \"^\":\n    case \"<\":\n    case \"/\":\n    case \"=\":\n      stream.next();\n      return \"atom\";\n    case \"$\":\n      stream.next();\n      return \"builtin\";\n    }\n\n    if (stream.match(/\\d+/)) {\n      if (stream.match(/^\\w+/)) return \"error\";\n      return \"number\";\n    } else if (stream.match(/^[a-zA-Z_]\\w*/)) {\n      if (stream.match(/(?=[\\(.])/, false)) return \"keyword\";\n      return \"variable\";\n    } else if ([\"[\", \"]\", \"(\", \")\", \"{\", \"}\"].indexOf(peek) != -1) {\n      stream.next();\n      return \"bracket\";\n    } else if (!stream.eatSpace()) {\n      stream.next();\n    }\n    return null;\n  }\n};\n"],"names":["name","startState","stringType","stack","token","stream","state","length","peek","next","unshift","eol","shift","match","indexOf","eatSpace"],"mappings":"oGAA2B,CACzBA,KAAM,cAENC,WAAY,WACV,MAAO,CACLC,WAAY,KACZC,MAAO,GAEX,EACAC,MAAO,SAAUC,EAAQC,GACvB,GAAKD,EAAL,CAcA,OAX2B,IAAvBC,EAAMH,MAAMI,SAEQ,KAAjBF,EAAOG,QAAoC,KAAjBH,EAAOG,SACpCF,EAAMJ,WAAaG,EAAOG,OAC1BH,EAAOI,OACPH,EAAMH,MAAMO,QAAQ,YAMhBJ,EAAMH,MAAM,IACpB,IAAK,SACH,KAA0B,WAAnBG,EAAMH,MAAM,KAAoBE,EAAOM,OACxCN,EAAOG,SAAWF,EAAMJ,YAC1BG,EAAOI,OACPH,EAAMH,MAAMS,SACe,OAAlBP,EAAOG,QAChBH,EAAOI,OACPJ,EAAOI,QAEPJ,EAAOQ,MAAM,gBAGjB,MAAO,SAET,IAAK,iBACH,KAA0B,mBAAnBP,EAAMH,MAAM,KAA4BE,EAAOM,OAC9CN,EAAOQ,MAAM,cAAgBR,EAAOQ,MAAM,SAC9CP,EAAMH,MAAMS,QAEhB,MAAO,WAGT,IAAIJ,EAAOH,EAAOG,OAGlB,OAAQA,GACR,IAAK,IAGH,OAFAH,EAAOI,OACPH,EAAMH,MAAMO,QAAQ,kBACb,UACT,IAAK,IAEH,OADAL,EAAOI,OACA,WACT,IAAK,KACH,OAAIJ,EAAOQ,MAAM,YAAoB,kBAEnCR,EAAOI,OACA,QAEX,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IAEH,OADAJ,EAAOI,OACA,OACT,IAAK,IAEH,OADAJ,EAAOI,OACA,UAGT,OAAIJ,EAAOQ,MAAM,OACXR,EAAOQ,MAAM,QAAgB,QAC1B,SACER,EAAOQ,MAAM,iBAClBR,EAAOQ,MAAM,aAAa,GAAe,UACtC,YACkD,GAAhD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAAKC,QAAQN,IAChDH,EAAOI,OACA,YACGJ,EAAOU,YACjBV,EAAOI,OAEF,KAnFM,CAoFf","x_google_ignoreList":[0]}