...

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

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

     1<lexer>
     2  <config>
     3    <name>ReasonML</name>
     4    <alias>reason</alias>
     5    <alias>reasonml</alias>
     6    <filename>*.re</filename>
     7    <filename>*.rei</filename>
     8    <mime_type>text/x-reasonml</mime_type>
     9  </config>
    10  <rules>
    11    <state name="escape-sequence">
    12      <rule pattern="\\[\\&#34;\&#39;ntbr]">
    13        <token type="LiteralStringEscape"/>
    14      </rule>
    15      <rule pattern="\\[0-9]{3}">
    16        <token type="LiteralStringEscape"/>
    17      </rule>
    18      <rule pattern="\\x[0-9a-fA-F]{2}">
    19        <token type="LiteralStringEscape"/>
    20      </rule>
    21    </state>
    22    <state name="root">
    23      <rule pattern="\s+">
    24        <token type="Text"/>
    25      </rule>
    26      <rule pattern="false|true|\(\)|\[\]">
    27        <token type="NameBuiltinPseudo"/>
    28      </rule>
    29      <rule pattern="\b([A-Z][\w\&#39;]*)(?=\s*\.)">
    30        <token type="NameNamespace"/>
    31        <push state="dotted"/>
    32      </rule>
    33      <rule pattern="\b([A-Z][\w\&#39;]*)">
    34        <token type="NameClass"/>
    35      </rule>
    36      <rule pattern="//.*?\n">
    37        <token type="CommentSingle"/>
    38      </rule>
    39      <rule pattern="\/\*(?![\/])">
    40        <token type="CommentMultiline"/>
    41        <push state="comment"/>
    42      </rule>
    43      <rule pattern="\b(as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|false|for|fun|esfun|function|functor|if|in|include|inherit|initializer|lazy|let|switch|module|pub|mutable|new|nonrec|object|of|open|pri|rec|sig|struct|then|to|true|try|type|val|virtual|when|while|with)\b">
    44        <token type="Keyword"/>
    45      </rule>
    46      <rule pattern="(~|\}|\|]|\||\|\||\{&lt;|\{|`|_|]|\[\||\[&gt;|\[&lt;|\[|\?\?|\?|&gt;\}|&gt;]|&gt;|=|&lt;-|&lt;|;;|;|:&gt;|:=|::|:|\.\.\.|\.\.|\.|=&gt;|-\.|-|,|\+|\*|\)|\(|&amp;&amp;|&amp;|#|!=)">
    47        <token type="OperatorWord"/>
    48      </rule>
    49      <rule pattern="([=&lt;&gt;@^|&amp;+\*/$%-]|[!?~])?[!$%&amp;*+\./:&lt;=&gt;?@^|~-]">
    50        <token type="Operator"/>
    51      </rule>
    52      <rule pattern="\b(and|asr|land|lor|lsl|lsr|lxor|mod|or)\b">
    53        <token type="OperatorWord"/>
    54      </rule>
    55      <rule pattern="\b(unit|int|float|bool|string|char|list|array)\b">
    56        <token type="KeywordType"/>
    57      </rule>
    58      <rule pattern="[^\W\d][\w&#39;]*">
    59        <token type="Name"/>
    60      </rule>
    61      <rule pattern="-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)">
    62        <token type="LiteralNumberFloat"/>
    63      </rule>
    64      <rule pattern="0[xX][\da-fA-F][\da-fA-F_]*">
    65        <token type="LiteralNumberHex"/>
    66      </rule>
    67      <rule pattern="0[oO][0-7][0-7_]*">
    68        <token type="LiteralNumberOct"/>
    69      </rule>
    70      <rule pattern="0[bB][01][01_]*">
    71        <token type="LiteralNumberBin"/>
    72      </rule>
    73      <rule pattern="\d[\d_]*">
    74        <token type="LiteralNumberInteger"/>
    75      </rule>
    76      <rule pattern="&#39;(?:(\\[\\\&#34;&#39;ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))&#39;">
    77        <token type="LiteralStringChar"/>
    78      </rule>
    79      <rule pattern="&#39;.&#39;">
    80        <token type="LiteralStringChar"/>
    81      </rule>
    82      <rule pattern="&#39;">
    83        <token type="Keyword"/>
    84      </rule>
    85      <rule pattern="&#34;">
    86        <token type="LiteralStringDouble"/>
    87        <push state="string"/>
    88      </rule>
    89      <rule pattern="[~?][a-z][\w\&#39;]*:">
    90        <token type="NameVariable"/>
    91      </rule>
    92    </state>
    93    <state name="comment">
    94      <rule pattern="[^\/*]+">
    95        <token type="CommentMultiline"/>
    96      </rule>
    97      <rule pattern="\/\*">
    98        <token type="CommentMultiline"/>
    99        <push/>
   100      </rule>
   101      <rule pattern="\*\/">
   102        <token type="CommentMultiline"/>
   103        <pop depth="1"/>
   104      </rule>
   105      <rule pattern="[\*]">
   106        <token type="CommentMultiline"/>
   107      </rule>
   108    </state>
   109    <state name="string">
   110      <rule pattern="[^\\&#34;]+">
   111        <token type="LiteralStringDouble"/>
   112      </rule>
   113      <rule>
   114        <include state="escape-sequence"/>
   115      </rule>
   116      <rule pattern="\\\n">
   117        <token type="LiteralStringDouble"/>
   118      </rule>
   119      <rule pattern="&#34;">
   120        <token type="LiteralStringDouble"/>
   121        <pop depth="1"/>
   122      </rule>
   123    </state>
   124    <state name="dotted">
   125      <rule pattern="\s+">
   126        <token type="Text"/>
   127      </rule>
   128      <rule pattern="\.">
   129        <token type="Punctuation"/>
   130      </rule>
   131      <rule pattern="[A-Z][\w\&#39;]*(?=\s*\.)">
   132        <token type="NameNamespace"/>
   133      </rule>
   134      <rule pattern="[A-Z][\w\&#39;]*">
   135        <token type="NameClass"/>
   136        <pop depth="1"/>
   137      </rule>
   138      <rule pattern="[a-z_][\w\&#39;]*">
   139        <token type="Name"/>
   140        <pop depth="1"/>
   141      </rule>
   142      <rule>
   143        <pop depth="1"/>
   144      </rule>
   145    </state>
   146  </rules>
   147</lexer>

View as plain text