import r from "./java.es.js";
import u from "./javadoclike.es.js";
import i from "./markup.es.js";
t.displayName = "javadoc";
t.aliases = [];
function t(a) {
  a.register(r), a.register(u), a.register(i), (function(e) {
    var n = /(^(?:[\t ]*(?:\*\s*)*))[^*\s].*$/m, o = /#\s*\w+(?:\s*\([^()]*\))?/.source, s = /(?:\b[a-zA-Z]\w+\s*\.\s*)*\b[A-Z]\w*(?:\s*<mem>)?|<mem>/.source.replace(
      /<mem>/g,
      function() {
        return o;
      }
    );
    e.languages.javadoc = e.languages.extend("javadoclike", {}), e.languages.insertBefore("javadoc", "keyword", {
      reference: {
        pattern: RegExp(
          /(@(?:exception|link|linkplain|see|throws|value)\s+(?:\*\s*)?)/.source + "(?:" + s + ")"
        ),
        lookbehind: !0,
        inside: {
          function: {
            pattern: /(#\s*)\w+(?=\s*\()/,
            lookbehind: !0
          },
          field: {
            pattern: /(#\s*)\w+/,
            lookbehind: !0
          },
          namespace: {
            pattern: /\b(?:[a-z]\w*\s*\.\s*)+/,
            inside: {
              punctuation: /\./
            }
          },
          "class-name": /\b[A-Z]\w*/,
          keyword: e.languages.java.keyword,
          punctuation: /[#()[\],.]/
        }
      },
      "class-name": {
        // @param <T> the first generic type parameter
        pattern: /(@param\s+)<[A-Z]\w*>/,
        lookbehind: !0,
        inside: {
          punctuation: /[.<>]/
        }
      },
      "code-section": [
        {
          pattern: /(\{@code\s+(?!\s))(?:[^\s{}]|\s+(?![\s}])|\{(?:[^{}]|\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*\})+(?=\s*\})/,
          lookbehind: !0,
          inside: {
            code: {
              // there can't be any HTML inside of {@code} tags
              pattern: n,
              lookbehind: !0,
              inside: e.languages.java,
              alias: "language-java"
            }
          }
        },
        {
          pattern: /(<(code|pre|tt)>(?!<code>)\s*)\S(?:\S|\s+\S)*?(?=\s*<\/\2>)/,
          lookbehind: !0,
          inside: {
            line: {
              pattern: n,
              lookbehind: !0,
              inside: {
                // highlight HTML tags and entities
                tag: e.languages.markup.tag,
                entity: e.languages.markup.entity,
                code: {
                  // everything else is Java code
                  pattern: /.+/,
                  inside: e.languages.java,
                  alias: "language-java"
                }
              }
            }
          }
        }
      ],
      tag: e.languages.markup.tag,
      entity: e.languages.markup.entity
    }), e.languages.javadoclike.addSupport("java", e.languages.javadoc);
  })(a);
}
export {
  t as default
};
//# sourceMappingURL=javadoc.es.js.map
