var n, s;
function u() {
  if (s)
    return n;
  s = 1;
  function a(e) {
    const i = {
      keyword: [
        "rec",
        "with",
        "let",
        "in",
        "inherit",
        "assert",
        "if",
        "else",
        "then"
      ],
      literal: [
        "true",
        "false",
        "or",
        "and",
        "null"
      ],
      built_in: [
        "import",
        "abort",
        "baseNameOf",
        "dirOf",
        "isNull",
        "builtins",
        "map",
        "removeAttrs",
        "throw",
        "toString",
        "derivation"
      ]
    }, r = {
      className: "subst",
      begin: /\$\{/,
      end: /\}/,
      keywords: i
    }, o = {
      className: "char.escape",
      begin: /''\$/
    }, c = {
      begin: /[a-zA-Z0-9-_]+(\s*=)/,
      returnBegin: !0,
      relevance: 0,
      contains: [
        {
          className: "attr",
          begin: /\S+/,
          relevance: 0.2
        }
      ]
    }, l = {
      className: "string",
      contains: [o, r],
      variants: [
        {
          begin: "''",
          end: "''"
        },
        {
          begin: '"',
          end: '"'
        }
      ]
    }, t = [
      e.NUMBER_MODE,
      e.HASH_COMMENT_MODE,
      e.C_BLOCK_COMMENT_MODE,
      l,
      c
    ];
    return r.contains = t, {
      name: "Nix",
      aliases: ["nixos"],
      keywords: i,
      contains: t
    };
  }
  return n = a, n;
}
export {
  u as __require
};
