main
Last change
on this file was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago |
Initial commit
|
-
Property mode
set to
100644
|
File size:
2.3 KB
|
Rev | Line | |
---|
[d24f17c] | 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.