{"version":3,"sources":["../../node_modules/codemirror/mode/vbscript/vbscript.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","defineMode","conf","parserConf","ERRORCLASS","wordRegexp","words","RegExp","join","singleOperators","doubleOperators","singleDelimiters","brakets","identifiers","openingKeywords","middleKeywords","endKeywords","wordOperators","commonkeywords","atomWords","builtinFuncsWords","builtinConsts","builtinObjsWords","knownProperties","knownMethods","aspBuiltinObjsWords","aspKnownProperties","aspKnownMethods","knownWords","concat","isASP","keywords","atoms","builtinFuncs","builtinObjs","known","stringPrefixes","opening","middle","closing","doubleClosing","doOpening","noIndentWords","comment","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","substr","indexOf","external","electricChars","startState","lastToken","nextLineIndent","ignoreKeyword","token","sol","content","textAfter","trueText","replace","indentUnit","defineMIME"],"mappings":"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","file":"vbscript.min.js","sourcesContent":["// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n/*\nFor extra ASP classic objects, initialize CodeMirror instance with this option:\n isASP: true\n\nE.G.:\n var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n lineNumbers: true,\n isASP: true\n });\n*/\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(\"vbscript\", 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 doubleOperators = new RegExp(\"^((<>)|(<=)|(>=))\");\n var singleDelimiters = new RegExp('^[\\\\.,]');\n var brakets = new RegExp('^[\\\\(\\\\)]');\n var identifiers = new RegExp(\"^[A-Za-z][_A-Za-z0-9]*\");\n\n var openingKeywords = ['class','sub','select','while','if','function', 'property', 'with', 'for'];\n var middleKeywords = ['else','elseif','case'];\n var endKeywords = ['next','loop','wend'];\n\n var wordOperators = wordRegexp(['and', 'or', 'not', 'xor', 'is', 'mod', 'eqv', 'imp']);\n var commonkeywords = ['dim', 'redim', 'then', 'until', 'randomize',\n 'byval','byref','new','property', 'exit', 'in',\n 'const','private', 'public',\n 'get','set','let', 'stop', 'on error resume next', 'on error goto 0', 'option explicit', 'call', 'me'];\n\n //This list was from: http://msdn.microsoft.com/en-us/library/f8tbc79x(v=vs.84).aspx\n var atomWords = ['true', 'false', 'nothing', 'empty', 'null'];\n //This list was from: http://msdn.microsoft.com/en-us/library/3ca8tfek(v=vs.84).aspx\n var builtinFuncsWords = ['abs', 'array', 'asc', 'atn', 'cbool', 'cbyte', 'ccur', 'cdate', 'cdbl', 'chr', 'cint', 'clng', 'cos', 'csng', 'cstr', 'date', 'dateadd', 'datediff', 'datepart',\n 'dateserial', 'datevalue', 'day', 'escape', 'eval', 'execute', 'exp', 'filter', 'formatcurrency', 'formatdatetime', 'formatnumber', 'formatpercent', 'getlocale', 'getobject',\n 'getref', 'hex', 'hour', 'inputbox', 'instr', 'instrrev', 'int', 'fix', 'isarray', 'isdate', 'isempty', 'isnull', 'isnumeric', 'isobject', 'join', 'lbound', 'lcase', 'left',\n 'len', 'loadpicture', 'log', 'ltrim', 'rtrim', 'trim', 'maths', 'mid', 'minute', 'month', 'monthname', 'msgbox', 'now', 'oct', 'replace', 'rgb', 'right', 'rnd', 'round',\n 'scriptengine', 'scriptenginebuildversion', 'scriptenginemajorversion', 'scriptengineminorversion', 'second', 'setlocale', 'sgn', 'sin', 'space', 'split', 'sqr', 'strcomp',\n 'string', 'strreverse', 'tan', 'time', 'timer', 'timeserial', 'timevalue', 'typename', 'ubound', 'ucase', 'unescape', 'vartype', 'weekday', 'weekdayname', 'year'];\n\n //This list was from: http://msdn.microsoft.com/en-us/library/ydz4cfk3(v=vs.84).aspx\n var builtinConsts = ['vbBlack', 'vbRed', 'vbGreen', 'vbYellow', 'vbBlue', 'vbMagenta', 'vbCyan', 'vbWhite', 'vbBinaryCompare', 'vbTextCompare',\n 'vbSunday', 'vbMonday', 'vbTuesday', 'vbWednesday', 'vbThursday', 'vbFriday', 'vbSaturday', 'vbUseSystemDayOfWeek', 'vbFirstJan1', 'vbFirstFourDays', 'vbFirstFullWeek',\n 'vbGeneralDate', 'vbLongDate', 'vbShortDate', 'vbLongTime', 'vbShortTime', 'vbObjectError',\n 'vbOKOnly', 'vbOKCancel', 'vbAbortRetryIgnore', 'vbYesNoCancel', 'vbYesNo', 'vbRetryCancel', 'vbCritical', 'vbQuestion', 'vbExclamation', 'vbInformation', 'vbDefaultButton1', 'vbDefaultButton2',\n 'vbDefaultButton3', 'vbDefaultButton4', 'vbApplicationModal', 'vbSystemModal', 'vbOK', 'vbCancel', 'vbAbort', 'vbRetry', 'vbIgnore', 'vbYes', 'vbNo',\n 'vbCr', 'VbCrLf', 'vbFormFeed', 'vbLf', 'vbNewLine', 'vbNullChar', 'vbNullString', 'vbTab', 'vbVerticalTab', 'vbUseDefault', 'vbTrue', 'vbFalse',\n 'vbEmpty', 'vbNull', 'vbInteger', 'vbLong', 'vbSingle', 'vbDouble', 'vbCurrency', 'vbDate', 'vbString', 'vbObject', 'vbError', 'vbBoolean', 'vbVariant', 'vbDataObject', 'vbDecimal', 'vbByte', 'vbArray'];\n //This list was from: http://msdn.microsoft.com/en-us/library/hkc375ea(v=vs.84).aspx\n var builtinObjsWords = ['WScript', 'err', 'debug', 'RegExp'];\n var knownProperties = ['description', 'firstindex', 'global', 'helpcontext', 'helpfile', 'ignorecase', 'length', 'number', 'pattern', 'source', 'value', 'count'];\n var knownMethods = ['clear', 'execute', 'raise', 'replace', 'test', 'write', 'writeline', 'close', 'open', 'state', 'eof', 'update', 'addnew', 'end', 'createobject', 'quit'];\n\n var aspBuiltinObjsWords = ['server', 'response', 'request', 'session', 'application'];\n var aspKnownProperties = ['buffer', 'cachecontrol', 'charset', 'contenttype', 'expires', 'expiresabsolute', 'isclientconnected', 'pics', 'status', //response\n 'clientcertificate', 'cookies', 'form', 'querystring', 'servervariables', 'totalbytes', //request\n 'contents', 'staticobjects', //application\n 'codepage', 'lcid', 'sessionid', 'timeout', //session\n 'scripttimeout']; //server\n var aspKnownMethods = ['addheader', 'appendtolog', 'binarywrite', 'end', 'flush', 'redirect', //response\n 'binaryread', //request\n 'remove', 'removeall', 'lock', 'unlock', //application\n 'abandon', //session\n 'getlasterror', 'htmlencode', 'mappath', 'transfer', 'urlencode']; //server\n\n var knownWords = knownMethods.concat(knownProperties);\n\n builtinObjsWords = builtinObjsWords.concat(builtinConsts);\n\n if (conf.isASP){\n builtinObjsWords = builtinObjsWords.concat(aspBuiltinObjsWords);\n knownWords = knownWords.concat(aspKnownMethods, aspKnownProperties);\n };\n\n var keywords = wordRegexp(commonkeywords);\n var atoms = wordRegexp(atomWords);\n var builtinFuncs = wordRegexp(builtinFuncsWords);\n var builtinObjs = wordRegexp(builtinObjsWords);\n var known = wordRegexp(knownWords);\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 var noIndentWords = wordRegexp(['on error resume next', 'exit']);\n var comment = wordRegexp(['rem']);\n\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 'space';\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 if (stream.match(comment)){\n stream.skipToEnd();\n return 'comment';\n }\n\n\n // Handle Number Literals\n if (stream.match(/^((&H)|(&O))?[0-9\\.]/i, false) && !stream.match(/^((&H)|(&O))?[0-9\\.]+[a-z_]/i, false)) {\n var floatLiteral = false;\n // Floats\n if (stream.match(/^\\d*\\.\\d+/i)) { floatLiteral = true; }\n else if (stream.match(/^\\d+\\.\\d*/)) { floatLiteral = true; }\n else if (stream.match(/^\\.\\d+/)) { 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(doubleOperators)\n || stream.match(singleOperators)\n || stream.match(wordOperators)) {\n return 'operator';\n }\n if (stream.match(singleDelimiters)) {\n return null;\n }\n\n if (stream.match(brakets)) {\n return \"bracket\";\n }\n\n if (stream.match(noIndentWords)) {\n state.doInCurrentLine = true;\n\n return 'keyword';\n }\n\n if (stream.match(doOpening)) {\n indent(stream,state);\n state.doInCurrentLine = true;\n\n return 'keyword';\n }\n if (stream.match(opening)) {\n if (! state.doInCurrentLine)\n indent(stream,state);\n else\n state.doInCurrentLine = false;\n\n return 'keyword';\n }\n if (stream.match(middle)) {\n return 'keyword';\n }\n\n\n if (stream.match(doubleClosing)) {\n dedent(stream,state);\n dedent(stream,state);\n\n return 'keyword';\n }\n if (stream.match(closing)) {\n if (! state.doInCurrentLine)\n dedent(stream,state);\n else\n state.doInCurrentLine = false;\n\n return 'keyword';\n }\n\n if (stream.match(keywords)) {\n return 'keyword';\n }\n\n if (stream.match(atoms)) {\n return 'atom';\n }\n\n if (stream.match(known)) {\n return 'variable-2';\n }\n\n if (stream.match(builtinFuncs)) {\n return 'builtin';\n }\n\n if (stream.match(builtinObjs)){\n return 'variable-2';\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\n current = stream.current();\n if (style && (style.substr(0, 8) === 'variable' || style==='builtin' || style==='keyword')){//|| knownWords.indexOf(current.substring(1)) > -1) {\n if (style === 'builtin' || style === 'keyword') style='variable';\n if (knownWords.indexOf(current.substr(1)) > -1) style='variable-2';\n\n return style;\n } else {\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 ignoreKeyword: 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 if (style==='space') style=null;\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 };\n return external;\n});\n\nCodeMirror.defineMIME(\"text/vbscript\", \"vbscript\");\n\n});\n"]}