vbscript top-level property

Language vbscript
final

Implementation

final vbscript = Language(
  id: "vbscript",
  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,
  ],
);