{"version":3,"sources":["webpack:////build/source/node_modules/highlight.js/lib/languages/java.js"],"names":["frac","hexDigits","NUMERIC","className","variants","begin","relevance","module","exports","hljs","regex","JAVA_IDENT_RE","GENERIC_IDENT_RE","recurRegex","re","substitution","depth","replace","_","KEYWORDS","keyword","literal","type","built_in","ANNOTATION","contains","end","PARAMS","keywords","C_BLOCK_COMMENT_MODE","endsParent","name","aliases","illegal","COMMENT","C_LINE_COMMENT_MODE","BACKSLASH_ESCAPE","APOS_STRING_MODE","QUOTE_STRING_MODE","match","1","3","scope","concat","5","beginKeywords","UNDERSCORE_IDENT_RE","2"],"mappings":"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","file":"hl-java.f0ddfb23.chunk.worker.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    'when'\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"],"sourceRoot":""}