...

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

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

     1<lexer>
     2  <config>
     3    <name>NASM</name>
     4    <alias>nasm</alias>
     5    <filename>*.asm</filename>
     6    <filename>*.ASM</filename>
     7    <mime_type>text/x-nasm</mime_type>
     8    <case_insensitive>true</case_insensitive>
     9  </config>
    10  <rules>
    11    <state name="punctuation">
    12      <rule pattern="[,():\[\]]+">
    13        <token type="Punctuation"/>
    14      </rule>
    15      <rule pattern="[&amp;|^&lt;&gt;+*/%~-]+">
    16        <token type="Operator"/>
    17      </rule>
    18      <rule pattern="[$]+">
    19        <token type="KeywordConstant"/>
    20      </rule>
    21      <rule pattern="seg|wrt|strict">
    22        <token type="OperatorWord"/>
    23      </rule>
    24      <rule pattern="byte|[dq]?word">
    25        <token type="KeywordType"/>
    26      </rule>
    27    </state>
    28    <state name="root">
    29      <rule pattern="^\s*%">
    30        <token type="CommentPreproc"/>
    31        <push state="preproc"/>
    32      </rule>
    33      <rule>
    34        <include state="whitespace"/>
    35      </rule>
    36      <rule pattern="[a-z$._?][\w$.?#@~]*:">
    37        <token type="NameLabel"/>
    38      </rule>
    39      <rule pattern="([a-z$._?][\w$.?#@~]*)(\s+)(equ)">
    40        <bygroups>
    41          <token type="NameConstant"/>
    42          <token type="KeywordDeclaration"/>
    43          <token type="KeywordDeclaration"/>
    44        </bygroups>
    45        <push state="instruction-args"/>
    46      </rule>
    47      <rule pattern="BITS|USE16|USE32|SECTION|SEGMENT|ABSOLUTE|EXTERN|GLOBAL|ORG|ALIGN|STRUC|ENDSTRUC|COMMON|CPU|GROUP|UPPERCASE|IMPORT|EXPORT|LIBRARY|MODULE">
    48        <token type="Keyword"/>
    49        <push state="instruction-args"/>
    50      </rule>
    51      <rule pattern="(?:res|d)[bwdqt]|times">
    52        <token type="KeywordDeclaration"/>
    53        <push state="instruction-args"/>
    54      </rule>
    55      <rule pattern="[a-z$._?][\w$.?#@~]*">
    56        <token type="NameFunction"/>
    57        <push state="instruction-args"/>
    58      </rule>
    59      <rule pattern="[\r\n]+">
    60        <token type="Text"/>
    61      </rule>
    62    </state>
    63    <state name="instruction-args">
    64      <rule pattern="&#34;(\\&#34;|[^&#34;\n])*&#34;|&#39;(\\&#39;|[^&#39;\n])*&#39;|`(\\`|[^`\n])*`">
    65        <token type="LiteralString"/>
    66      </rule>
    67      <rule pattern="(?:0x[0-9a-f]+|$0[0-9a-f]*|[0-9]+[0-9a-f]*h)">
    68        <token type="LiteralNumberHex"/>
    69      </rule>
    70      <rule pattern="[0-7]+q">
    71        <token type="LiteralNumberOct"/>
    72      </rule>
    73      <rule pattern="[01]+b">
    74        <token type="LiteralNumberBin"/>
    75      </rule>
    76      <rule pattern="[0-9]+\.e?[0-9]+">
    77        <token type="LiteralNumberFloat"/>
    78      </rule>
    79      <rule pattern="[0-9]+">
    80        <token type="LiteralNumberInteger"/>
    81      </rule>
    82      <rule>
    83        <include state="punctuation"/>
    84      </rule>
    85      <rule pattern="r[0-9][0-5]?[bwd]|[a-d][lh]|[er]?[a-d]x|[er]?[sb]p|[er]?[sd]i|[c-gs]s|st[0-7]|mm[0-7]|cr[0-4]|dr[0-367]|tr[3-7]">
    86        <token type="NameBuiltin"/>
    87      </rule>
    88      <rule pattern="[a-z$._?][\w$.?#@~]*">
    89        <token type="NameVariable"/>
    90      </rule>
    91      <rule pattern="[\r\n]+">
    92        <token type="Text"/>
    93        <pop depth="1"/>
    94      </rule>
    95      <rule>
    96        <include state="whitespace"/>
    97      </rule>
    98    </state>
    99    <state name="preproc">
   100      <rule pattern="[^;\n]+">
   101        <token type="CommentPreproc"/>
   102      </rule>
   103      <rule pattern=";.*?\n">
   104        <token type="CommentSingle"/>
   105        <pop depth="1"/>
   106      </rule>
   107      <rule pattern="\n">
   108        <token type="CommentPreproc"/>
   109        <pop depth="1"/>
   110      </rule>
   111    </state>
   112    <state name="whitespace">
   113      <rule pattern="\n">
   114        <token type="Text"/>
   115      </rule>
   116      <rule pattern="[ \t]+">
   117        <token type="Text"/>
   118      </rule>
   119      <rule pattern=";.*">
   120        <token type="CommentSingle"/>
   121      </rule>
   122    </state>
   123  </rules>
   124</lexer>

View as plain text