1/*
2Language: Java
3Author: Vsevolod Solovyov <vsevolod.solovyov@gmail.com>
4*/
5
6hljs.LANGUAGES.java  = {
7  defaultMode: {
8    lexems: [hljs.UNDERSCORE_IDENT_RE],
9    contains: ['javadoc', 'comment', 'string', 'class', 'number', 'annotation'],
10    keywords: {'false': 1, 'synchronized': 1, 'int': 1, 'abstract': 1, 'float': 1, 'private': 1, 'char': 1, 'interface': 1, 'boolean': 1, 'static': 1, 'null': 1, 'if': 1, 'const': 1, 'for': 1, 'true': 1, 'while': 1, 'long': 1, 'throw': 1, 'strictfp': 1, 'finally': 1, 'protected': 1, 'extends': 1, 'import': 1, 'native': 1, 'final': 1, 'implements': 1, 'return': 1, 'void': 1, 'enum': 1, 'else': 1, 'break': 1, 'transient': 1, 'new': 1, 'catch': 1, 'instanceof': 1, 'byte': 1, 'super': 1, 'class': 1, 'volatile': 1, 'case': 1, 'assert': 1, 'short': 1, 'package': 1, 'default': 1, 'double': 1, 'public': 1, 'try': 1, 'this': 1, 'switch': 1, 'continue': 1, 'throws': 1}
11  },
12  modes: [
13    {
14      className: 'class',
15      lexems: [hljs.UNDERSCORE_IDENT_RE],
16      begin: '(class |interface )', end: '{',
17      illegal: ':',
18      keywords: {'class': 1, 'interface': 1},
19      contains: ['inheritance', 'title']
20    },
21    {
22      className: 'inheritance',
23      begin: '(implements|extends)', end: '^', noMarkup: true,
24      lexems: [hljs.IDENT_RE],
25      keywords: {'extends': 1, 'implements': 1},
26      relevance: 10
27    },
28    {
29      className: 'title',
30      begin: hljs.UNDERSCORE_IDENT_RE, end: '^'
31    },
32    {
33      className: 'params',
34      begin: '\\(', end: '\\)',
35      contains: ['string', 'annotation']
36    },
37    hljs.C_NUMBER_MODE,
38    hljs.APOS_STRING_MODE,
39    hljs.QUOTE_STRING_MODE,
40    hljs.BACKSLASH_ESCAPE,
41    hljs.C_LINE_COMMENT_MODE,
42    {
43      className: 'javadoc',
44      begin: '/\\*\\*', end: '\\*/',
45      contains: ['javadoctag'],
46      relevance: 10
47    },
48    {
49      className: 'javadoctag',
50      begin: '@[A-Za-z]+', end: '^'
51    },
52    hljs.C_BLOCK_COMMENT_MODE,
53    {
54      className: 'annotation',
55      begin: '@[A-Za-z]+', end: '^'
56    }
57  ]
58};
59