main
Last change
on this file since e48199a was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago |
Initial commit
|
-
Property mode
set to
100644
|
File size:
2.3 KB
|
Line | |
---|
1 | /*
|
---|
2 | Language: Smali
|
---|
3 | Author: Dennis Titze <dennis.titze@gmail.com>
|
---|
4 | Description: Basic Smali highlighting
|
---|
5 | Website: https://github.com/JesusFreke/smali
|
---|
6 | */
|
---|
7 |
|
---|
8 | function smali(hljs) {
|
---|
9 | const smali_instr_low_prio = [
|
---|
10 | 'add',
|
---|
11 | 'and',
|
---|
12 | 'cmp',
|
---|
13 | 'cmpg',
|
---|
14 | 'cmpl',
|
---|
15 | 'const',
|
---|
16 | 'div',
|
---|
17 | 'double',
|
---|
18 | 'float',
|
---|
19 | 'goto',
|
---|
20 | 'if',
|
---|
21 | 'int',
|
---|
22 | 'long',
|
---|
23 | 'move',
|
---|
24 | 'mul',
|
---|
25 | 'neg',
|
---|
26 | 'new',
|
---|
27 | 'nop',
|
---|
28 | 'not',
|
---|
29 | 'or',
|
---|
30 | 'rem',
|
---|
31 | 'return',
|
---|
32 | 'shl',
|
---|
33 | 'shr',
|
---|
34 | 'sput',
|
---|
35 | 'sub',
|
---|
36 | 'throw',
|
---|
37 | 'ushr',
|
---|
38 | 'xor'
|
---|
39 | ];
|
---|
40 | const smali_instr_high_prio = [
|
---|
41 | 'aget',
|
---|
42 | 'aput',
|
---|
43 | 'array',
|
---|
44 | 'check',
|
---|
45 | 'execute',
|
---|
46 | 'fill',
|
---|
47 | 'filled',
|
---|
48 | 'goto/16',
|
---|
49 | 'goto/32',
|
---|
50 | 'iget',
|
---|
51 | 'instance',
|
---|
52 | 'invoke',
|
---|
53 | 'iput',
|
---|
54 | 'monitor',
|
---|
55 | 'packed',
|
---|
56 | 'sget',
|
---|
57 | 'sparse'
|
---|
58 | ];
|
---|
59 | const smali_keywords = [
|
---|
60 | 'transient',
|
---|
61 | 'constructor',
|
---|
62 | 'abstract',
|
---|
63 | 'final',
|
---|
64 | 'synthetic',
|
---|
65 | 'public',
|
---|
66 | 'private',
|
---|
67 | 'protected',
|
---|
68 | 'static',
|
---|
69 | 'bridge',
|
---|
70 | 'system'
|
---|
71 | ];
|
---|
72 | return {
|
---|
73 | name: 'Smali',
|
---|
74 | contains: [
|
---|
75 | {
|
---|
76 | className: 'string',
|
---|
77 | begin: '"',
|
---|
78 | end: '"',
|
---|
79 | relevance: 0
|
---|
80 | },
|
---|
81 | hljs.COMMENT(
|
---|
82 | '#',
|
---|
83 | '$',
|
---|
84 | {
|
---|
85 | relevance: 0
|
---|
86 | }
|
---|
87 | ),
|
---|
88 | {
|
---|
89 | className: 'keyword',
|
---|
90 | variants: [
|
---|
91 | {
|
---|
92 | begin: '\\s*\\.end\\s[a-zA-Z0-9]*'
|
---|
93 | },
|
---|
94 | {
|
---|
95 | begin: '^[ ]*\\.[a-zA-Z]*',
|
---|
96 | relevance: 0
|
---|
97 | },
|
---|
98 | {
|
---|
99 | begin: '\\s:[a-zA-Z_0-9]*',
|
---|
100 | relevance: 0
|
---|
101 | },
|
---|
102 | {
|
---|
103 | begin: '\\s(' + smali_keywords.join('|') + ')'
|
---|
104 | }
|
---|
105 | ]
|
---|
106 | },
|
---|
107 | {
|
---|
108 | className: 'built_in',
|
---|
109 | variants: [
|
---|
110 | {
|
---|
111 | begin: '\\s(' + smali_instr_low_prio.join('|') + ')\\s'
|
---|
112 | },
|
---|
113 | {
|
---|
114 | begin: '\\s(' + smali_instr_low_prio.join('|') + ')((-|/)[a-zA-Z0-9]+)+\\s',
|
---|
115 | relevance: 10
|
---|
116 | },
|
---|
117 | {
|
---|
118 | begin: '\\s(' + smali_instr_high_prio.join('|') + ')((-|/)[a-zA-Z0-9]+)*\\s',
|
---|
119 | relevance: 10
|
---|
120 | }
|
---|
121 | ]
|
---|
122 | },
|
---|
123 | {
|
---|
124 | className: 'class',
|
---|
125 | begin: 'L[^\(;:\n]*;',
|
---|
126 | relevance: 0
|
---|
127 | },
|
---|
128 | {
|
---|
129 | begin: '[vp][0-9]+'
|
---|
130 | }
|
---|
131 | ]
|
---|
132 | };
|
---|
133 | }
|
---|
134 |
|
---|
135 | module.exports = smali;
|
---|
Note:
See
TracBrowser
for help on using the repository browser.