{"version":3,"file":"vb-CW7t9lKI.cjs","sources":["../../../node_modules/@codemirror/legacy-modes/mode/vb.js"],"sourcesContent":["var ERRORCLASS = 'error';\n\nfunction wordRegexp(words) {\n  return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\", \"i\");\n}\n\nvar singleOperators = new RegExp(\"^[\\\\+\\\\-\\\\*/%&\\\\\\\\|\\\\^~<>!]\");\nvar singleDelimiters = new RegExp('^[\\\\(\\\\)\\\\[\\\\]\\\\{\\\\}@,:`=;\\\\.]');\nvar doubleOperators = new RegExp(\"^((==)|(<>)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\\\*\\\\*))\");\nvar doubleDelimiters = new RegExp(\"^((\\\\+=)|(\\\\-=)|(\\\\*=)|(%=)|(/=)|(&=)|(\\\\|=)|(\\\\^=))\");\nvar tripleDelimiters = new RegExp(\"^((//=)|(>>=)|(<<=)|(\\\\*\\\\*=))\");\nvar identifiers = new RegExp(\"^[_A-Za-z][_A-Za-z0-9]*\");\n\nvar openingKeywords = ['class','module', 'sub','enum','select','while','if','function', 'get','set','property', 'try', 'structure', 'synclock', 'using', 'with'];\nvar middleKeywords = ['else','elseif','case', 'catch', 'finally'];\nvar endKeywords = ['next','loop'];\n\nvar operatorKeywords = ['and', \"andalso\", 'or', 'orelse', 'xor', 'in', 'not', 'is', 'isnot', 'like'];\nvar wordOperators = wordRegexp(operatorKeywords);\n\nvar commonKeywords = [\"#const\", \"#else\", \"#elseif\", \"#end\", \"#if\", \"#region\", \"addhandler\", \"addressof\", \"alias\", \"as\", \"byref\", \"byval\", \"cbool\", \"cbyte\", \"cchar\", \"cdate\", \"cdbl\", \"cdec\", \"cint\", \"clng\", \"cobj\", \"compare\", \"const\", \"continue\", \"csbyte\", \"cshort\", \"csng\", \"cstr\", \"cuint\", \"culng\", \"cushort\", \"declare\", \"default\", \"delegate\", \"dim\", \"directcast\", \"each\", \"erase\", \"error\", \"event\", \"exit\", \"explicit\", \"false\", \"for\", \"friend\", \"gettype\", \"goto\", \"handles\", \"implements\", \"imports\", \"infer\", \"inherits\", \"interface\", \"isfalse\", \"istrue\", \"lib\", \"me\", \"mod\", \"mustinherit\", \"mustoverride\", \"my\", \"mybase\", \"myclass\", \"namespace\", \"narrowing\", \"new\", \"nothing\", \"notinheritable\", \"notoverridable\", \"of\", \"off\", \"on\", \"operator\", \"option\", \"optional\", \"out\", \"overloads\", \"overridable\", \"overrides\", \"paramarray\", \"partial\", \"private\", \"protected\", \"public\", \"raiseevent\", \"readonly\", \"redim\", \"removehandler\", \"resume\", \"return\", \"shadows\", \"shared\", \"static\", \"step\", \"stop\", \"strict\", \"then\", \"throw\", \"to\", \"true\", \"trycast\", \"typeof\", \"until\", \"until\", \"when\", \"widening\", \"withevents\", \"writeonly\"];\n\nvar commontypes = ['object', 'boolean', 'char', 'string', 'byte', 'sbyte', 'short', 'ushort', 'int16', 'uint16', 'integer', 'uinteger', 'int32', 'uint32', 'long', 'ulong', 'int64', 'uint64', 'decimal', 'single', 'double', 'float', 'date', 'datetime', 'intptr', 'uintptr'];\n\nvar keywords = wordRegexp(commonKeywords);\nvar types = wordRegexp(commontypes);\nvar stringPrefixes = '\"';\n\nvar opening = wordRegexp(openingKeywords);\nvar middle = wordRegexp(middleKeywords);\nvar closing = wordRegexp(endKeywords);\nvar doubleClosing = wordRegexp(['end']);\nvar doOpening = wordRegexp(['do']);\n\nvar indentInfo = null;\n\nfunction indent(_stream, state) {\n  state.currentIndent++;\n}\n\nfunction dedent(_stream, state) {\n  state.currentIndent--;\n}\n// tokenizers\nfunction tokenBase(stream, state) {\n  if (stream.eatSpace()) {\n    return null;\n  }\n\n  var ch = stream.peek();\n\n  // Handle Comments\n  if (ch === \"'\") {\n    stream.skipToEnd();\n    return 'comment';\n  }\n\n\n  // Handle Number Literals\n  if (stream.match(/^((&H)|(&O))?[0-9\\.a-f]/i, false)) {\n    var floatLiteral = false;\n    // Floats\n    if (stream.match(/^\\d*\\.\\d+F?/i)) { floatLiteral = true; }\n    else if (stream.match(/^\\d+\\.\\d*F?/)) { floatLiteral = true; }\n    else if (stream.match(/^\\.\\d+F?/)) { floatLiteral = true; }\n\n    if (floatLiteral) {\n      // Float literals may be \"imaginary\"\n      stream.eat(/J/i);\n      return 'number';\n    }\n    // Integers\n    var intLiteral = false;\n    // Hex\n    if (stream.match(/^&H[0-9a-f]+/i)) { intLiteral = true; }\n    // Octal\n    else if (stream.match(/^&O[0-7]+/i)) { intLiteral = true; }\n    // Decimal\n    else if (stream.match(/^[1-9]\\d*F?/)) {\n      // Decimal literals may be \"imaginary\"\n      stream.eat(/J/i);\n      // TODO - Can you have imaginary longs?\n      intLiteral = true;\n    }\n    // Zero by itself with no other piece of number.\n    else if (stream.match(/^0(?![\\dx])/i)) { intLiteral = true; }\n    if (intLiteral) {\n      // Integer literals may be \"long\"\n      stream.eat(/L/i);\n      return 'number';\n    }\n  }\n\n  // Handle Strings\n  if (stream.match(stringPrefixes)) {\n    state.tokenize = tokenStringFactory(stream.current());\n    return state.tokenize(stream, state);\n  }\n\n  // Handle operators and Delimiters\n  if (stream.match(tripleDelimiters) || stream.match(doubleDelimiters)) {\n    return null;\n  }\n  if (stream.match(doubleOperators)\n      || stream.match(singleOperators)\n      || stream.match(wordOperators)) {\n    return 'operator';\n  }\n  if (stream.match(singleDelimiters)) {\n    return null;\n  }\n  if (stream.match(doOpening)) {\n    indent(stream,state);\n    state.doInCurrentLine = true;\n    return 'keyword';\n  }\n  if (stream.match(opening)) {\n    if (! state.doInCurrentLine)\n      indent(stream,state);\n    else\n      state.doInCurrentLine = false;\n    return 'keyword';\n  }\n  if (stream.match(middle)) {\n    return 'keyword';\n  }\n\n  if (stream.match(doubleClosing)) {\n    dedent(stream,state);\n    dedent(stream,state);\n    return 'keyword';\n  }\n  if (stream.match(closing)) {\n    dedent(stream,state);\n    return 'keyword';\n  }\n\n  if (stream.match(types)) {\n    return 'keyword';\n  }\n\n  if (stream.match(keywords)) {\n    return 'keyword';\n  }\n\n  if (stream.match(identifiers)) {\n    return 'variable';\n  }\n\n  // Handle non-detected items\n  stream.next();\n  return ERRORCLASS;\n}\n\nfunction tokenStringFactory(delimiter) {\n  var singleline = delimiter.length == 1;\n  var OUTCLASS = 'string';\n\n  return function(stream, state) {\n    while (!stream.eol()) {\n      stream.eatWhile(/[^'\"]/);\n      if (stream.match(delimiter)) {\n        state.tokenize = tokenBase;\n        return OUTCLASS;\n      } else {\n        stream.eat(/['\"]/);\n      }\n    }\n    if (singleline) {\n      state.tokenize = tokenBase;\n    }\n    return OUTCLASS;\n  };\n}\n\n\nfunction tokenLexer(stream, state) {\n  var style = state.tokenize(stream, state);\n  var current = stream.current();\n\n  // Handle '.' connected identifiers\n  if (current === '.') {\n    style = state.tokenize(stream, state);\n    if (style === 'variable') {\n      return 'variable';\n    } else {\n      return ERRORCLASS;\n    }\n  }\n\n\n  var delimiter_index = '[({'.indexOf(current);\n  if (delimiter_index !== -1) {\n    indent(stream, state );\n  }\n  if (indentInfo === 'dedent') {\n    if (dedent(stream, state)) {\n      return ERRORCLASS;\n    }\n  }\n  delimiter_index = '])}'.indexOf(current);\n  if (delimiter_index !== -1) {\n    if (dedent(stream, state)) {\n      return ERRORCLASS;\n    }\n  }\n\n  return style;\n}\n\nexport const vb = {\n  name: \"vb\",\n\n  startState: function() {\n    return {\n      tokenize: tokenBase,\n      lastToken: null,\n      currentIndent: 0,\n      nextLineIndent: 0,\n      doInCurrentLine: false\n\n\n    };\n  },\n\n  token: function(stream, state) {\n    if (stream.sol()) {\n      state.currentIndent += state.nextLineIndent;\n      state.nextLineIndent = 0;\n      state.doInCurrentLine = 0;\n    }\n    var style = tokenLexer(stream, state);\n\n    state.lastToken = {style:style, content: stream.current()};\n\n\n\n    return style;\n  },\n\n  indent: function(state, textAfter, cx) {\n    var trueText = textAfter.replace(/^\\s+|\\s+$/g, '') ;\n    if (trueText.match(closing) || trueText.match(doubleClosing) || trueText.match(middle)) return cx.unit*(state.currentIndent-1);\n    if(state.currentIndent < 0) return 0;\n    return state.currentIndent * cx.unit;\n  },\n\n  languageData: {\n    closeBrackets: {brackets: [\"(\", \"[\", \"{\", '\"']},\n    commentTokens: {line: \"'\"},\n    autocomplete: openingKeywords.concat(middleKeywords).concat(endKeywords)\n      .concat(operatorKeywords).concat(commonKeywords).concat(commontypes)\n  }\n};\n"],"names":["ERRORCLASS","wordRegexp","words","RegExp","join","singleOperators","singleDelimiters","doubleOperators","doubleDelimiters","tripleDelimiters","identifiers","openingKeywords","middleKeywords","endKeywords","operatorKeywords","wordOperators","commonKeywords","commontypes","keywords","types","opening","middle","closing","doubleClosing","doOpening","indent","_stream","state","currentIndent","dedent","tokenBase","stream","eatSpace","delimiter","singleline","OUTCLASS","peek","skipToEnd","match","floatLiteral","eat","intLiteral","tokenize","current","length","eol","eatWhile","doInCurrentLine","next","vb","name","startState","lastToken","nextLineIndent","token","sol","style","delimiter_index","indexOf","tokenLexer","content","textAfter","cx","trueText","replace","unit","languageData","closeBrackets","brackets","commentTokens","line","autocomplete","concat"],"mappings":"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","x_google_ignoreList":[0]}