Changeset View
Changeset View
Standalone View
Standalone View
data/syntax/smali.xml
- This file was added.
1 | <?xml version="1.0" encoding="UTF-8"?> | ||||
---|---|---|---|---|---|
2 | <!DOCTYPE language SYSTEM "language.dtd" | ||||
3 | [ | ||||
4 | <!ENTITY hex "[\da-fA-F]"> | ||||
5 | <!ENTITY label "(?<=^|\s|{)\:\w+"> | ||||
6 | <!ENTITY typeIdentifiers "ZBSCIJFD"> | ||||
7 | <!ENTITY fieldTypeLookBehind "\w\:"> | ||||
8 | <!ENTITY fieldLookBehind "[\s,;\(\)]"> | ||||
9 | <!ENTITY builtin "(javax?|dalvik|android)/[\w\$/]+"> | ||||
10 | ]> | ||||
11 | <language name="Smali" version="1" kateversion="5.0" section="Sources" extensions="*.smali" mimetype="text/x-smali" license="MIT"> | ||||
12 | <highlighting> | ||||
13 | <list name="mnemonics"> | ||||
14 | <item>nop</item> | ||||
15 | <item>move</item> | ||||
16 | <item>move/from16</item> | ||||
17 | <item>move/16</item> | ||||
18 | <item>move-wide</item> | ||||
19 | <item>move-wide/from16</item> | ||||
20 | <item>move-wide/16</item> | ||||
21 | <item>move-object</item> | ||||
22 | <item>move-object/from16</item> | ||||
23 | <item>move-object/16</item> | ||||
24 | <item>move-result</item> | ||||
25 | <item>move-result-wide</item> | ||||
26 | <item>move-result-object</item> | ||||
27 | <item>move-exception</item> | ||||
28 | <item>return-void</item> | ||||
29 | <item>return</item> | ||||
30 | <item>return-wide</item> | ||||
31 | <item>return-object</item> | ||||
32 | <item>const/4</item> | ||||
33 | <item>const/16</item> | ||||
34 | <item>const</item> | ||||
35 | <item>const/high16</item> | ||||
36 | <item>const-wide/16</item> | ||||
37 | <item>const-wide/32</item> | ||||
38 | <item>const-wide</item> | ||||
39 | <item>const-wide/high16</item> | ||||
40 | <item>const-string</item> | ||||
41 | <item>const-string/jumbo</item> | ||||
42 | <item>const-class</item> | ||||
43 | <item>monitor-enter</item> | ||||
44 | <item>monitor-exit</item> | ||||
45 | <item>check-cast</item> | ||||
46 | <item>instance-of</item> | ||||
47 | <item>array-length</item> | ||||
48 | <item>new-instance</item> | ||||
49 | <item>new-array</item> | ||||
50 | <item>filled-new-array</item> | ||||
51 | <item>filled-new-array/range</item> | ||||
52 | <item>fill-array-data</item> | ||||
53 | <item>throw</item> | ||||
54 | <item>goto</item> | ||||
55 | <item>goto/16</item> | ||||
56 | <item>goto/32</item> | ||||
57 | <item>packed-switch</item> | ||||
58 | <item>sparse-switch</item> | ||||
59 | <item>cmpl-float</item> | ||||
60 | <item>cmpg-float</item> | ||||
61 | <item>cmpl-double</item> | ||||
62 | <item>cmpg-double</item> | ||||
63 | <item>cmp-long</item> | ||||
64 | <item>if-eq</item> | ||||
65 | <item>if-ne</item> | ||||
66 | <item>if-lt</item> | ||||
67 | <item>if-ge</item> | ||||
68 | <item>if-gt</item> | ||||
69 | <item>if-le</item> | ||||
70 | <item>if-eqz</item> | ||||
71 | <item>if-nez</item> | ||||
72 | <item>if-ltz</item> | ||||
73 | <item>if-gez</item> | ||||
74 | <item>if-gtz</item> | ||||
75 | <item>if-lez</item> | ||||
76 | <item>aget</item> | ||||
77 | <item>aget-wide</item> | ||||
78 | <item>aget-object</item> | ||||
79 | <item>aget-boolean</item> | ||||
80 | <item>aget-byte</item> | ||||
81 | <item>aget-char</item> | ||||
82 | <item>aget-short</item> | ||||
83 | <item>aput</item> | ||||
84 | <item>aput-wide</item> | ||||
85 | <item>aput-object</item> | ||||
86 | <item>aput-boolean</item> | ||||
87 | <item>aput-byte</item> | ||||
88 | <item>aput-char</item> | ||||
89 | <item>aput-short</item> | ||||
90 | <item>iget</item> | ||||
91 | <item>iget-wide</item> | ||||
92 | <item>iget-object</item> | ||||
93 | <item>iget-boolean</item> | ||||
94 | <item>iget-byte</item> | ||||
95 | <item>iget-char</item> | ||||
96 | <item>iget-short</item> | ||||
97 | <item>iput</item> | ||||
98 | <item>iput-wide</item> | ||||
99 | <item>iput-object</item> | ||||
100 | <item>iput-boolean</item> | ||||
101 | <item>iput-byte</item> | ||||
102 | <item>iput-char</item> | ||||
103 | <item>iput-short</item> | ||||
104 | <item>sget</item> | ||||
105 | <item>sget-wide</item> | ||||
106 | <item>sget-object</item> | ||||
107 | <item>sget-boolean</item> | ||||
108 | <item>sget-byte</item> | ||||
109 | <item>sget-char</item> | ||||
110 | <item>sget-short</item> | ||||
111 | <item>sput</item> | ||||
112 | <item>sput-wide</item> | ||||
113 | <item>sput-object</item> | ||||
114 | <item>sput-boolean</item> | ||||
115 | <item>sput-byte</item> | ||||
116 | <item>sput-char</item> | ||||
117 | <item>sput-short</item> | ||||
118 | <item>invoke-virtual</item> | ||||
119 | <item>invoke-super</item> | ||||
120 | <item>invoke-direct</item> | ||||
121 | <item>invoke-static</item> | ||||
122 | <item>invoke-interface</item> | ||||
123 | <item>invoke-virtual/range</item> | ||||
124 | <item>invoke-super/range</item> | ||||
125 | <item>invoke-direct/range</item> | ||||
126 | <item>invoke-static/range</item> | ||||
127 | <item>invoke-interface/range</item> | ||||
128 | <item>neg-int</item> | ||||
129 | <item>not-int</item> | ||||
130 | <item>neg-long</item> | ||||
131 | <item>not-long</item> | ||||
132 | <item>neg-float</item> | ||||
133 | <item>neg-double</item> | ||||
134 | <item>int-to-long</item> | ||||
135 | <item>int-to-float</item> | ||||
136 | <item>int-to-double</item> | ||||
137 | <item>long-to-int</item> | ||||
138 | <item>long-to-float</item> | ||||
139 | <item>long-to-double</item> | ||||
140 | <item>float-to-int</item> | ||||
141 | <item>float-to-long</item> | ||||
142 | <item>float-to-double</item> | ||||
143 | <item>double-to-int</item> | ||||
144 | <item>double-to-long</item> | ||||
145 | <item>double-to-float</item> | ||||
146 | <item>int-to-byte</item> | ||||
147 | <item>int-to-char</item> | ||||
148 | <item>int-to-short</item> | ||||
149 | <item>add-int</item> | ||||
150 | <item>sub-int</item> | ||||
151 | <item>mul-int</item> | ||||
152 | <item>div-int</item> | ||||
153 | <item>rem-int</item> | ||||
154 | <item>and-int</item> | ||||
155 | <item>or-int</item> | ||||
156 | <item>xor-int</item> | ||||
157 | <item>shl-int</item> | ||||
158 | <item>shr-int</item> | ||||
159 | <item>ushr-int</item> | ||||
160 | <item>add-long</item> | ||||
161 | <item>sub-long</item> | ||||
162 | <item>mul-long</item> | ||||
163 | <item>div-long</item> | ||||
164 | <item>rem-long</item> | ||||
165 | <item>and-long</item> | ||||
166 | <item>or-long</item> | ||||
167 | <item>xor-long</item> | ||||
168 | <item>shl-long</item> | ||||
169 | <item>shr-long</item> | ||||
170 | <item>ushr-long</item> | ||||
171 | <item>add-float</item> | ||||
172 | <item>sub-float</item> | ||||
173 | <item>mul-float</item> | ||||
174 | <item>div-float</item> | ||||
175 | <item>rem-float</item> | ||||
176 | <item>add-double</item> | ||||
177 | <item>sub-double</item> | ||||
178 | <item>mul-double</item> | ||||
179 | <item>div-double</item> | ||||
180 | <item>rem-double</item> | ||||
181 | <item>add-int/2addr</item> | ||||
182 | <item>sub-int/2addr</item> | ||||
183 | <item>mul-int/2addr</item> | ||||
184 | <item>div-int/2addr</item> | ||||
185 | <item>rem-int/2addr</item> | ||||
186 | <item>and-int/2addr</item> | ||||
187 | <item>or-int/2addr</item> | ||||
188 | <item>xor-int/2addr</item> | ||||
189 | <item>shl-int/2addr</item> | ||||
190 | <item>shr-int/2addr</item> | ||||
191 | <item>ushr-int/2addr</item> | ||||
192 | <item>add-long/2addr</item> | ||||
193 | <item>sub-long/2addr</item> | ||||
194 | <item>mul-long/2addr</item> | ||||
195 | <item>div-long/2addr</item> | ||||
196 | <item>rem-long/2addr</item> | ||||
197 | <item>and-long/2addr</item> | ||||
198 | <item>or-long/2addr</item> | ||||
199 | <item>xor-long/2addr</item> | ||||
200 | <item>shl-long/2addr</item> | ||||
201 | <item>shr-long/2addr</item> | ||||
202 | <item>ushr-long/2addr</item> | ||||
203 | <item>add-float/2addr</item> | ||||
204 | <item>sub-float/2addr</item> | ||||
205 | <item>mul-float/2addr</item> | ||||
206 | <item>div-float/2addr</item> | ||||
207 | <item>rem-float/2addr</item> | ||||
208 | <item>add-double/2addr</item> | ||||
209 | <item>sub-double/2addr</item> | ||||
210 | <item>mul-double/2addr</item> | ||||
211 | <item>div-double/2addr</item> | ||||
212 | <item>rem-double/2addr</item> | ||||
213 | <item>add-int/lit16</item> | ||||
214 | <item>rsub-int</item> | ||||
215 | <item>mul-int/lit16</item> | ||||
216 | <item>div-int/lit16</item> | ||||
217 | <item>rem-int/lit16</item> | ||||
218 | <item>and-int/lit16</item> | ||||
219 | <item>or-int/lit16</item> | ||||
220 | <item>xor-int/lit16</item> | ||||
221 | <item>add-int/lit8</item> | ||||
222 | <item>rsub-int/lit8</item> | ||||
223 | <item>mul-int/lit8</item> | ||||
224 | <item>div-int/lit8</item> | ||||
225 | <item>rem-int/lit8</item> | ||||
226 | <item>and-int/lit8</item> | ||||
227 | <item>or-int/lit8</item> | ||||
228 | <item>xor-int/lit8</item> | ||||
229 | <item>shl-int/lit8</item> | ||||
230 | <item>shr-int/lit8</item> | ||||
231 | <item>ushr-int/lit8</item> | ||||
232 | <item>iget-volatile</item> | ||||
233 | <item>iput-volatile</item> | ||||
234 | <item>sget-volatile</item> | ||||
235 | <item>sput-volatile</item> | ||||
236 | <item>iget-object-volatile</item> | ||||
237 | <item>iget-wide-volatile</item> | ||||
238 | <item>iput-wide-volatile</item> | ||||
239 | <item>sget-wide-volatile</item> | ||||
240 | <item>sput-wide-volatile</item> | ||||
241 | <item>sget-object-volatile</item> | ||||
242 | <item>throw-verification-error</item> | ||||
243 | <item>execute-inline</item> | ||||
244 | <item>execute-inline/range</item> | ||||
245 | <item>invoke-object-init/range</item> | ||||
246 | <item>return-void-barrier</item> | ||||
247 | <item>iget-quick</item> | ||||
248 | <item>invoke-polymorphic</item> | ||||
249 | <item>invoke-polymorphic/range</item> | ||||
250 | <item>invoke-custom</item> | ||||
251 | <item>invoke-custom/range</item> | ||||
252 | <item>const-method-handle</item> | ||||
253 | <item>const-method-type</item> | ||||
254 | </list> | ||||
255 | <list name="keywords"> | ||||
256 | <!-- Access flags --> | ||||
257 | <item>public</item> | ||||
258 | <item>private</item> | ||||
259 | <item>protected</item> | ||||
260 | <item>static</item> | ||||
261 | <item>final</item> | ||||
262 | <item>synchronized</item> | ||||
263 | <item>volatile</item> | ||||
264 | <item>bridge</item> | ||||
265 | <item>transient</item> | ||||
266 | <item>varargs</item> | ||||
267 | <item>native</item> | ||||
268 | <item>interface</item> | ||||
269 | <item>abstract</item> | ||||
270 | <item>strictfp</item> | ||||
271 | <item>synthetic</item> | ||||
272 | <item>annotation</item> | ||||
273 | <item>enum</item> | ||||
274 | <item>constructor</item> | ||||
275 | <item>declared-synchronized</item> | ||||
276 | | ||||
277 | <!-- Visibility values --> | ||||
278 | <item>build</item> | ||||
279 | <item>runtime</item> | ||||
280 | <item>system</item> | ||||
281 | </list> | ||||
282 | <contexts> | ||||
283 | <context attribute="Normal Text" lineEndContext="#stay" name="Normal"> | ||||
284 | <WordDetect attribute="Attribute" String=".class" context="#stay" /> | ||||
285 | <WordDetect attribute="Attribute" String=".super" context="#stay" /> | ||||
286 | <WordDetect attribute="Attribute" String=".implements" context="#stay" /> | ||||
287 | <WordDetect attribute="Attribute" String=".source" context="#stay" /> | ||||
288 | <WordDetect attribute="Attribute" String=".field" context="#stay" /> | ||||
289 | <RegExpr attribute="Attribute" String="\.end\s+field" firstNonSpace="true" context="#stay" /> | ||||
290 | <WordDetect attribute="Attribute" String=".annotation" context="Annotation" beginRegion="Annotation" /> | ||||
291 | <WordDetect attribute="Attribute" String=".subannotation" context="#stay" /> | ||||
292 | <RegExpr attribute="Attribute" String="\.end\s+subannotation" firstNonSpace="true" context="#stay" /> | ||||
293 | <WordDetect attribute="Attribute" String=".enum" context="#stay" /> | ||||
294 | <WordDetect attribute="Attribute" String=".method" context="MethodDeclaration" beginRegion="Method" /> | ||||
295 | <keyword attribute="Keyword" context="#stay" String="keywords" /> | ||||
296 | <IncludeRules context="Global" /> | ||||
297 | </context> | ||||
298 | <context attribute="Normal Text" lineEndContext="#stay" name="Literal"> | ||||
299 | <WordDetect attribute="Bool" String="true" context="#stay" /> | ||||
300 | <WordDetect attribute="Bool" String="false" context="#stay" /> | ||||
301 | <WordDetect attribute="Float" String="-infinity" insensitive="true" context="#stay" /> | ||||
302 | <WordDetect attribute="Float" String="infinity" insensitive="true" context="#stay" /> | ||||
303 | <WordDetect attribute="Float" String="-infinityD" insensitive="true" context="#stay" /> | ||||
304 | <WordDetect attribute="Float" String="infinityD" insensitive="true" context="#stay" /> | ||||
305 | <WordDetect attribute="Float" String="-infinityF" insensitive="true" context="#stay" /> | ||||
306 | <WordDetect attribute="Float" String="infinityF" insensitive="true" context="#stay" /> | ||||
307 | <WordDetect attribute="Float" String="NaN" insensitive="true" context="#stay" /> | ||||
308 | <WordDetect attribute="Float" String="NaND" insensitive="true" context="#stay" /> | ||||
309 | <WordDetect attribute="Float" String="NaNF" insensitive="true" context="#stay" /> | ||||
310 | <RegExpr attribute="Float" context="#stay" String="\-?\d*(\d+\.|\.\d+|\d+)\d*[eE][\-\+]?\d+[dDfF]?\b" /> | ||||
311 | <RegExpr attribute="Float" context="#stay" String="\-?\d*(\d+\.|\.\d+)\d*[dDfF]?" /> | ||||
312 | <RegExpr attribute="Float" context="#stay" String="\-?\d+[dDfF]\b" /> | ||||
313 | <RegExpr attribute="Float" context="#stay" String="\-?0x&hex;*(\.|&hex;+)&hex;*[pP]\-?\d+[dDfF]?\b" /> | ||||
314 | <RegExpr attribute="Hex" context="#stay" String="\-?0x&hex;+[LtTsS]?\b" /> | ||||
315 | <RegExpr attribute="Decimal" context="#stay" String="\-?\d+[tTLsS]?\b" /> | ||||
316 | <HlCChar attribute="Char" context="#stay" /> | ||||
317 | <RegExpr attribute="Char" context="#stay" String="'\\u&hex;{4}'" /> | ||||
318 | <DetectChar attribute="String" context="String" char=""" /> | ||||
319 | </context> | ||||
320 | <context attribute="Normal Text" lineEndContext="#stay" name="Global"> | ||||
321 | <DetectChar attribute="Comment" context="Comment" char="#" /> | ||||
322 | <RegExpr attribute="Method" context="#stay" String="\b[\w\$]+\s*(?=\s*>?\s*\()" /> | ||||
323 | <RegExpr attribute="Field" context="#stay" String="\b[\w\$]+\s*(?=\:)" /> | ||||
324 | <IncludeRules context="Literal" /> | ||||
325 | <RegExpr attribute="Built-in" context="#stay" String="(?<=&fieldTypeLookBehind;L)&builtin;" /> | ||||
326 | <RegExpr attribute="Built-in" context="#stay" String="(?<=&fieldLookBehind;L)&builtin;" /> | ||||
327 | <RegExpr attribute="Built-in" context="#stay" String="(?<=\[L)&builtin;" /> | ||||
328 | <RegExpr attribute="Built-in" context="#stay" String="(?<=[&typeIdentifiers;]L)&builtin;" /> | ||||
329 | <RegExpr attribute="Data Type" context="#stay" String="(?<=&fieldTypeLookBehind;L)[\w/\$]+" /> | ||||
330 | <RegExpr attribute="Data Type" context="#stay" String="(?<=&fieldLookBehind;L)[\w/\$]+" /> | ||||
331 | <RegExpr attribute="Data Type" context="#stay" String="(?<=\[L)[\w/\$]+" /> | ||||
332 | <RegExpr attribute="Data Type" context="#stay" String="(?<=[&typeIdentifiers;]L)[\w/\$]+" /> | ||||
333 | <RegExpr attribute="Type Identifier" context="#stay" String="(?<=&fieldTypeLookBehind;)\[*([&typeIdentifiers;]|L)" /> | ||||
334 | <RegExpr attribute="Type Identifier" context="#stay" String="(?<=&fieldLookBehind;)(\[*[&typeIdentifiers;])*\[*([&typeIdentifiers;]|L)" /> | ||||
335 | <RegExpr attribute="Type Identifier" context="#stay" String="(?<=[;&typeIdentifiers;\(]\))V" /> | ||||
336 | <Detect2Chars attribute="Operator" context="#stay" char="." char1="." /> | ||||
337 | <DetectChar attribute="Symbol" context="#stay" char="{" /> | ||||
338 | <DetectChar attribute="Symbol" context="#stay" char="}" /> | ||||
339 | <DetectChar attribute="Symbol" context="#stay" char="<" /> | ||||
340 | <DetectChar attribute="Symbol" context="#stay" char=">" /> | ||||
341 | <DetectChar attribute="Symbol" context="#stay" char=":" /> | ||||
342 | <DetectChar attribute="Symbol" context="#stay" char=";" /> | ||||
343 | <DetectChar attribute="Symbol" context="#stay" char="=" /> | ||||
344 | <DetectChar attribute="Symbol" context="#stay" char="(" /> | ||||
345 | <DetectChar attribute="Symbol" context="#stay" char=")" /> | ||||
346 | </context> | ||||
347 | <context attribute="Normal Text" lineEndContext="Method" name="MethodDeclaration"> | ||||
348 | <keyword attribute="Keyword" context="#stay" String="keywords" /> | ||||
349 | <IncludeRules context="Global" /> | ||||
350 | </context> | ||||
351 | <context attribute="Normal Text" lineEndContext="#stay" name="Method"> | ||||
352 | <WordDetect attribute="Attribute" String=".registers" context="#stay" /> | ||||
353 | <WordDetect attribute="Attribute" String=".locals" context="#stay" /> | ||||
354 | <WordDetect attribute="Attribute" String=".annotation" context="Annotation" beginRegion="Annotation" /> | ||||
355 | <WordDetect attribute="Attribute" String=".array-data" context="ArrayData" beginRegion="ArrayData" /> | ||||
356 | <WordDetect attribute="Attribute" String=".packed-switch" context="PackedSwitch" beginRegion="PackedSwitch" /> | ||||
357 | <WordDetect attribute="Attribute" String=".sparse-switch" context="SparseSwitch" beginRegion="SparseSwitch" /> | ||||
358 | <WordDetect attribute="Attribute" String=".catch" context="#stay" /> | ||||
359 | <WordDetect attribute="Attribute" String=".catchall" context="#stay" /> | ||||
360 | <WordDetect attribute="Attribute" String=".line" context="#stay" /> | ||||
361 | <WordDetect attribute="Attribute" String=".param" context="Param" /> | ||||
362 | <RegExpr attribute="Attribute" String="\.end\s+param" firstNonSpace="true" context="#stay" /> | ||||
363 | <WordDetect attribute="Attribute" String=".local" context="#stay" /> | ||||
364 | <RegExpr attribute="Attribute" String="\.end\s+local" firstNonSpace="true" context="#stay" /> | ||||
365 | <RegExpr attribute="Attribute" String="\.restart\s+local" firstNonSpace="true" context="#stay" /> | ||||
366 | <WordDetect attribute="Attribute" String=".prologue" context="#stay" /> | ||||
367 | <WordDetect attribute="Attribute" String=".epilogue" context="#stay" /> | ||||
368 | <keyword attribute="Mnemonic" context="#stay" String="mnemonics" /> | ||||
369 | <RegExpr attribute="Attribute" String="\.end\s+method" firstNonSpace="true" context="#pop#pop" endRegion="Method" /> | ||||
370 | <RegExpr attribute="Register" context="#stay" String="\b(v|p)[0-9]+\b" /> | ||||
371 | <RegExpr attribute="Label" context="#stay" String="&label;" /> | ||||
372 | <Detect2Chars attribute="Operator" context="#stay" char="-" char1=">" /> | ||||
373 | <IncludeRules context="Global" /> | ||||
374 | </context> | ||||
375 | <context attribute="Annotation" lineEndContext="AnnotationBody" name="Annotation"> | ||||
376 | <IncludeRules context="Global" /> | ||||
377 | <keyword attribute="Keyword" context="#stay" String="keywords" /> | ||||
378 | </context> | ||||
379 | <context attribute="Attribute" lineEndContext="#stay" name="AnnotationBody"> | ||||
380 | <IncludeRules context="Global" /> | ||||
381 | <RegExpr attribute="Attribute" String="\.end\s+annotation" firstNonSpace="true" context="#pop#pop" endRegion="Annotation" /> | ||||
382 | </context> | ||||
383 | <context attribute="Attribute" lineEndContext="PackedSwitchBody" name="PackedSwitch"> | ||||
384 | <IncludeRules context="Literal" /> | ||||
385 | </context> | ||||
386 | <context attribute="Normal Text" lineEndContext="#stay" name="PackedSwitchBody"> | ||||
387 | <DetectChar attribute="Comment" context="Comment" char="#" /> | ||||
388 | <RegExpr attribute="Label" context="#stay" String="&label;" /> | ||||
389 | <RegExpr attribute="Attribute" String="\.end\s+packed\-switch" firstNonSpace="true" context="#pop#pop" endRegion="PackedSwitch" /> | ||||
390 | </context> | ||||
391 | <context attribute="Attribute" lineEndContext="SparseSwitchBody" name="SparseSwitch"> | ||||
392 | <IncludeRules context="Literal" /> | ||||
393 | </context> | ||||
394 | <context attribute="Normal Text" lineEndContext="#stay" name="SparseSwitchBody"> | ||||
395 | <DetectChar attribute="Comment" context="Comment" char="#" /> | ||||
396 | <IncludeRules context="Literal" /> | ||||
397 | <RegExpr attribute="Label" context="#stay" String="&label;" /> | ||||
398 | <Detect2Chars attribute="Operator" context="#stay" char="-" char1=">" /> | ||||
399 | <RegExpr attribute="Attribute" String="\.end\s+sparse\-switch" firstNonSpace="true" context="#pop#pop" endRegion="SparseSwitch" /> | ||||
400 | </context> | ||||
401 | <context attribute="Normal Text" lineEndContext="ArrayDataBody" name="ArrayData"> | ||||
402 | <IncludeRules context="Literal" /> | ||||
403 | </context> | ||||
404 | <context attribute="Normal Text" lineEndContext="#stay" name="ArrayDataBody"> | ||||
405 | <DetectChar attribute="Comment" context="Comment" char="#" /> | ||||
406 | <IncludeRules context="Literal" /> | ||||
407 | <RegExpr attribute="Attribute" String="\.end\s+array\-data" firstNonSpace="true" context="#pop#pop" endRegion="ArrayData" /> | ||||
408 | </context> | ||||
409 | <context attribute="Normal Text" lineEndContext="#pop" name="Param"> | ||||
410 | <RegExpr attribute="Register" context="#stay" String="\bp[0-9]+\b" /> | ||||
411 | <RegExpr attribute="Variable" context="#stay" String="(?<=,)\s*[\w]+" /> | ||||
412 | <IncludeRules context="Literal" /> | ||||
413 | </context> | ||||
414 | <context attribute="String" lineEndContext="#pop" name="String"> | ||||
415 | <LineContinue attribute="String" context="#stay"/> | ||||
416 | <HlCStringChar attribute="String Char" context="#stay"/> | ||||
417 | <RegExpr attribute="String Char" context="#stay" String="\\u[0-9a-fA-F]{4}"/> | ||||
418 | <DetectChar attribute="String" context="#pop" char="""/> | ||||
419 | </context> | ||||
420 | <context attribute="Comment" lineEndContext="#pop" name="Comment"> | ||||
421 | <IncludeRules context="##Alerts"/> | ||||
422 | </context> | ||||
423 | </contexts> | ||||
424 | <itemDatas> | ||||
425 | <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false" /> | ||||
426 | <itemData name="Attribute" defStyleNum="dsAttribute" spellChecking="false" /> | ||||
427 | <itemData name="Annotation" defStyleNum="dsAttribute" spellChecking="false" /> | ||||
428 | <itemData name="Mnemonic" defStyleNum="dsKeyword" spellChecking="false" /> | ||||
429 | <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false" /> | ||||
430 | <itemData name="Method" defStyleNum="dsFunction" spellChecking="false" /> | ||||
431 | <itemData name="Register" defStyleNum="dsVariable" spellChecking="false" /> | ||||
432 | <itemData name="Field" defStyleNum="dsVariable" spellChecking="false" /> | ||||
433 | <itemData name="Variable" defStyleNum="dsVariable" /> | ||||
434 | <itemData name="Operator" defStyleNum="dsOperator" spellChecking="false" /> | ||||
435 | <itemData name="Type Identifier" defStyleNum="dsDataType" italic="true" spellChecking="false" /> | ||||
436 | <itemData name="Data Type" defStyleNum="dsDataType" italic="false" spellChecking="false" /> | ||||
437 | <itemData name="Label" defStyleNum="dsOthers" spellChecking="false" /> | ||||
438 | <itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false" /> | ||||
439 | <itemData name="Bool" defStyleNum="dsBaseN" spellChecking="false" /> | ||||
440 | <itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false" /> | ||||
441 | <itemData name="Float" defStyleNum="dsFloat" spellChecking="false" /> | ||||
442 | <itemData name="Char" defStyleNum="dsChar" spellChecking="false" /> | ||||
443 | <itemData name="String" defStyleNum="dsString" /> | ||||
444 | <itemData name="String Char" defStyleNum="dsSpecialChar" spellChecking="false" /> | ||||
445 | <itemData name="Comment" defStyleNum="dsComment" /> | ||||
446 | <itemData name="Symbol" defStyleNum="dsNormal" spellChecking="false" /> | ||||
447 | <itemData name="Built-in" defStyleNum="dsBuiltIn" spellChecking="false" /> | ||||
448 | </itemDatas> | ||||
449 | </highlighting> | ||||
450 | <general> | ||||
451 | <comments> | ||||
452 | <comment name="singleLine" start="#"/> | ||||
453 | </comments> | ||||
454 | <keywords casesensitive="1" weakDeliminator="-/[$" /> | ||||
455 | </general> | ||||
456 | </language> |