...

Text file src/github.com/alecthomas/chroma/v2/lexers/embedded/modula-2.xml

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

     1<lexer>
     2  <config>
     3    <name>Modula-2</name>
     4    <alias>modula2</alias>
     5    <alias>m2</alias>
     6    <filename>*.def</filename>
     7    <filename>*.mod</filename>
     8    <mime_type>text/x-modula2</mime_type>
     9    <dot_all>true</dot_all>
    10  </config>
    11  <rules>
    12    <state name="dialecttags">
    13      <rule pattern="\(\*!m2pim\*\)">
    14        <token type="CommentSpecial"/>
    15      </rule>
    16      <rule pattern="\(\*!m2iso\*\)">
    17        <token type="CommentSpecial"/>
    18      </rule>
    19      <rule pattern="\(\*!m2r10\*\)">
    20        <token type="CommentSpecial"/>
    21      </rule>
    22      <rule pattern="\(\*!objm2\*\)">
    23        <token type="CommentSpecial"/>
    24      </rule>
    25      <rule pattern="\(\*!m2iso\+aglet\*\)">
    26        <token type="CommentSpecial"/>
    27      </rule>
    28      <rule pattern="\(\*!m2pim\+gm2\*\)">
    29        <token type="CommentSpecial"/>
    30      </rule>
    31      <rule pattern="\(\*!m2iso\+p1\*\)">
    32        <token type="CommentSpecial"/>
    33      </rule>
    34      <rule pattern="\(\*!m2iso\+xds\*\)">
    35        <token type="CommentSpecial"/>
    36      </rule>
    37    </state>
    38    <state name="unigraph_operators">
    39      <rule pattern="[+-]">
    40        <token type="Operator"/>
    41      </rule>
    42      <rule pattern="[*/]">
    43        <token type="Operator"/>
    44      </rule>
    45      <rule pattern="\\">
    46        <token type="Operator"/>
    47      </rule>
    48      <rule pattern="[=#&lt;&gt;]">
    49        <token type="Operator"/>
    50      </rule>
    51      <rule pattern="\^">
    52        <token type="Operator"/>
    53      </rule>
    54      <rule pattern="@">
    55        <token type="Operator"/>
    56      </rule>
    57      <rule pattern="&amp;">
    58        <token type="Operator"/>
    59      </rule>
    60      <rule pattern="~">
    61        <token type="Operator"/>
    62      </rule>
    63      <rule pattern="`">
    64        <token type="Operator"/>
    65      </rule>
    66    </state>
    67    <state name="string_literals">
    68      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
    69        <token type="LiteralString"/>
    70      </rule>
    71      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
    72        <token type="LiteralString"/>
    73      </rule>
    74    </state>
    75    <state name="identifiers">
    76      <rule pattern="([a-zA-Z_$][\w$]*)">
    77        <token type="Name"/>
    78      </rule>
    79    </state>
    80    <state name="pragmas">
    81      <rule pattern="&lt;\*.*?\*&gt;">
    82        <token type="CommentPreproc"/>
    83      </rule>
    84      <rule pattern="\(\*\$.*?\*\)">
    85        <token type="CommentPreproc"/>
    86      </rule>
    87    </state>
    88    <state name="comments">
    89      <rule pattern="^//.*?\n">
    90        <token type="CommentSingle"/>
    91      </rule>
    92      <rule pattern="\(\*([^$].*?)\*\)">
    93        <token type="CommentMultiline"/>
    94      </rule>
    95      <rule pattern="/\*(.*?)\*/">
    96        <token type="CommentMultiline"/>
    97      </rule>
    98    </state>
    99    <state name="whitespace">
   100      <rule pattern="\n+">
   101        <token type="Text"/>
   102      </rule>
   103      <rule pattern="\s+">
   104        <token type="Text"/>
   105      </rule>
   106    </state>
   107    <state name="suffixed_number_literals">
   108      <rule pattern="[0-7]+B">
   109        <token type="LiteralNumberOct"/>
   110      </rule>
   111      <rule pattern="[0-7]+C">
   112        <token type="LiteralNumberOct"/>
   113      </rule>
   114      <rule pattern="[0-9A-F]+H">
   115        <token type="LiteralNumberHex"/>
   116      </rule>
   117    </state>
   118    <state name="plain_number_literals">
   119      <rule pattern="[0-9]+(\&#39;[0-9]+)*\.[0-9]+(\&#39;[0-9]+)*[eE][+-]?[0-9]+(\&#39;[0-9]+)*">
   120        <token type="LiteralNumberFloat"/>
   121      </rule>
   122      <rule pattern="[0-9]+(\&#39;[0-9]+)*\.[0-9]+(\&#39;[0-9]+)*">
   123        <token type="LiteralNumberFloat"/>
   124      </rule>
   125      <rule pattern="[0-9]+(\&#39;[0-9]+)*">
   126        <token type="LiteralNumberInteger"/>
   127      </rule>
   128    </state>
   129    <state name="digraph_punctuation">
   130      <rule pattern="\.\.">
   131        <token type="Punctuation"/>
   132      </rule>
   133      <rule pattern="&lt;&lt;">
   134        <token type="Punctuation"/>
   135      </rule>
   136      <rule pattern="&gt;&gt;">
   137        <token type="Punctuation"/>
   138      </rule>
   139      <rule pattern="-&gt;">
   140        <token type="Punctuation"/>
   141      </rule>
   142      <rule pattern="\|#">
   143        <token type="Punctuation"/>
   144      </rule>
   145      <rule pattern="##">
   146        <token type="Punctuation"/>
   147      </rule>
   148      <rule pattern="\|\*">
   149        <token type="Punctuation"/>
   150      </rule>
   151    </state>
   152    <state name="unigraph_punctuation">
   153      <rule pattern="[()\[\]{},.:;|]">
   154        <token type="Punctuation"/>
   155      </rule>
   156      <rule pattern="!">
   157        <token type="Punctuation"/>
   158      </rule>
   159      <rule pattern="\?">
   160        <token type="Punctuation"/>
   161      </rule>
   162    </state>
   163    <state name="root">
   164      <rule>
   165        <include state="whitespace"/>
   166      </rule>
   167      <rule>
   168        <include state="dialecttags"/>
   169      </rule>
   170      <rule>
   171        <include state="pragmas"/>
   172      </rule>
   173      <rule>
   174        <include state="comments"/>
   175      </rule>
   176      <rule>
   177        <include state="identifiers"/>
   178      </rule>
   179      <rule>
   180        <include state="suffixed_number_literals"/>
   181      </rule>
   182      <rule>
   183        <include state="prefixed_number_literals"/>
   184      </rule>
   185      <rule>
   186        <include state="plain_number_literals"/>
   187      </rule>
   188      <rule>
   189        <include state="string_literals"/>
   190      </rule>
   191      <rule>
   192        <include state="digraph_punctuation"/>
   193      </rule>
   194      <rule>
   195        <include state="digraph_operators"/>
   196      </rule>
   197      <rule>
   198        <include state="unigraph_punctuation"/>
   199      </rule>
   200      <rule>
   201        <include state="unigraph_operators"/>
   202      </rule>
   203    </state>
   204    <state name="prefixed_number_literals">
   205      <rule pattern="0b[01]+(\&#39;[01]+)*">
   206        <token type="LiteralNumberBin"/>
   207      </rule>
   208      <rule pattern="0[ux][0-9A-F]+(\&#39;[0-9A-F]+)*">
   209        <token type="LiteralNumberHex"/>
   210      </rule>
   211    </state>
   212    <state name="digraph_operators">
   213      <rule pattern="\*\.">
   214        <token type="Operator"/>
   215      </rule>
   216      <rule pattern="\+&gt;">
   217        <token type="Operator"/>
   218      </rule>
   219      <rule pattern="&lt;&gt;">
   220        <token type="Operator"/>
   221      </rule>
   222      <rule pattern="&lt;=">
   223        <token type="Operator"/>
   224      </rule>
   225      <rule pattern="&gt;=">
   226        <token type="Operator"/>
   227      </rule>
   228      <rule pattern="==">
   229        <token type="Operator"/>
   230      </rule>
   231      <rule pattern="::">
   232        <token type="Operator"/>
   233      </rule>
   234      <rule pattern=":=">
   235        <token type="Operator"/>
   236      </rule>
   237      <rule pattern="\+\+">
   238        <token type="Operator"/>
   239      </rule>
   240      <rule pattern="--">
   241        <token type="Operator"/>
   242      </rule>
   243    </state>
   244  </rules>
   245</lexer>

View as plain text