{"version":3,"sources":["../../node_modules/codemirror/mode/vb/vb.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","defineMode","conf","parserConf","ERRORCLASS","wordRegexp","words","RegExp","join","singleOperators","singleDelimiters","doubleOperators","doubleDelimiters","tripleDelimiters","identifiers","openingKeywords","middleKeywords","endKeywords","operatorKeywords","wordOperators","commonKeywords","commontypes","keywords","types","stringPrefixes","opening","middle","closing","doubleClosing","doOpening","indentInfo","registerHelper","concat","indent","_stream","state","currentIndent","dedent","tokenBase","stream","eatSpace","ch","peek","skipToEnd","match","floatLiteral","eat","intLiteral","tokenize","tokenStringFactory","current","doInCurrentLine","next","delimiter","singleline","length","OUTCLASS","eol","eatWhile","singleLineStringErrors","tokenLexer","style","delimiter_index","indexOf","external","electricChars","startState","lastToken","nextLineIndent","token","sol","content","textAfter","trueText","replace","indentUnit","lineComment","defineMIME"],"mappings":"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","file":"vb.min.js","sourcesContent":["// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"vb\", function(conf, parserConf) {\n var ERRORCLASS = 'error';\n\n function wordRegexp(words) {\n return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\", \"i\");\n }\n\n var singleOperators = new RegExp(\"^[\\\\+\\\\-\\\\*/%&\\\\\\\\|\\\\^~<>!]\");\n var singleDelimiters = new RegExp('^[\\\\(\\\\)\\\\[\\\\]\\\\{\\\\}@,:`=;\\\\.]');\n var doubleOperators = new RegExp(\"^((==)|(<>)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\\\*\\\\*))\");\n var doubleDelimiters = new RegExp(\"^((\\\\+=)|(\\\\-=)|(\\\\*=)|(%=)|(/=)|(&=)|(\\\\|=)|(\\\\^=))\");\n var tripleDelimiters = new RegExp(\"^((//=)|(>>=)|(<<=)|(\\\\*\\\\*=))\");\n var identifiers = new RegExp(\"^[_A-Za-z][_A-Za-z0-9]*\");\n\n var openingKeywords = ['class','module', 'sub','enum','select','while','if','function', 'get','set','property', 'try', 'structure', 'synclock', 'using', 'with'];\n var middleKeywords = ['else','elseif','case', 'catch', 'finally'];\n var endKeywords = ['next','loop'];\n\n var operatorKeywords = ['and', \"andalso\", 'or', 'orelse', 'xor', 'in', 'not', 'is', 'isnot', 'like'];\n var wordOperators = wordRegexp(operatorKeywords);\n\n var 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\n var 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\n var keywords = wordRegexp(commonKeywords);\n var types = wordRegexp(commontypes);\n var stringPrefixes = '\"';\n\n var opening = wordRegexp(openingKeywords);\n var middle = wordRegexp(middleKeywords);\n var closing = wordRegexp(endKeywords);\n var doubleClosing = wordRegexp(['end']);\n var doOpening = wordRegexp(['do']);\n\n var indentInfo = null;\n\n CodeMirror.registerHelper(\"hintWords\", \"vb\", openingKeywords.concat(middleKeywords).concat(endKeywords)\n .concat(operatorKeywords).concat(commonKeywords).concat(commontypes));\n\n function indent(_stream, state) {\n state.currentIndent++;\n }\n\n function dedent(_stream, state) {\n state.currentIndent--;\n }\n // tokenizers\n function 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\n function 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 if (parserConf.singleLineStringErrors) {\n return ERRORCLASS;\n } else {\n state.tokenize = tokenBase;\n }\n }\n return OUTCLASS;\n };\n }\n\n\n function 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\n var external = {\n electricChars:\"dDpPtTfFeE \",\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) {\n var trueText = textAfter.replace(/^\\s+|\\s+$/g, '') ;\n if (trueText.match(closing) || trueText.match(doubleClosing) || trueText.match(middle)) return conf.indentUnit*(state.currentIndent-1);\n if(state.currentIndent < 0) return 0;\n return state.currentIndent * conf.indentUnit;\n },\n\n lineComment: \"'\"\n };\n return external;\n});\n\nCodeMirror.defineMIME(\"text/x-vb\", \"vb\");\n\n});\n"]}