| hljs.registerLanguage("java",(()=>{"use strict" |
| ;var e="\\.([0-9](_*[0-9])*)",a="[0-9a-fA-F](_*[0-9a-fA-F])*",n={ |
| className:"number",variants:[{ |
| begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` |
| },{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{ |
| begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{ |
| begin:`\\b0[xX]((${a})\\.?|(${a})?\\.(${a}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` |
| },{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${a})[lL]?\\b`},{ |
| begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}], |
| relevance:0};function s(e,a,n){return-1===n?"":e.replace(a,(t=>s(e,a,n-1)))} |
| return e=>{ |
| const a="[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",t=a+s("(?:<"+a+"~~~(?:\\s*,\\s*"+a+"~~~)*>)?",/~~~/g,2),i={ |
| keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do"], |
| literal:["false","true","null"], |
| type:["char","boolean","long","float","int","byte","short","double"], |
| built_in:["super","this"]},r={className:"meta",begin:"@"+a,contains:[{ |
| begin:/\(/,end:/\)/,contains:["self"]}]},l={className:"params",begin:/\(/, |
| end:/\)/,keywords:i,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0} |
| ;return{name:"Java",aliases:["jsp"],keywords:i,illegal:/<\/|#/, |
| contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/, |
| relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{ |
| begin:/import java\.[a-z]+\./,keywords:"import",relevance:2 |
| },e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{ |
| match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,a],className:{ |
| 1:"keyword",3:"title.class"}},{begin:[a,/\s+/,a,/\s+/,/=/],className:{1:"type", |
| 3:"variable",5:"operator"}},{begin:[/record/,/\s+/,a],className:{1:"keyword", |
| 3:"title.class"},contains:[l,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ |
| beginKeywords:"new throw return else",relevance:0},{ |
| begin:["(?:"+t+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{ |
| 2:"title.function"},keywords:i,contains:[{className:"params",begin:/\(/, |
| end:/\)/,keywords:i,relevance:0, |
| contains:[r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,n,e.C_BLOCK_COMMENT_MODE] |
| },e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},n,r]}}})()); |