import { __require as u } from "./scheme.mjs";
var a, d;
function c() {
  if (d)
    return a;
  d = 1;
  var o = u();
  a = n, n.displayName = "lilypond", n.aliases = [];
  function n(s) {
    s.register(o), function(r) {
      for (var e = /\((?:[^();"#\\]|\\[\s\S]|;.*(?!.)|"(?:[^"\\]|\\.)*"|#(?:\{(?:(?!#\})[\s\S])*#\}|[^{])|<expr>)*\)/.source, l = 5, t = 0; t < l; t++)
        e = e.replace(/<expr>/g, function() {
          return e;
        });
      e = e.replace(/<expr>/g, /[^\s\S]/.source);
      var i = r.languages.lilypond = {
        comment: /%(?:(?!\{).*|\{[\s\S]*?%\})/,
        "embedded-scheme": {
          pattern: RegExp(/(^|[=\s])#(?:"(?:[^"\\]|\\.)*"|[^\s()"]*(?:[^\s()]|<expr>))/.source.replace(/<expr>/g, function() {
            return e;
          }), "m"),
          lookbehind: !0,
          greedy: !0,
          inside: {
            scheme: {
              pattern: /^(#)[\s\S]+$/,
              lookbehind: !0,
              alias: "language-scheme",
              inside: {
                "embedded-lilypond": {
                  pattern: /#\{[\s\S]*?#\}/,
                  greedy: !0,
                  inside: {
                    punctuation: /^#\{|#\}$/,
                    lilypond: {
                      pattern: /[\s\S]+/,
                      alias: "language-lilypond",
                      inside: null
                      // see below
                    }
                  }
                },
                rest: r.languages.scheme
              }
            },
            punctuation: /#/
          }
        },
        string: {
          pattern: /"(?:[^"\\]|\\.)*"/,
          greedy: !0
        },
        "class-name": {
          pattern: /(\\new\s+)[\w-]+/,
          lookbehind: !0
        },
        keyword: {
          pattern: /\\[a-z][-\w]*/i,
          inside: {
            punctuation: /^\\/
          }
        },
        operator: /[=|]|<<|>>/,
        punctuation: {
          pattern: /(^|[a-z\d])(?:'+|,+|[_^]?-[_^]?(?:[-+^!>._]|(?=\d))|[_^]\.?|[.!])|[{}()[\]<>^~]|\\[()[\]<>\\!]|--|__/,
          lookbehind: !0
        },
        number: /\b\d+(?:\/\d+)?\b/
      };
      i["embedded-scheme"].inside.scheme.inside["embedded-lilypond"].inside.lilypond.inside = i, r.languages.ly = i;
    }(s);
  }
  return a;
}
export {
  c as __require
};
