mirror of
				https://github.com/JKorf/CryptoExchange.Net
				synced 2025-10-31 18:37:23 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			126 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			126 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /*
 | |
| Language: Java
 | |
| Author: Vsevolod Solovyov <vsevolod.solovyov@gmail.com>
 | |
| Category: common, enterprise
 | |
| Website: https://www.java.com/
 | |
| */
 | |
| 
 | |
| export default function(hljs) {
 | |
|   var JAVA_IDENT_RE = '[\u00C0-\u02B8a-zA-Z_$][\u00C0-\u02B8a-zA-Z_$0-9]*';
 | |
|   var GENERIC_IDENT_RE = JAVA_IDENT_RE + '(<' + JAVA_IDENT_RE + '(\\s*,\\s*' + JAVA_IDENT_RE + ')*>)?';
 | |
|   var KEYWORDS =
 | |
|     'false synchronized int abstract float private char boolean var static null if const ' +
 | |
|     'for true while long strictfp finally protected import native final void ' +
 | |
|     'enum else break transient catch instanceof byte super volatile case assert short ' +
 | |
|     'package default double public try this switch continue throws protected public private ' +
 | |
|     'module requires exports do';
 | |
| 
 | |
|   var ANNOTATION = {
 | |
|     className: 'meta',
 | |
|     begin: '@' + JAVA_IDENT_RE,
 | |
|     contains:[
 | |
|       {
 | |
|         begin: /\(/,
 | |
|         end: /\)/,
 | |
|         contains: ["self"] // allow nested () inside our annotation
 | |
|       },
 | |
|     ]
 | |
|   }
 | |
|   // https://docs.oracle.com/javase/7/docs/technotes/guides/language/underscores-literals.html
 | |
|   var JAVA_NUMBER_RE = '\\b' +
 | |
|     '(' +
 | |
|       '0[bB]([01]+[01_]+[01]+|[01]+)' + // 0b...
 | |
|       '|' +
 | |
|       '0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)' + // 0x...
 | |
|       '|' +
 | |
|       '(' +
 | |
|         '([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?' +
 | |
|         '|' +
 | |
|         '\\.([\\d]+[\\d_]+[\\d]+|[\\d]+)' +
 | |
|       ')' +
 | |
|       '([eE][-+]?\\d+)?' + // octal, decimal, float
 | |
|     ')' +
 | |
|     '[lLfF]?';
 | |
|   var JAVA_NUMBER_MODE = {
 | |
|     className: 'number',
 | |
|     begin: JAVA_NUMBER_RE,
 | |
|     relevance: 0
 | |
|   };
 | |
| 
 | |
|   return {
 | |
|     name: 'Java',
 | |
|     aliases: ['jsp'],
 | |
|     keywords: KEYWORDS,
 | |
|     illegal: /<\/|#/,
 | |
|     contains: [
 | |
|       hljs.COMMENT(
 | |
|         '/\\*\\*',
 | |
|         '\\*/',
 | |
|         {
 | |
|           relevance : 0,
 | |
|           contains : [
 | |
|             {
 | |
|               // eat up @'s in emails to prevent them to be recognized as doctags
 | |
|               begin: /\w+@/, relevance: 0
 | |
|             },
 | |
|             {
 | |
|               className : 'doctag',
 | |
|               begin : '@[A-Za-z]+'
 | |
|             }
 | |
|           ]
 | |
|         }
 | |
|       ),
 | |
|       hljs.C_LINE_COMMENT_MODE,
 | |
|       hljs.C_BLOCK_COMMENT_MODE,
 | |
|       hljs.APOS_STRING_MODE,
 | |
|       hljs.QUOTE_STRING_MODE,
 | |
|       {
 | |
|         className: 'class',
 | |
|         beginKeywords: 'class interface', end: /[{;=]/, excludeEnd: true,
 | |
|         keywords: 'class interface',
 | |
|         illegal: /[:"\[\]]/,
 | |
|         contains: [
 | |
|           {beginKeywords: 'extends implements'},
 | |
|           hljs.UNDERSCORE_TITLE_MODE
 | |
|         ]
 | |
|       },
 | |
|       {
 | |
|         // Expression keywords prevent 'keyword Name(...)' from being
 | |
|         // recognized as a function definition
 | |
|         beginKeywords: 'new throw return else',
 | |
|         relevance: 0
 | |
|       },
 | |
|       {
 | |
|         className: 'function',
 | |
|         begin: '(' + GENERIC_IDENT_RE + '\\s+)+' + hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', returnBegin: true, end: /[{;=]/,
 | |
|         excludeEnd: true,
 | |
|         keywords: KEYWORDS,
 | |
|         contains: [
 | |
|           {
 | |
|             begin: hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', returnBegin: true,
 | |
|             relevance: 0,
 | |
|             contains: [hljs.UNDERSCORE_TITLE_MODE]
 | |
|           },
 | |
|           {
 | |
|             className: 'params',
 | |
|             begin: /\(/, end: /\)/,
 | |
|             keywords: KEYWORDS,
 | |
|             relevance: 0,
 | |
|             contains: [
 | |
|               ANNOTATION,
 | |
|               hljs.APOS_STRING_MODE,
 | |
|               hljs.QUOTE_STRING_MODE,
 | |
|               hljs.C_NUMBER_MODE,
 | |
|               hljs.C_BLOCK_COMMENT_MODE
 | |
|             ]
 | |
|           },
 | |
|           hljs.C_LINE_COMMENT_MODE,
 | |
|           hljs.C_BLOCK_COMMENT_MODE
 | |
|         ]
 | |
|       },
 | |
|       JAVA_NUMBER_MODE,
 | |
|       ANNOTATION
 | |
|     ]
 | |
|   };
 | |
| }
 |