import {
  a as d
} from "./chunk-VSGEXYPH.js";
import {
  a as r,
  c as u
} from "./chunk-IO47FP3U.js";

// ../node_modules/refractor/lang/apex.js
var b = u((p, o) => {
  var g = d();
  o.exports = s;
  s.displayName = "apex";
  s.aliases = [];
  function s(i) {
    i.register(g), function(e) {
      var t = /\b(?:(?:after|before)(?=\s+[a-z])|abstract|activate|and|any|array|as|asc|autonomous|begin|bigdecimal|blob|boolean|break|bulk|by|byte|case|cast|catch|char|class|collect|commit|const|continue|currency|date|datetime|decimal|default|delete|desc|do|double|else|end|enum|exception|exit|export|extends|final|finally|float|for|from|get(?=\s*[{};])|global|goto|group|having|hint|if|implements|import|in|inner|insert|instanceof|int|integer|interface|into|join|like|limit|list|long|loop|map|merge|new|not|null|nulls|number|object|of|on|or|outer|override|package|parallel|pragma|private|protected|public|retrieve|return|rollback|select|set|short|sObject|sort|static|string|super|switch|synchronized|system|testmethod|then|this|throw|time|transaction|transient|trigger|try|undelete|update|upsert|using|virtual|void|webservice|when|where|while|(?:inherited|with|without)\s+sharing)\b/i, l = /\b(?:(?=[a-z_]\w*\s*[<\[])|(?!<keyword>))[A-Z_]\w*(?:\s*\.\s*[A-Z_]\w*)*\b(?:\s*(?:\[\s*\]|<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>))*/.source.replace(
        /<keyword>/g,
        function() {
          return t.source;
        }
      );
      function n(c) {
        return RegExp(
          c.replace(/<CLASS-NAME>/g, function() {
            return l;
          }),
          "i"
        );
      }
      r(n, "insertClassName");
      var a = {
        keyword: t,
        punctuation: /[()\[\]{};,:.<>]/
      };
      e.languages.apex = {
        comment: e.languages.clike.comment,
        string: e.languages.clike.string,
        sql: {
          pattern: /((?:[=,({:]|\breturn)\s*)\[[^\[\]]*\]/i,
          lookbehind: !0,
          greedy: !0,
          alias: "language-sql",
          inside: e.languages.sql
        },
        annotation: {
          pattern: /@\w+\b/,
          alias: "punctuation"
        },
        "class-name": [
          {
            pattern: n(
              /(\b(?:class|enum|extends|implements|instanceof|interface|new|trigger\s+\w+\s+on)\s+)<CLASS-NAME>/.source
            ),
            lookbehind: !0,
            inside: a
          },
          {
            // cast
            pattern: n(
              /(\(\s*)<CLASS-NAME>(?=\s*\)\s*[\w(])/.source
            ),
            lookbehind: !0,
            inside: a
          },
          {
            // variable/parameter declaration and return types
            pattern: n(/<CLASS-NAME>(?=\s*\w+\s*[;=,(){:])/.source),
            inside: a
          }
        ],
        trigger: {
          pattern: /(\btrigger\s+)\w+\b/i,
          lookbehind: !0,
          alias: "class-name"
        },
        keyword: t,
        function: /\b[a-z_]\w*(?=\s*\()/i,
        boolean: /\b(?:false|true)\b/i,
        number: /(?:\B\.\d+|\b\d+(?:\.\d+|L)?)\b/i,
        operator: /[!=](?:==?)?|\?\.?|&&|\|\||--|\+\+|[-+*/^&|]=?|:|<<?=?|>{1,3}=?/,
        punctuation: /[()\[\]{};,.]/
      };
    }(i);
  }
  r(s, "apex");
});

export {
  b as a
};
