{"version":3,"file":"java.mjs","sources":["../../../../../../node_modules/highlight.js/lib/languages/java.js"],"sourcesContent":["// https://docs.oracle.com/javase/specs/jls/se15/html/jls-3.html#jls-3.10\nvar decimalDigits = '[0-9](_*[0-9])*';\nvar frac = `\\\\.(${decimalDigits})`;\nvar hexDigits = '[0-9a-fA-F](_*[0-9a-fA-F])*';\nvar NUMERIC = {\n  className: 'number',\n  variants: [\n    // DecimalFloatingPointLiteral\n    // including ExponentPart\n    { begin: `(\\\\b(${decimalDigits})((${frac})|\\\\.)?|(${frac}))` +\n      `[eE][+-]?(${decimalDigits})[fFdD]?\\\\b` },\n    // excluding ExponentPart\n    { begin: `\\\\b(${decimalDigits})((${frac})[fFdD]?\\\\b|\\\\.([fFdD]\\\\b)?)` },\n    { begin: `(${frac})[fFdD]?\\\\b` },\n    { begin: `\\\\b(${decimalDigits})[fFdD]\\\\b` },\n\n    // HexadecimalFloatingPointLiteral\n    { begin: `\\\\b0[xX]((${hexDigits})\\\\.?|(${hexDigits})?\\\\.(${hexDigits}))` +\n      `[pP][+-]?(${decimalDigits})[fFdD]?\\\\b` },\n\n    // DecimalIntegerLiteral\n    { begin: '\\\\b(0|[1-9](_*[0-9])*)[lL]?\\\\b' },\n\n    // HexIntegerLiteral\n    { begin: `\\\\b0[xX](${hexDigits})[lL]?\\\\b` },\n\n    // OctalIntegerLiteral\n    { begin: '\\\\b0(_*[0-7])*[lL]?\\\\b' },\n\n    // BinaryIntegerLiteral\n    { begin: '\\\\b0[bB][01](_*[01])*[lL]?\\\\b' },\n  ],\n  relevance: 0\n};\n\n/*\nLanguage: Java\nAuthor: Vsevolod Solovyov <vsevolod.solovyov@gmail.com>\nCategory: common, enterprise\nWebsite: https://www.java.com/\n*/\n\n\n/**\n * Allows recursive regex expressions to a given depth\n *\n * ie: recurRegex(\"(abc~~~)\", /~~~/g, 2) becomes:\n * (abc(abc(abc)))\n *\n * @param {string} re\n * @param {RegExp} substitution (should be a g mode regex)\n * @param {number} depth\n * @returns {string}``\n */\nfunction recurRegex(re, substitution, depth) {\n  if (depth === -1) return \"\";\n\n  return re.replace(substitution, _ => {\n    return recurRegex(re, substitution, depth - 1);\n  });\n}\n\n/** @type LanguageFn */\nfunction java(hljs) {\n  const regex = hljs.regex;\n  const JAVA_IDENT_RE = '[\\u00C0-\\u02B8a-zA-Z_$][\\u00C0-\\u02B8a-zA-Z_$0-9]*';\n  const GENERIC_IDENT_RE = JAVA_IDENT_RE\n    + recurRegex('(?:<' + JAVA_IDENT_RE + '~~~(?:\\\\s*,\\\\s*' + JAVA_IDENT_RE + '~~~)*>)?', /~~~/g, 2);\n  const MAIN_KEYWORDS = [\n    'synchronized',\n    'abstract',\n    'private',\n    'var',\n    'static',\n    'if',\n    'const ',\n    'for',\n    'while',\n    'strictfp',\n    'finally',\n    'protected',\n    'import',\n    'native',\n    'final',\n    'void',\n    'enum',\n    'else',\n    'break',\n    'transient',\n    'catch',\n    'instanceof',\n    'volatile',\n    'case',\n    'assert',\n    'package',\n    'default',\n    'public',\n    'try',\n    'switch',\n    'continue',\n    'throws',\n    'protected',\n    'public',\n    'private',\n    'module',\n    'requires',\n    'exports',\n    'do',\n    'sealed',\n    'yield',\n    'permits',\n    'goto'\n  ];\n\n  const BUILT_INS = [\n    'super',\n    'this'\n  ];\n\n  const LITERALS = [\n    'false',\n    'true',\n    'null'\n  ];\n\n  const TYPES = [\n    'char',\n    'boolean',\n    'long',\n    'float',\n    'int',\n    'byte',\n    'short',\n    'double'\n  ];\n\n  const KEYWORDS = {\n    keyword: MAIN_KEYWORDS,\n    literal: LITERALS,\n    type: TYPES,\n    built_in: BUILT_INS\n  };\n\n  const ANNOTATION = {\n    className: 'meta',\n    begin: '@' + JAVA_IDENT_RE,\n    contains: [\n      {\n        begin: /\\(/,\n        end: /\\)/,\n        contains: [ \"self\" ] // allow nested () inside our annotation\n      }\n    ]\n  };\n  const PARAMS = {\n    className: 'params',\n    begin: /\\(/,\n    end: /\\)/,\n    keywords: KEYWORDS,\n    relevance: 0,\n    contains: [ hljs.C_BLOCK_COMMENT_MODE ],\n    endsParent: true\n  };\n\n  return {\n    name: 'Java',\n    aliases: [ 'jsp' ],\n    keywords: KEYWORDS,\n    illegal: /<\\/|#/,\n    contains: [\n      hljs.COMMENT(\n        '/\\\\*\\\\*',\n        '\\\\*/',\n        {\n          relevance: 0,\n          contains: [\n            {\n              // eat up @'s in emails to prevent them to be recognized as doctags\n              begin: /\\w+@/,\n              relevance: 0\n            },\n            {\n              className: 'doctag',\n              begin: '@[A-Za-z]+'\n            }\n          ]\n        }\n      ),\n      // relevance boost\n      {\n        begin: /import java\\.[a-z]+\\./,\n        keywords: \"import\",\n        relevance: 2\n      },\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      {\n        begin: /\"\"\"/,\n        end: /\"\"\"/,\n        className: \"string\",\n        contains: [ hljs.BACKSLASH_ESCAPE ]\n      },\n      hljs.APOS_STRING_MODE,\n      hljs.QUOTE_STRING_MODE,\n      {\n        match: [\n          /\\b(?:class|interface|enum|extends|implements|new)/,\n          /\\s+/,\n          JAVA_IDENT_RE\n        ],\n        className: {\n          1: \"keyword\",\n          3: \"title.class\"\n        }\n      },\n      {\n        // Exceptions for hyphenated keywords\n        match: /non-sealed/,\n        scope: \"keyword\"\n      },\n      {\n        begin: [\n          regex.concat(/(?!else)/, JAVA_IDENT_RE),\n          /\\s+/,\n          JAVA_IDENT_RE,\n          /\\s+/,\n          /=(?!=)/\n        ],\n        className: {\n          1: \"type\",\n          3: \"variable\",\n          5: \"operator\"\n        }\n      },\n      {\n        begin: [\n          /record/,\n          /\\s+/,\n          JAVA_IDENT_RE\n        ],\n        className: {\n          1: \"keyword\",\n          3: \"title.class\"\n        },\n        contains: [\n          PARAMS,\n          hljs.C_LINE_COMMENT_MODE,\n          hljs.C_BLOCK_COMMENT_MODE\n        ]\n      },\n      {\n        // Expression keywords prevent 'keyword Name(...)' from being\n        // recognized as a function definition\n        beginKeywords: 'new throw return else',\n        relevance: 0\n      },\n      {\n        begin: [\n          '(?:' + GENERIC_IDENT_RE + '\\\\s+)',\n          hljs.UNDERSCORE_IDENT_RE,\n          /\\s*(?=\\()/\n        ],\n        className: { 2: \"title.function\" },\n        keywords: KEYWORDS,\n        contains: [\n          {\n            className: 'params',\n            begin: /\\(/,\n            end: /\\)/,\n            keywords: KEYWORDS,\n            relevance: 0,\n            contains: [\n              ANNOTATION,\n              hljs.APOS_STRING_MODE,\n              hljs.QUOTE_STRING_MODE,\n              NUMERIC,\n              hljs.C_BLOCK_COMMENT_MODE\n            ]\n          },\n          hljs.C_LINE_COMMENT_MODE,\n          hljs.C_BLOCK_COMMENT_MODE\n        ]\n      },\n      NUMERIC,\n      ANNOTATION\n    ]\n  };\n}\n\nmodule.exports = java;\n"],"names":["decimalDigits","frac","hexDigits","NUMERIC","recurRegex","re","substitution","depth","_","java","hljs","regex","JAVA_IDENT_RE","GENERIC_IDENT_RE","KEYWORDS","ANNOTATION","PARAMS","java_1"],"mappings":"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","x_google_ignoreList":[0]}