...

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

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

     1<lexer>
     2  <config>
     3    <name>CFEngine3</name>
     4    <alias>cfengine3</alias>
     5    <alias>cf3</alias>
     6    <filename>*.cf</filename>
     7  </config>
     8  <rules>
     9    <state name="interpol">
    10      <rule pattern="\$[{(]">
    11        <token type="LiteralStringInterpol"/>
    12        <push/>
    13      </rule>
    14      <rule pattern="[})]">
    15        <token type="LiteralStringInterpol"/>
    16        <pop depth="1"/>
    17      </rule>
    18      <rule pattern="[^${()}]+">
    19        <token type="LiteralStringInterpol"/>
    20      </rule>
    21    </state>
    22    <state name="arglist">
    23      <rule pattern="\)">
    24        <token type="Punctuation"/>
    25        <pop depth="1"/>
    26      </rule>
    27      <rule pattern=",">
    28        <token type="Punctuation"/>
    29      </rule>
    30      <rule pattern="\w+">
    31        <token type="NameVariable"/>
    32      </rule>
    33      <rule pattern="\s+">
    34        <token type="Text"/>
    35      </rule>
    36    </state>
    37    <state name="root">
    38      <rule pattern="#.*?\n">
    39        <token type="Comment"/>
    40      </rule>
    41      <rule pattern="^@.*?\n">
    42        <token type="CommentPreproc"/>
    43      </rule>
    44      <rule pattern="(body)(\s+)(\S+)(\s+)(control)">
    45        <bygroups>
    46          <token type="Keyword"/>
    47          <token type="Text"/>
    48          <token type="Keyword"/>
    49          <token type="Text"/>
    50          <token type="Keyword"/>
    51        </bygroups>
    52      </rule>
    53      <rule pattern="(body|bundle|promise)(\s+)(\S+)(\s+)(\w+)(\()">
    54        <bygroups>
    55          <token type="Keyword"/>
    56          <token type="Text"/>
    57          <token type="Keyword"/>
    58          <token type="Text"/>
    59          <token type="NameFunction"/>
    60          <token type="Punctuation"/>
    61        </bygroups>
    62        <push state="arglist"/>
    63      </rule>
    64      <rule pattern="(body|bundle|promise)(\s+)(\S+)(\s+)(\w+)">
    65        <bygroups>
    66          <token type="Keyword"/>
    67          <token type="Text"/>
    68          <token type="Keyword"/>
    69          <token type="Text"/>
    70          <token type="NameFunction"/>
    71        </bygroups>
    72      </rule>
    73      <rule pattern="(\S+)(\s*)(=&gt;)(\s*)">
    74        <bygroups>
    75          <token type="KeywordReserved"/>
    76          <token type="Text"/>
    77          <token type="Operator"/>
    78          <token type="Text"/>
    79        </bygroups>
    80      </rule>
    81      <rule pattern="([\w.!&amp;|()&#34;&#36;]+)(::)">
    82        <bygroups>
    83          <token type="NameClass"/>
    84          <token type="Punctuation"/>
    85        </bygroups>
    86      </rule>
    87      <rule pattern="&#34;">
    88        <token type="LiteralString"/>
    89        <push state="doublequotestring"/>
    90      </rule>
    91      <rule pattern="&#39;">
    92        <token type="LiteralString"/>
    93        <push state="singlequotestring"/>
    94      </rule>
    95      <rule pattern="&#96;">
    96        <token type="LiteralString"/>
    97        <push state="backtickstring"/>
    98      </rule>
    99      <rule pattern="(\w+)(\()">
   100        <bygroups>
   101          <token type="NameFunction"/>
   102          <token type="Punctuation"/>
   103        </bygroups>
   104      </rule>
   105      <rule pattern="(\w+)(:)">
   106        <bygroups>
   107          <token type="KeywordDeclaration"/>
   108          <token type="Punctuation"/>
   109        </bygroups>
   110      </rule>
   111      <rule pattern="@[{(][^)}]+[})]">
   112        <token type="NameVariable"/>
   113      </rule>
   114      <rule pattern="\$[(][^)]+[)]">
   115        <token type="NameVariable"/>
   116      </rule>
   117      <rule pattern="[(){},;]">
   118        <token type="Punctuation"/>
   119      </rule>
   120      <rule pattern="=&gt;">
   121        <token type="Operator"/>
   122      </rule>
   123      <rule pattern="-&gt;">
   124        <token type="Operator"/>
   125      </rule>
   126      <rule pattern="\d+\.\d+">
   127        <token type="LiteralNumberFloat"/>
   128      </rule>
   129      <rule pattern="\d+">
   130        <token type="LiteralNumberInteger"/>
   131      </rule>
   132      <rule pattern="\w+">
   133        <token type="NameFunction"/>
   134      </rule>
   135      <rule pattern="\s+">
   136        <token type="Text"/>
   137      </rule>
   138    </state>
   139    <state name="doublequotestring">
   140      <rule pattern="\$[{(]">
   141        <token type="LiteralStringInterpol"/>
   142        <push state="interpol"/>
   143      </rule>
   144      <rule pattern="\\.">
   145        <token type="LiteralStringEscape"/>
   146      </rule>
   147      <rule pattern="&#34;">
   148        <token type="LiteralString"/>
   149        <pop depth="1"/>
   150      </rule>
   151      <rule pattern="\n">
   152        <token type="LiteralString"/>
   153      </rule>
   154      <rule pattern=".">
   155        <token type="LiteralString"/>
   156      </rule>
   157    </state>
   158    <state name="singlequotestring">
   159      <rule pattern="\$[{(]">
   160        <token type="LiteralStringInterpol"/>
   161        <push state="interpol"/>
   162      </rule>
   163      <rule pattern="\\.">
   164        <token type="LiteralStringEscape"/>
   165      </rule>
   166      <rule pattern="&#39;">
   167        <token type="LiteralString"/>
   168        <pop depth="1"/>
   169      </rule>
   170      <rule pattern="\n">
   171        <token type="LiteralString"/>
   172      </rule>
   173      <rule pattern=".">
   174        <token type="LiteralString"/>
   175      </rule>
   176    </state>
   177    <state name="backtickstring">
   178      <rule pattern="\$[{(]">
   179        <token type="LiteralStringInterpol"/>
   180        <push state="interpol"/>
   181      </rule>
   182      <rule pattern="\\.">
   183        <token type="LiteralStringEscape"/>
   184      </rule>
   185      <rule pattern="&#96;">
   186        <token type="LiteralString"/>
   187        <pop depth="1"/>
   188      </rule>
   189      <rule pattern="\n">
   190        <token type="LiteralString"/>
   191      </rule>
   192      <rule pattern=".">
   193        <token type="LiteralString"/>
   194      </rule>
   195    </state>
   196  </rules>
   197</lexer>

View as plain text