var t, o;
function p() {
  if (o)
    return t;
  o = 1, t = n, n.displayName = "pascaligo", n.aliases = [];
  function n(s) {
    (function(u) {
      var c = /\((?:[^()]|\((?:[^()]|\([^()]*\))*\))*\)/.source, r = /(?:\b\w+(?:<braces>)?|<braces>)/.source.replace(/<braces>/g, function() {
        return c;
      }), i = u.languages.pascaligo = {
        comment: /\(\*[\s\S]+?\*\)|\/\/.*/,
        string: {
          pattern: /(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1|\^[a-z]/i,
          greedy: !0
        },
        "class-name": [{
          pattern: RegExp(/(\btype\s+\w+\s+is\s+)<type>/.source.replace(/<type>/g, function() {
            return r;
          }), "i"),
          lookbehind: !0,
          inside: null
          // see below
        }, {
          pattern: RegExp(/<type>(?=\s+is\b)/.source.replace(/<type>/g, function() {
            return r;
          }), "i"),
          inside: null
          // see below
        }, {
          pattern: RegExp(/(:\s*)<type>/.source.replace(/<type>/g, function() {
            return r;
          })),
          lookbehind: !0,
          inside: null
          // see below
        }],
        keyword: {
          pattern: /(^|[^&])\b(?:begin|block|case|const|else|end|fail|for|from|function|if|is|nil|of|remove|return|skip|then|type|var|while|with)\b/i,
          lookbehind: !0
        },
        boolean: {
          pattern: /(^|[^&])\b(?:False|True)\b/i,
          lookbehind: !0
        },
        builtin: {
          pattern: /(^|[^&])\b(?:bool|int|list|map|nat|record|string|unit)\b/i,
          lookbehind: !0
        },
        function: /\b\w+(?=\s*\()/,
        number: [
          // Hexadecimal, octal and binary
          /%[01]+|&[0-7]+|\$[a-f\d]+/i,
          // Decimal
          /\b\d+(?:\.\d+)?(?:e[+-]?\d+)?(?:mtz|n)?/i
        ],
        operator: /->|=\/=|\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=|]|\b(?:and|mod|or)\b/,
        punctuation: /\(\.|\.\)|[()\[\]:;,.{}]/
      }, l = ["comment", "keyword", "builtin", "operator", "punctuation"].reduce(function(e, a) {
        return e[a] = i[a], e;
      }, {});
      i["class-name"].forEach(function(e) {
        e.inside = l;
      });
    })(s);
  }
  return t;
}
export {
  p as __require
};
