...

Text file src/github.com/alecthomas/chroma/v2/lexers/embedded/armasm.xml

Documentation: github.com/alecthomas/chroma/v2/lexers/embedded

     1<lexer>
     2  <config>
     3    <name>ArmAsm</name>
     4    <alias>armasm</alias>
     5    <filename>*.s</filename>
     6    <filename>*.S</filename>
     7    <mime_type>text/x-armasm</mime_type>
     8    <mime_type>text/x-asm</mime_type>
     9    <ensure_nl>true</ensure_nl>
    10  </config>
    11  <rules>
    12    <state name="root">
    13      <rule>
    14        <include state="commentsandwhitespace"/>
    15      </rule>
    16      <rule pattern="(\.\w+)([ \t]+\w+\s+?)?">
    17        <bygroups>
    18          <token type="KeywordNamespace"/>
    19          <token type="NameLabel"/>
    20        </bygroups>
    21      </rule>
    22      <rule pattern="(\w+)(:)(\s+\.\w+\s+)">
    23        <bygroups>
    24          <token type="NameLabel"/>
    25          <token type="Punctuation"/>
    26          <token type="KeywordNamespace"/>
    27        </bygroups>
    28        <push state="literal"/>
    29      </rule>
    30      <rule pattern="(\w+)(:)">
    31        <bygroups>
    32          <token type="NameLabel"/>
    33          <token type="Punctuation"/>
    34        </bygroups>
    35      </rule>
    36      <rule pattern="svc\s+\w+">
    37        <token type="NameNamespace"/>
    38      </rule>
    39      <rule pattern="[a-zA-Z]+">
    40        <token type="Text"/>
    41        <push state="opcode"/>
    42      </rule>
    43    </state>
    44    <state name="commentsandwhitespace">
    45      <rule pattern="\s+">
    46        <token type="Text"/>
    47      </rule>
    48      <rule pattern="[@;].*?\n">
    49        <token type="CommentSingle"/>
    50      </rule>
    51      <rule pattern="/\*.*?\*/">
    52        <token type="CommentMultiline"/>
    53      </rule>
    54    </state>
    55    <state name="literal">
    56      <rule pattern="0b[01]+">
    57        <token type="LiteralNumberBin"/>
    58        <pop depth="1"/>
    59      </rule>
    60      <rule pattern="0x\w{1,8}">
    61        <token type="LiteralNumberHex"/>
    62        <pop depth="1"/>
    63      </rule>
    64      <rule pattern="0\d+">
    65        <token type="LiteralNumberOct"/>
    66        <pop depth="1"/>
    67      </rule>
    68      <rule pattern="\d+?\.\d+?">
    69        <token type="LiteralNumberFloat"/>
    70        <pop depth="1"/>
    71      </rule>
    72      <rule pattern="\d+">
    73        <token type="LiteralNumberInteger"/>
    74        <pop depth="1"/>
    75      </rule>
    76      <rule pattern="(&#34;)(.+)(&#34;)">
    77        <bygroups>
    78          <token type="Punctuation"/>
    79          <token type="LiteralStringDouble"/>
    80          <token type="Punctuation"/>
    81        </bygroups>
    82        <pop depth="1"/>
    83      </rule>
    84      <rule pattern="(&#39;)(.{1}|\\.{1})(&#39;)">
    85        <bygroups>
    86          <token type="Punctuation"/>
    87          <token type="LiteralStringChar"/>
    88          <token type="Punctuation"/>
    89        </bygroups>
    90        <pop depth="1"/>
    91      </rule>
    92    </state>
    93    <state name="opcode">
    94      <rule pattern="\n">
    95        <token type="Text"/>
    96        <pop depth="1"/>
    97      </rule>
    98      <rule pattern="(@|;).*\n">
    99        <token type="CommentSingle"/>
   100        <pop depth="1"/>
   101      </rule>
   102      <rule pattern="(\s+|,)">
   103        <token type="Text"/>
   104      </rule>
   105      <rule pattern="[rapcfxwbhsdqv]\d{1,2}">
   106        <token type="NameClass"/>
   107      </rule>
   108      <rule pattern="=0x\w+">
   109        <bygroups>
   110          <token type="Text"/>
   111          <token type="NameLabel"/>
   112        </bygroups>
   113      </rule>
   114      <rule pattern="(=)(\w+)">
   115        <bygroups>
   116          <token type="Text"/>
   117          <token type="NameLabel"/>
   118        </bygroups>
   119      </rule>
   120      <rule pattern="#">
   121        <token type="Text"/>
   122        <push state="literal"/>
   123      </rule>
   124    </state>
   125  </rules>
   126</lexer>

View as plain text