...

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

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

     1<lexer>
     2  <config>
     3    <name>Cap&#39;n Proto</name>
     4    <alias>capnp</alias>
     5    <filename>*.capnp</filename>
     6  </config>
     7  <rules>
     8    <state name="root">
     9      <rule pattern="#.*?$">
    10        <token type="CommentSingle"/>
    11      </rule>
    12      <rule pattern="@[0-9a-zA-Z]*">
    13        <token type="NameDecorator"/>
    14      </rule>
    15      <rule pattern="=">
    16        <token type="Literal"/>
    17        <push state="expression"/>
    18      </rule>
    19      <rule pattern=":">
    20        <token type="NameClass"/>
    21        <push state="type"/>
    22      </rule>
    23      <rule pattern="\$">
    24        <token type="NameAttribute"/>
    25        <push state="annotation"/>
    26      </rule>
    27      <rule pattern="(struct|enum|interface|union|import|using|const|annotation|extends|in|of|on|as|with|from|fixed)\b">
    28        <token type="Keyword"/>
    29      </rule>
    30      <rule pattern="[\w.]+">
    31        <token type="Name"/>
    32      </rule>
    33      <rule pattern="[^#@=:$\w]+">
    34        <token type="Text"/>
    35      </rule>
    36    </state>
    37    <state name="type">
    38      <rule pattern="[^][=;,(){}$]+">
    39        <token type="NameClass"/>
    40      </rule>
    41      <rule pattern="[[(]">
    42        <token type="NameClass"/>
    43        <push state="parentype"/>
    44      </rule>
    45      <rule>
    46        <pop depth="1"/>
    47      </rule>
    48    </state>
    49    <state name="parentype">
    50      <rule pattern="[^][;()]+">
    51        <token type="NameClass"/>
    52      </rule>
    53      <rule pattern="[[(]">
    54        <token type="NameClass"/>
    55        <push/>
    56      </rule>
    57      <rule pattern="[])]">
    58        <token type="NameClass"/>
    59        <pop depth="1"/>
    60      </rule>
    61      <rule>
    62        <pop depth="1"/>
    63      </rule>
    64    </state>
    65    <state name="expression">
    66      <rule pattern="[^][;,(){}$]+">
    67        <token type="Literal"/>
    68      </rule>
    69      <rule pattern="[[(]">
    70        <token type="Literal"/>
    71        <push state="parenexp"/>
    72      </rule>
    73      <rule>
    74        <pop depth="1"/>
    75      </rule>
    76    </state>
    77    <state name="parenexp">
    78      <rule pattern="[^][;()]+">
    79        <token type="Literal"/>
    80      </rule>
    81      <rule pattern="[[(]">
    82        <token type="Literal"/>
    83        <push/>
    84      </rule>
    85      <rule pattern="[])]">
    86        <token type="Literal"/>
    87        <pop depth="1"/>
    88      </rule>
    89      <rule>
    90        <pop depth="1"/>
    91      </rule>
    92    </state>
    93    <state name="annotation">
    94      <rule pattern="[^][;,(){}=:]+">
    95        <token type="NameAttribute"/>
    96      </rule>
    97      <rule pattern="[[(]">
    98        <token type="NameAttribute"/>
    99        <push state="annexp"/>
   100      </rule>
   101      <rule>
   102        <pop depth="1"/>
   103      </rule>
   104    </state>
   105    <state name="annexp">
   106      <rule pattern="[^][;()]+">
   107        <token type="NameAttribute"/>
   108      </rule>
   109      <rule pattern="[[(]">
   110        <token type="NameAttribute"/>
   111        <push/>
   112      </rule>
   113      <rule pattern="[])]">
   114        <token type="NameAttribute"/>
   115        <pop depth="1"/>
   116      </rule>
   117      <rule>
   118        <pop depth="1"/>
   119      </rule>
   120    </state>
   121  </rules>
   122</lexer>

View as plain text