vbscript top-level property

Mode vbscript
final

Implementation

final vbscript = Mode(
    refs: {},
    name: "VBScript",
    aliases: ["vbs"],
    case_insensitive: true,
    keywords: {
      "keyword": [
        "call",
        "class",
        "const",
        "dim",
        "do",
        "loop",
        "erase",
        "execute",
        "executeglobal",
        "exit",
        "for",
        "each",
        "next",
        "function",
        "if",
        "then",
        "else",
        "on",
        "error",
        "option",
        "explicit",
        "new",
        "private",
        "property",
        "let",
        "get",
        "public",
        "randomize",
        "redim",
        "rem",
        "select",
        "case",
        "set",
        "stop",
        "sub",
        "while",
        "wend",
        "with",
        "end",
        "to",
        "elseif",
        "is",
        "or",
        "xor",
        "and",
        "not",
        "class_initialize",
        "class_terminate",
        "default",
        "preserve",
        "in",
        "me",
        "byval",
        "byref",
        "step",
        "resume",
        "goto"
      ],
      "built_in": [
        "server",
        "response",
        "request",
        "scriptengine",
        "scriptenginebuildversion",
        "scriptengineminorversion",
        "scriptenginemajorversion"
      ],
      "literal": ["true", "false", "null", "nothing", "empty"]
    },
    illegal: "//",
    contains: [
      Mode(
          begin:
              "(?:lcase|month|vartype|instrrev|ubound|setlocale|getobject|rgb|getref|string|weekdayname|rnd|dateadd|monthname|now|day|minute|isarray|cbool|round|formatcurrency|conversions|csng|timevalue|second|year|space|abs|clng|timeserial|fixs|len|asc|isempty|maths|dateserial|atn|timer|isobject|filter|weekday|datevalue|ccur|isdate|instr|datediff|formatdatetime|replace|isnull|right|sgn|array|snumeric|log|cdbl|hex|chr|lbound|msgbox|ucase|getlocale|cos|cdate|cbyte|rtrim|join|hour|oct|typename|trim|strcomp|int|createobject|loadpicture|tan|formatnumber|mid|split|cint|sin|datepart|ltrim|sqr|time|derived|eval|date|formatpercent|exp|inputbox|left|ascw|chrw|regexp|cstr|err)\\s*\\(",
          relevance: 0,
          keywords: {
            "built_in": [
              "lcase",
              "month",
              "vartype",
              "instrrev",
              "ubound",
              "setlocale",
              "getobject",
              "rgb",
              "getref",
              "string",
              "weekdayname",
              "rnd",
              "dateadd",
              "monthname",
              "now",
              "day",
              "minute",
              "isarray",
              "cbool",
              "round",
              "formatcurrency",
              "conversions",
              "csng",
              "timevalue",
              "second",
              "year",
              "space",
              "abs",
              "clng",
              "timeserial",
              "fixs",
              "len",
              "asc",
              "isempty",
              "maths",
              "dateserial",
              "atn",
              "timer",
              "isobject",
              "filter",
              "weekday",
              "datevalue",
              "ccur",
              "isdate",
              "instr",
              "datediff",
              "formatdatetime",
              "replace",
              "isnull",
              "right",
              "sgn",
              "array",
              "snumeric",
              "log",
              "cdbl",
              "hex",
              "chr",
              "lbound",
              "msgbox",
              "ucase",
              "getlocale",
              "cos",
              "cdate",
              "cbyte",
              "rtrim",
              "join",
              "hour",
              "oct",
              "typename",
              "trim",
              "strcomp",
              "int",
              "createobject",
              "loadpicture",
              "tan",
              "formatnumber",
              "mid",
              "split",
              "cint",
              "sin",
              "datepart",
              "ltrim",
              "sqr",
              "time",
              "derived",
              "eval",
              "date",
              "formatpercent",
              "exp",
              "inputbox",
              "left",
              "ascw",
              "chrw",
              "regexp",
              "cstr",
              "err"
            ]
          }),
      Mode(
          scope: "string",
          begin: "\"",
          end: "\"",
          illegal: "\\n",
          contains: [Mode(begin: "\"\"")]),
      Mode(
          scope: "comment",
          begin: "'",
          end: "\$",
          contains: [
            Mode(
                scope: "doctag",
                begin: "[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",
                end: "(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",
                excludeBegin: true,
                relevance: 0),
            Mode(
                begin:
                    "[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}")
          ],
          relevance: 0),
      C_NUMBER_MODE
    ]);