|
5 | 5 | <filename>*.java</filename> |
6 | 6 | <mime_type>text/x-java</mime_type> |
7 | 7 | <dot_all>true</dot_all> |
8 | | - <ensure_nl>true</ensure_nl> |
9 | 8 | </config> |
10 | 9 | <rules> |
11 | | - <state name="class"> |
12 | | - <rule pattern="([^\W\d]|\$)[\w$]*"> |
13 | | - <token type="NameClass"/> |
14 | | - <pop depth="1"/> |
15 | | - </rule> |
16 | | - </state> |
17 | | - <state name="import"> |
18 | | - <rule pattern="[\w.]+\*?"> |
19 | | - <token type="NameNamespace"/> |
20 | | - <pop depth="1"/> |
21 | | - </rule> |
22 | | - </state> |
23 | 10 | <state name="root"> |
| 11 | + <rule pattern="(^\s*)((?:(?:public|private|protected|static|strictfp)(?:\s+))*)(record)\b"> |
| 12 | + <bygroups> |
| 13 | + <token type="TextWhitespace" /> |
| 14 | + <usingself state="root" /> |
| 15 | + <token type="KeywordDeclaration" /> |
| 16 | + </bygroups> |
| 17 | + <push state="class" /> |
| 18 | + </rule> |
24 | 19 | <rule pattern="[^\S\n]+"> |
25 | | - <token type="Text"/> |
| 20 | + <token type="TextWhitespace" /> |
26 | 21 | </rule> |
27 | | - <rule pattern="//.*?\n"> |
28 | | - <token type="CommentSingle"/> |
| 22 | + <rule pattern="(//.*?)(\n)"> |
| 23 | + <bygroups> |
| 24 | + <token type="CommentSingle" /> |
| 25 | + <token type="TextWhitespace" /> |
| 26 | + </bygroups> |
29 | 27 | </rule> |
30 | 28 | <rule pattern="/\*.*?\*/"> |
31 | | - <token type="CommentMultiline"/> |
| 29 | + <token type="CommentMultiline" /> |
32 | 30 | </rule> |
33 | | - <rule pattern="(assert|break|case|catch|continue|default|do|else|finally|for|if|goto|instanceof|new|return|switch|this|throw|try|while)\b"> |
34 | | - <token type="Keyword"/> |
| 31 | + <rule |
| 32 | + pattern="(assert|break|case|catch|continue|default|do|else|finally|for|if|goto|instanceof|new|return|switch|this|throw|try|while)\b"> |
| 33 | + <token type="Keyword" /> |
35 | 34 | </rule> |
36 | 35 | <rule pattern="((?:(?:[^\W\d]|\$)[\w.\[\]$<>]*\s+)+?)((?:[^\W\d]|\$)[\w$]*)(\s*)(\()"> |
37 | 36 | <bygroups> |
38 | | - <usingself state="root"/> |
39 | | - <token type="NameFunction"/> |
40 | | - <token type="Text"/> |
41 | | - <token type="Operator"/> |
| 37 | + <usingself state="root" /> |
| 38 | + <token type="NameFunction" /> |
| 39 | + <token type="TextWhitespace" /> |
| 40 | + <token type="Punctuation" /> |
42 | 41 | </bygroups> |
43 | 42 | </rule> |
44 | 43 | <rule pattern="@[^\W\d][\w.]*"> |
45 | | - <token type="NameDecorator"/> |
| 44 | + <token type="NameDecorator" /> |
46 | 45 | </rule> |
47 | | - <rule pattern="(abstract|const|enum|extends|final|implements|native|private|protected|public|static|strictfp|super|synchronized|throws|transient|volatile)\b"> |
48 | | - <token type="KeywordDeclaration"/> |
| 46 | + <rule |
| 47 | + pattern="(abstract|const|enum|extends|final|implements|native|private|protected|public|sealed|static|strictfp|super|synchronized|throws|transient|volatile|yield)\b"> |
| 48 | + <token type="KeywordDeclaration" /> |
49 | 49 | </rule> |
50 | 50 | <rule pattern="(boolean|byte|char|double|float|int|long|short|void)\b"> |
51 | | - <token type="KeywordType"/> |
| 51 | + <token type="KeywordType" /> |
52 | 52 | </rule> |
53 | 53 | <rule pattern="(package)(\s+)"> |
54 | 54 | <bygroups> |
55 | | - <token type="KeywordNamespace"/> |
56 | | - <token type="Text"/> |
| 55 | + <token type="KeywordNamespace" /> |
| 56 | + <token type="TextWhitespace" /> |
57 | 57 | </bygroups> |
58 | | - <push state="import"/> |
| 58 | + <push state="import" /> |
59 | 59 | </rule> |
60 | 60 | <rule pattern="(true|false|null)\b"> |
61 | | - <token type="KeywordConstant"/> |
| 61 | + <token type="KeywordConstant" /> |
| 62 | + </rule> |
| 63 | + <rule pattern="(class|interface)\b"> |
| 64 | + <token type="KeywordDeclaration" /> |
| 65 | + <push state="class" /> |
62 | 66 | </rule> |
63 | | - <rule pattern="(class|interface)(\s+)"> |
| 67 | + <rule pattern="(var)(\s+)"> |
64 | 68 | <bygroups> |
65 | | - <token type="KeywordDeclaration"/> |
66 | | - <token type="Text"/> |
| 69 | + <token type="KeywordDeclaration" /> |
| 70 | + <token type="TextWhitespace" /> |
67 | 71 | </bygroups> |
68 | | - <push state="class"/> |
| 72 | + <push state="var" /> |
69 | 73 | </rule> |
70 | 74 | <rule pattern="(import(?:\s+static)?)(\s+)"> |
71 | 75 | <bygroups> |
72 | | - <token type="KeywordNamespace"/> |
73 | | - <token type="Text"/> |
| 76 | + <token type="KeywordNamespace" /> |
| 77 | + <token type="TextWhitespace" /> |
74 | 78 | </bygroups> |
75 | | - <push state="import"/> |
| 79 | + <push state="import" /> |
76 | 80 | </rule> |
77 | | - <rule pattern=""(\\\\|\\"|[^"])*""> |
78 | | - <token type="LiteralString"/> |
| 81 | + <rule pattern=""""\n"> |
| 82 | + <token type="LiteralString" /> |
| 83 | + <push state="multiline_string" /> |
79 | 84 | </rule> |
80 | | - <rule pattern="'\\.'|'[^\\]'|'\\u[0-9a-fA-F]{4}'"> |
81 | | - <token type="LiteralStringChar"/> |
| 85 | + <rule pattern="""> |
| 86 | + <token type="LiteralString" /> |
| 87 | + <push state="string" /> |
82 | 88 | </rule> |
83 | | - <rule pattern="\d+[LlUu]*"> |
84 | | - <token type="LiteralNumberInteger"/> |
| 89 | + <rule pattern="'\\.'|'[^\\]'|'\\u[0-9a-fA-F]{4}'"> |
| 90 | + <token type="LiteralStringChar" /> |
85 | 91 | </rule> |
86 | 92 | <rule pattern="(\.)((?:[^\W\d]|\$)[\w$]*)"> |
87 | 93 | <bygroups> |
88 | | - <token type="Operator"/> |
89 | | - <token type="NameAttribute"/> |
| 94 | + <token type="Punctuation" /> |
| 95 | + <token type="NameAttribute" /> |
| 96 | + </bygroups> |
| 97 | + </rule> |
| 98 | + <rule pattern="^(\s*)(default)(:)"> |
| 99 | + <bygroups> |
| 100 | + <token type="TextWhitespace" /> |
| 101 | + <token type="Keyword" /> |
| 102 | + <token type="Punctuation" /> |
90 | 103 | </bygroups> |
91 | 104 | </rule> |
92 | | - <rule pattern="^\s*([^\W\d]|\$)[\w$]*:"> |
93 | | - <token type="NameLabel"/> |
| 105 | + <rule pattern="^(\s*)((?:[^\W\d]|\$)[\w$]*)(:)"> |
| 106 | + <bygroups> |
| 107 | + <token type="TextWhitespace" /> |
| 108 | + <token type="NameLabel" /> |
| 109 | + <token type="Punctuation" /> |
| 110 | + </bygroups> |
94 | 111 | </rule> |
95 | 112 | <rule pattern="([^\W\d]|\$)[\w$]*"> |
96 | | - <token type="Name"/> |
| 113 | + <token type="Name" /> |
97 | 114 | </rule> |
98 | | - <rule pattern="([0-9][0-9_]*\.([0-9][0-9_]*)?|\.[0-9][0-9_]*)([eE][+\-]?[0-9][0-9_]*)?[fFdD]?|[0-9][eE][+\-]?[0-9][0-9_]*[fFdD]?|[0-9]([eE][+\-]?[0-9][0-9_]*)?[fFdD]|0[xX]([0-9a-fA-F][0-9a-fA-F_]*\.?|([0-9a-fA-F][0-9a-fA-F_]*)?\.[0-9a-fA-F][0-9a-fA-F_]*)[pP][+\-]?[0-9][0-9_]*[fFdD]?"> |
99 | | - <token type="LiteralNumberFloat"/> |
| 115 | + <rule |
| 116 | + pattern="([0-9][0-9_]*\.([0-9][0-9_]*)?|\.[0-9][0-9_]*)([eE][+\-]?[0-9][0-9_]*)?[fFdD]?|[0-9][eE][+\-]?[0-9][0-9_]*[fFdD]?|[0-9]([eE][+\-]?[0-9][0-9_]*)?[fFdD]|0[xX]([0-9a-fA-F][0-9a-fA-F_]*\.?|([0-9a-fA-F][0-9a-fA-F_]*)?\.[0-9a-fA-F][0-9a-fA-F_]*)[pP][+\-]?[0-9][0-9_]*[fFdD]?"> |
| 117 | + <token type="LiteralNumberFloat" /> |
100 | 118 | </rule> |
101 | 119 | <rule pattern="0[xX][0-9a-fA-F][0-9a-fA-F_]*[lL]?"> |
102 | | - <token type="LiteralNumberHex"/> |
| 120 | + <token type="LiteralNumberHex" /> |
103 | 121 | </rule> |
104 | 122 | <rule pattern="0[bB][01][01_]*[lL]?"> |
105 | | - <token type="LiteralNumberBin"/> |
| 123 | + <token type="LiteralNumberBin" /> |
106 | 124 | </rule> |
107 | 125 | <rule pattern="0[0-7_]+[lL]?"> |
108 | | - <token type="LiteralNumberOct"/> |
| 126 | + <token type="LiteralNumberOct" /> |
109 | 127 | </rule> |
110 | 128 | <rule pattern="0|[1-9][0-9_]*[lL]?"> |
111 | | - <token type="LiteralNumberInteger"/> |
| 129 | + <token type="LiteralNumberInteger" /> |
112 | 130 | </rule> |
113 | | - <rule pattern="[~^*!%&\[\](){}<>|+=:;,./?-]"> |
114 | | - <token type="Operator"/> |
| 131 | + <rule pattern="[~^*!%&\[\]<>|+=/?-]"> |
| 132 | + <token type="Operator" /> |
| 133 | + </rule> |
| 134 | + <rule pattern="[{}();:.,]"> |
| 135 | + <token type="Punctuation" /> |
115 | 136 | </rule> |
116 | 137 | <rule pattern="\n"> |
117 | | - <token type="Text"/> |
| 138 | + <token type="TextWhitespace" /> |
| 139 | + </rule> |
| 140 | + </state> |
| 141 | + <state name="class"> |
| 142 | + <rule pattern="\s+"> |
| 143 | + <token type="Text" /> |
| 144 | + </rule> |
| 145 | + <rule pattern="([^\W\d]|\$)[\w$]*"> |
| 146 | + <token type="NameClass" /> |
| 147 | + <pop depth="1" /> |
| 148 | + </rule> |
| 149 | + </state> |
| 150 | + <state name="var"> |
| 151 | + <rule pattern="([^\W\d]|\$)[\w$]*"> |
| 152 | + <token type="Name" /> |
| 153 | + <pop depth="1" /> |
| 154 | + </rule> |
| 155 | + </state> |
| 156 | + <state name="import"> |
| 157 | + <rule pattern="[\w.]+\*?"> |
| 158 | + <token type="NameNamespace" /> |
| 159 | + <pop depth="1" /> |
| 160 | + </rule> |
| 161 | + </state> |
| 162 | + <state name="multiline_string"> |
| 163 | + <rule pattern="""""> |
| 164 | + <token type="LiteralString" /> |
| 165 | + <pop depth="1" /> |
| 166 | + </rule> |
| 167 | + <rule pattern="""> |
| 168 | + <token type="LiteralString" /> |
| 169 | + </rule> |
| 170 | + <rule> |
| 171 | + <include state="string" /> |
| 172 | + </rule> |
| 173 | + </state> |
| 174 | + <state name="string"> |
| 175 | + <rule pattern="[^\\"]+"> |
| 176 | + <token type="LiteralString" /> |
| 177 | + </rule> |
| 178 | + <rule pattern="\\\\"> |
| 179 | + <token type="LiteralString" /> |
| 180 | + </rule> |
| 181 | + <rule pattern="\\""> |
| 182 | + <token type="LiteralString" /> |
| 183 | + </rule> |
| 184 | + <rule pattern="\\"> |
| 185 | + <token type="LiteralString" /> |
| 186 | + </rule> |
| 187 | + <rule pattern="""> |
| 188 | + <token type="LiteralString" /> |
| 189 | + <pop depth="1" /> |
118 | 190 | </rule> |
119 | 191 | </state> |
120 | 192 | </rules> |
|
0 commit comments