var l, N;
function v() {
  if (N)
    return l;
  N = 1;
  function A(e) {
    const n = "[a-z'][a-zA-Z0-9_']*", g = "(" + n + ":" + n + "|" + n + ")", t = {
      keyword: "after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor",
      literal: "false true"
    }, c = e.COMMENT("%", "$"), o = {
      className: "number",
      begin: "\\b(\\d+(_\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\d+(_\\d+)*(\\.\\d+(_\\d+)*)?([eE][-+]?\\d+)?)",
      relevance: 0
    }, b = { begin: "fun\\s+" + n + "/\\d+" }, s = {
      begin: g + "\\(",
      end: "\\)",
      returnBegin: !0,
      relevance: 0,
      contains: [
        {
          begin: g,
          relevance: 0
        },
        {
          begin: "\\(",
          end: "\\)",
          endsWithParent: !0,
          returnEnd: !0,
          relevance: 0
          // "contains" defined later
        }
      ]
    }, a = {
      begin: /\{/,
      end: /\}/,
      relevance: 0
      // "contains" defined later
    }, d = {
      begin: "\\b_([A-Z][A-Za-z0-9_]*)?",
      relevance: 0
    }, E = {
      begin: "[A-Z][a-zA-Z0-9_]*",
      relevance: 0
    }, i = {
      begin: "#" + e.UNDERSCORE_IDENT_RE,
      relevance: 0,
      returnBegin: !0,
      contains: [
        {
          begin: "#" + e.UNDERSCORE_IDENT_RE,
          relevance: 0
        },
        {
          begin: /\{/,
          end: /\}/,
          relevance: 0
          // "contains" defined later
        }
      ]
    }, _ = {
      scope: "string",
      match: /\$(\\([^0-9]|[0-9]{1,3}|)|.)/
    }, u = {
      beginKeywords: "fun receive if try case",
      end: "end",
      keywords: t
    };
    u.contains = [
      c,
      b,
      e.inherit(e.APOS_STRING_MODE, { className: "" }),
      u,
      s,
      e.QUOTE_STRING_MODE,
      o,
      a,
      d,
      E,
      i,
      _
    ];
    const r = [
      c,
      b,
      u,
      s,
      e.QUOTE_STRING_MODE,
      o,
      a,
      d,
      E,
      i,
      _
    ];
    s.contains[1].contains = r, a.contains = r, i.contains[1].contains = r;
    const T = [
      "-module",
      "-record",
      "-undef",
      "-export",
      "-ifdef",
      "-ifndef",
      "-author",
      "-copyright",
      "-doc",
      "-vsn",
      "-import",
      "-include",
      "-include_lib",
      "-compile",
      "-define",
      "-else",
      "-endif",
      "-file",
      "-behaviour",
      "-behavior",
      "-spec"
    ], R = {
      className: "params",
      begin: "\\(",
      end: "\\)",
      contains: r
    };
    return {
      name: "Erlang",
      aliases: ["erl"],
      keywords: t,
      illegal: "(</|\\*=|\\+=|-=|/\\*|\\*/|\\(\\*|\\*\\))",
      contains: [
        {
          className: "function",
          begin: "^" + n + "\\s*\\(",
          end: "->",
          returnBegin: !0,
          illegal: "\\(|#|//|/\\*|\\\\|:|;",
          contains: [
            R,
            e.inherit(e.TITLE_MODE, { begin: n })
          ],
          starts: {
            end: ";|\\.",
            keywords: t,
            contains: r
          }
        },
        c,
        {
          begin: "^-",
          end: "\\.",
          relevance: 0,
          excludeEnd: !0,
          returnBegin: !0,
          keywords: {
            $pattern: "-" + e.IDENT_RE,
            keyword: T.map((f) => `${f}|1.5`).join(" ")
          },
          contains: [R]
        },
        o,
        e.QUOTE_STRING_MODE,
        i,
        d,
        E,
        a,
        _,
        { begin: /\.$/ }
        // relevance booster
      ]
    };
  }
  return l = A, l;
}
export {
  v as __require
};
