import {
  a as t,
  c as p
} from "./chunk-IO47FP3U.js";

// ../node_modules/highlight.js/lib/languages/vbnet.js
var v = p((E, u) => {
  function b(e) {
    return e ? typeof e == "string" ? e : e.source : null;
  }
  t(b, "source");
  function s(...e) {
    return e.map((n) => b(n)).join("");
  }
  t(s, "concat");
  function a(...e) {
    return "(" + e.map((n) => b(n)).join("|") + ")";
  }
  t(a, "either");
  function h(e) {
    let i = {
      className: "string",
      begin: /"(""|[^/n])"C\b/
    }, n = {
      className: "string",
      begin: /"/,
      end: /"/,
      illegal: /\n/,
      contains: [
        {
          // double quote escape
          begin: /""/
        }
      ]
    }, o = /\d{1,2}\/\d{1,2}\/\d{4}/, r = /\d{4}-\d{1,2}-\d{1,2}/, l = /(\d|1[012])(:\d+){0,2} *(AM|PM)/, c = /\d{1,2}(:\d{1,2}){1,2}/, g = {
      className: "literal",
      variants: [
        {
          // #YYYY-MM-DD# (ISO-Date) or #M/D/YYYY# (US-Date)
          begin: s(/# */, a(r, o), / *#/)
        },
        {
          // #H:mm[:ss]# (24h Time)
          begin: s(/# */, c, / *#/)
        },
        {
          // #h[:mm[:ss]] A# (12h Time)
          begin: s(/# */, l, / *#/)
        },
        {
          // date plus time
          begin: s(
            /# */,
            a(r, o),
            / +/,
            a(l, c),
            / *#/
          )
        }
      ]
    }, m = {
      className: "number",
      relevance: 0,
      variants: [
        {
          // Float
          begin: /\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/
        },
        {
          // Integer (base 10)
          begin: /\b\d[\d_]*((U?[SIL])|[%&])?/
        },
        {
          // Integer (base 16)
          begin: /&H[\dA-F_]+((U?[SIL])|[%&])?/
        },
        {
          // Integer (base 8)
          begin: /&O[0-7_]+((U?[SIL])|[%&])?/
        },
        {
          // Integer (base 2)
          begin: /&B[01_]+((U?[SIL])|[%&])?/
        }
      ]
    }, y = {
      className: "label",
      begin: /^\w+:/
    }, f = e.COMMENT(/'''/, /$/, {
      contains: [
        {
          className: "doctag",
          begin: /<\/?/,
          end: />/
        }
      ]
    }), d = e.COMMENT(null, /$/, {
      variants: [
        {
          begin: /'/
        },
        {
          // TODO: Use `beforeMatch:` for leading spaces
          begin: /([\t ]|^)REM(?=\s)/
        }
      ]
    });
    return {
      name: "Visual Basic .NET",
      aliases: ["vb"],
      case_insensitive: !0,
      classNameAliases: {
        label: "symbol"
      },
      keywords: {
        keyword: "addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",
        built_in: (
          // Operators https://docs.microsoft.com/dotnet/visual-basic/language-reference/operators
          "addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort"
        ),
        type: (
          // Data types https://docs.microsoft.com/dotnet/visual-basic/language-reference/data-types
          "boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort"
        ),
        literal: "true false nothing"
      },
      illegal: "//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",
      contains: [
        i,
        n,
        g,
        m,
        y,
        f,
        d,
        {
          className: "meta",
          // TODO: Use `beforeMatch:` for indentation once available
          begin: /[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,
          end: /$/,
          keywords: {
            "meta-keyword": "const disable else elseif enable end externalsource if region then"
          },
          contains: [d]
        }
      ]
    };
  }
  t(h, "vbnet");
  u.exports = h;
});

export {
  v as a
};
