...

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

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

     1<lexer>
     2  <config>
     3    <name>GAS</name>
     4    <alias>gas</alias>
     5    <alias>asm</alias>
     6    <filename>*.s</filename>
     7    <filename>*.S</filename>
     8    <mime_type>text/x-gas</mime_type>
     9  </config>
    10  <rules>
    11    <state name="punctuation">
    12      <rule pattern="[-*,.()\[\]!:]+">
    13        <token type="Punctuation"/>
    14      </rule>
    15    </state>
    16    <state name="root">
    17      <rule>
    18        <include state="whitespace"/>
    19      </rule>
    20      <rule pattern="(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+):">
    21        <token type="NameLabel"/>
    22      </rule>
    23      <rule pattern="\.(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+)">
    24        <token type="NameAttribute"/>
    25        <push state="directive-args"/>
    26      </rule>
    27      <rule pattern="lock|rep(n?z)?|data\d+">
    28        <token type="NameAttribute"/>
    29      </rule>
    30      <rule pattern="(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+)">
    31        <token type="NameFunction"/>
    32        <push state="instruction-args"/>
    33      </rule>
    34      <rule pattern="[\r\n]+">
    35        <token type="Text"/>
    36      </rule>
    37    </state>
    38    <state name="directive-args">
    39      <rule pattern="(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+)">
    40        <token type="NameConstant"/>
    41      </rule>
    42      <rule pattern="&#34;(\\&#34;|[^&#34;])*&#34;">
    43        <token type="LiteralString"/>
    44      </rule>
    45      <rule pattern="@(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+)">
    46        <token type="NameAttribute"/>
    47      </rule>
    48      <rule pattern="(?:0[xX][a-zA-Z0-9]+|\d+)">
    49        <token type="LiteralNumberInteger"/>
    50      </rule>
    51      <rule pattern="%(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+)">
    52        <token type="NameVariable"/>
    53      </rule>
    54      <rule pattern="[\r\n]+">
    55        <token type="Text"/>
    56        <pop depth="1"/>
    57      </rule>
    58      <rule pattern="([;#]|//).*?\n">
    59        <token type="CommentSingle"/>
    60        <pop depth="1"/>
    61      </rule>
    62      <rule pattern="/[*].*?[*]/">
    63        <token type="CommentMultiline"/>
    64      </rule>
    65      <rule pattern="/[*].*?\n[\w\W]*?[*]/">
    66        <token type="CommentMultiline"/>
    67        <pop depth="1"/>
    68      </rule>
    69      <rule>
    70        <include state="punctuation"/>
    71      </rule>
    72      <rule>
    73        <include state="whitespace"/>
    74      </rule>
    75    </state>
    76    <state name="instruction-args">
    77      <rule pattern="([a-z0-9]+)( )(&lt;)((?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+))(&gt;)">
    78        <bygroups>
    79          <token type="LiteralNumberHex"/>
    80          <token type="Text"/>
    81          <token type="Punctuation"/>
    82          <token type="NameConstant"/>
    83          <token type="Punctuation"/>
    84        </bygroups>
    85      </rule>
    86      <rule pattern="([a-z0-9]+)( )(&lt;)((?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+))([-+])((?:0[xX][a-zA-Z0-9]+|\d+))(&gt;)">
    87        <bygroups>
    88          <token type="LiteralNumberHex"/>
    89          <token type="Text"/>
    90          <token type="Punctuation"/>
    91          <token type="NameConstant"/>
    92          <token type="Punctuation"/>
    93          <token type="LiteralNumberInteger"/>
    94          <token type="Punctuation"/>
    95        </bygroups>
    96      </rule>
    97      <rule pattern="(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+)">
    98        <token type="NameConstant"/>
    99      </rule>
   100      <rule pattern="(?:0[xX][a-zA-Z0-9]+|\d+)">
   101        <token type="LiteralNumberInteger"/>
   102      </rule>
   103      <rule pattern="%(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+)">
   104        <token type="NameVariable"/>
   105      </rule>
   106      <rule pattern="$(?:0[xX][a-zA-Z0-9]+|\d+)">
   107        <token type="LiteralNumberInteger"/>
   108      </rule>
   109      <rule pattern="$&#39;(.|\\&#39;)&#39;">
   110        <token type="LiteralStringChar"/>
   111      </rule>
   112      <rule pattern="[\r\n]+">
   113        <token type="Text"/>
   114        <pop depth="1"/>
   115      </rule>
   116      <rule pattern="([;#]|//).*?\n">
   117        <token type="CommentSingle"/>
   118        <pop depth="1"/>
   119      </rule>
   120      <rule pattern="/[*].*?[*]/">
   121        <token type="CommentMultiline"/>
   122      </rule>
   123      <rule pattern="/[*].*?\n[\w\W]*?[*]/">
   124        <token type="CommentMultiline"/>
   125        <pop depth="1"/>
   126      </rule>
   127      <rule>
   128        <include state="punctuation"/>
   129      </rule>
   130      <rule>
   131        <include state="whitespace"/>
   132      </rule>
   133    </state>
   134    <state name="whitespace">
   135      <rule pattern="\n">
   136        <token type="Text"/>
   137      </rule>
   138      <rule pattern="\s+">
   139        <token type="Text"/>
   140      </rule>
   141      <rule pattern="([;#]|//).*?\n">
   142        <token type="CommentSingle"/>
   143      </rule>
   144      <rule pattern="/[*][\w\W]*?[*]/">
   145        <token type="CommentMultiline"/>
   146      </rule>
   147    </state>
   148  </rules>
   149</lexer>

View as plain text