...

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

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

     1<lexer>
     2  <config>
     3    <name>ChaiScript</name>
     4    <alias>chai</alias>
     5    <alias>chaiscript</alias>
     6    <filename>*.chai</filename>
     7    <mime_type>text/x-chaiscript</mime_type>
     8    <mime_type>application/x-chaiscript</mime_type>
     9    <dot_all>true</dot_all>
    10  </config>
    11  <rules>
    12    <state name="dqstring">
    13      <rule pattern="\$\{[^&#34;}]+?\}">
    14        <token type="LiteralStringInterpol"/>
    15      </rule>
    16      <rule pattern="\$">
    17        <token type="LiteralStringDouble"/>
    18      </rule>
    19      <rule pattern="\\\\">
    20        <token type="LiteralStringDouble"/>
    21      </rule>
    22      <rule pattern="\\&#34;">
    23        <token type="LiteralStringDouble"/>
    24      </rule>
    25      <rule pattern="[^\\&#34;$]+">
    26        <token type="LiteralStringDouble"/>
    27      </rule>
    28      <rule pattern="&#34;">
    29        <token type="LiteralStringDouble"/>
    30        <pop depth="1"/>
    31      </rule>
    32    </state>
    33    <state name="commentsandwhitespace">
    34      <rule pattern="\s+">
    35        <token type="Text"/>
    36      </rule>
    37      <rule pattern="//.*?\n">
    38        <token type="CommentSingle"/>
    39      </rule>
    40      <rule pattern="/\*.*?\*/">
    41        <token type="CommentMultiline"/>
    42      </rule>
    43      <rule pattern="^\#.*?\n">
    44        <token type="CommentSingle"/>
    45      </rule>
    46    </state>
    47    <state name="slashstartsregex">
    48      <rule>
    49        <include state="commentsandwhitespace"/>
    50      </rule>
    51      <rule pattern="/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)">
    52        <token type="LiteralStringRegex"/>
    53        <pop depth="1"/>
    54      </rule>
    55      <rule pattern="(?=/)">
    56        <token type="Text"/>
    57        <push state="#pop" state="badregex"/>
    58      </rule>
    59      <rule>
    60        <pop depth="1"/>
    61      </rule>
    62    </state>
    63    <state name="badregex">
    64      <rule pattern="\n">
    65        <token type="Text"/>
    66        <pop depth="1"/>
    67      </rule>
    68    </state>
    69    <state name="root">
    70      <rule>
    71        <include state="commentsandwhitespace"/>
    72      </rule>
    73      <rule pattern="\n">
    74        <token type="Text"/>
    75      </rule>
    76      <rule pattern="[^\S\n]+">
    77        <token type="Text"/>
    78      </rule>
    79      <rule pattern="\+\+|--|~|&amp;&amp;|\?|:|\|\||\\(?=\n)|\.\.(&lt;&lt;|&gt;&gt;&gt;?|==?|!=?|[-&lt;&gt;+*%&amp;|^/])=?">
    80        <token type="Operator"/>
    81        <push state="slashstartsregex"/>
    82      </rule>
    83      <rule pattern="[{(\[;,]">
    84        <token type="Punctuation"/>
    85        <push state="slashstartsregex"/>
    86      </rule>
    87      <rule pattern="[})\].]">
    88        <token type="Punctuation"/>
    89      </rule>
    90      <rule pattern="[=+\-*/]">
    91        <token type="Operator"/>
    92      </rule>
    93      <rule pattern="(for|in|while|do|break|return|continue|if|else|throw|try|catch)\b">
    94        <token type="Keyword"/>
    95        <push state="slashstartsregex"/>
    96      </rule>
    97      <rule pattern="(var)\b">
    98        <token type="KeywordDeclaration"/>
    99        <push state="slashstartsregex"/>
   100      </rule>
   101      <rule pattern="(attr|def|fun)\b">
   102        <token type="KeywordReserved"/>
   103      </rule>
   104      <rule pattern="(true|false)\b">
   105        <token type="KeywordConstant"/>
   106      </rule>
   107      <rule pattern="(eval|throw)\b">
   108        <token type="NameBuiltin"/>
   109      </rule>
   110      <rule pattern="`\S+`">
   111        <token type="NameBuiltin"/>
   112      </rule>
   113      <rule pattern="[$a-zA-Z_]\w*">
   114        <token type="NameOther"/>
   115      </rule>
   116      <rule pattern="[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?">
   117        <token type="LiteralNumberFloat"/>
   118      </rule>
   119      <rule pattern="0x[0-9a-fA-F]+">
   120        <token type="LiteralNumberHex"/>
   121      </rule>
   122      <rule pattern="[0-9]+">
   123        <token type="LiteralNumberInteger"/>
   124      </rule>
   125      <rule pattern="&#34;">
   126        <token type="LiteralStringDouble"/>
   127        <push state="dqstring"/>
   128      </rule>
   129      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
   130        <token type="LiteralStringSingle"/>
   131      </rule>
   132    </state>
   133  </rules>
   134</lexer>

View as plain text