...
1<!--
2 Generated from https://github.com/pygments/pygments/blob/15f222adefd2bf7835bfd74a12d720028ae68d29/pygments/lexers/dalvik.py.
3-->
4<lexer>
5 <config>
6 <name>Smali</name>
7 <alias>smali</alias>
8 <filename>*.smali</filename>
9 <mime_type>text/smali</mime_type>
10 </config>
11 <rules>
12 <state name="root">
13 <rule><include state="comment"/></rule>
14 <rule><include state="label"/></rule>
15 <rule><include state="field"/></rule>
16 <rule><include state="method"/></rule>
17 <rule><include state="class"/></rule>
18 <rule><include state="directive"/></rule>
19 <rule><include state="access-modifier"/></rule>
20 <rule><include state="instruction"/></rule>
21 <rule><include state="literal"/></rule>
22 <rule><include state="punctuation"/></rule>
23 <rule><include state="type"/></rule>
24 <rule><include state="whitespace"/></rule>
25 </state>
26 <state name="directive">
27 <rule pattern="^([ \t]*)(\.(?:class|super|implements|field|subannotation|annotation|enum|method|registers|locals|array-data|packed-switch|sparse-switch|catchall|catch|line|parameter|local|prologue|epilogue|source))"><bygroups><token type="TextWhitespace"/><token type="Keyword"/></bygroups></rule>
28 <rule pattern="^([ \t]*)(\.end)( )(field|subannotation|annotation|method|array-data|packed-switch|sparse-switch|parameter|local)"><bygroups><token type="TextWhitespace"/><token type="Keyword"/><token type="TextWhitespace"/><token type="Keyword"/></bygroups></rule>
29 <rule pattern="^([ \t]*)(\.restart)( )(local)"><bygroups><token type="TextWhitespace"/><token type="Keyword"/><token type="TextWhitespace"/><token type="Keyword"/></bygroups></rule>
30 </state>
31 <state name="access-modifier">
32 <rule pattern="(public|private|protected|static|final|synchronized|bridge|varargs|native|abstract|strictfp|synthetic|constructor|declared-synchronized|interface|enum|annotation|volatile|transient)"><token type="Keyword"/></rule>
33 </state>
34 <state name="whitespace">
35 <rule pattern="\n"><token type="TextWhitespace"/></rule>
36 <rule pattern="\s+"><token type="TextWhitespace"/></rule>
37 </state>
38 <state name="instruction">
39 <rule pattern="\b[vp]\d+\b"><token type="NameBuiltin"/></rule>
40 <rule pattern="(\b[a-z][A-Za-z0-9/-]+)(\s+)"><bygroups><token type="Text"/><token type="TextWhitespace"/></bygroups></rule>
41 </state>
42 <state name="literal">
43 <rule pattern="".*""><token type="LiteralString"/></rule>
44 <rule pattern="0x[0-9A-Fa-f]+t?"><token type="LiteralNumberHex"/></rule>
45 <rule pattern="[0-9]*\.[0-9]+([eE][0-9]+)?[fd]?"><token type="LiteralNumberFloat"/></rule>
46 <rule pattern="[0-9]+L?"><token type="LiteralNumberInteger"/></rule>
47 </state>
48 <state name="field">
49 <rule pattern="(\$?\b)([\w$]*)(:)"><bygroups><token type="Punctuation"/><token type="NameVariable"/><token type="Punctuation"/></bygroups></rule>
50 </state>
51 <state name="method">
52 <rule pattern="<(?:cl)?init>"><token type="NameFunction"/></rule>
53 <rule pattern="(\$?\b)([\w$]*)(\()"><bygroups><token type="Punctuation"/><token type="NameFunction"/><token type="Punctuation"/></bygroups></rule>
54 </state>
55 <state name="label">
56 <rule pattern=":\w+"><token type="NameLabel"/></rule>
57 </state>
58 <state name="class">
59 <rule pattern="(L)((?:[\w$]+/)*)([\w$]+)(;)"><bygroups><token type="KeywordType"/><token type="Text"/><token type="NameClass"/><token type="Text"/></bygroups></rule>
60 </state>
61 <state name="punctuation">
62 <rule pattern="->"><token type="Punctuation"/></rule>
63 <rule pattern="[{},():=.-]"><token type="Punctuation"/></rule>
64 </state>
65 <state name="type">
66 <rule pattern="[ZBSCIJFDV\[]+"><token type="KeywordType"/></rule>
67 </state>
68 <state name="comment">
69 <rule pattern="#.*?\n"><token type="Comment"/></rule>
70 </state>
71 </rules>
72</lexer>
73
View as plain text