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="&quot;.*&quot;"><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="&lt;(?:cl)?init&gt;"><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="-&gt;"><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.