...

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

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

     1<lexer>
     2  <config>
     3    <name>CoffeeScript</name>
     4    <alias>coffee-script</alias>
     5    <alias>coffeescript</alias>
     6    <alias>coffee</alias>
     7    <filename>*.coffee</filename>
     8    <mime_type>text/coffeescript</mime_type>
     9    <dot_all>true</dot_all>
    10    <not_multiline>true</not_multiline>
    11  </config>
    12  <rules>
    13    <state name="commentsandwhitespace">
    14      <rule pattern="\s+">
    15        <token type="Text"/>
    16      </rule>
    17      <rule pattern="###[^#].*?###">
    18        <token type="CommentMultiline"/>
    19      </rule>
    20      <rule pattern="#(?!##[^#]).*?\n">
    21        <token type="CommentSingle"/>
    22      </rule>
    23    </state>
    24    <state name="multilineregex">
    25      <rule pattern="[^/#]+">
    26        <token type="LiteralStringRegex"/>
    27      </rule>
    28      <rule pattern="///([gim]+\b|\B)">
    29        <token type="LiteralStringRegex"/>
    30        <pop depth="1"/>
    31      </rule>
    32      <rule pattern="#\{">
    33        <token type="LiteralStringInterpol"/>
    34        <push state="interpoling_string"/>
    35      </rule>
    36      <rule pattern="[/#]">
    37        <token type="LiteralStringRegex"/>
    38      </rule>
    39    </state>
    40    <state name="slashstartsregex">
    41      <rule>
    42        <include state="commentsandwhitespace"/>
    43      </rule>
    44      <rule pattern="///">
    45        <token type="LiteralStringRegex"/>
    46        <push state="#pop" state="multilineregex"/>
    47      </rule>
    48      <rule pattern="/(?! )(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)">
    49        <token type="LiteralStringRegex"/>
    50        <pop depth="1"/>
    51      </rule>
    52      <rule pattern="/">
    53        <token type="Operator"/>
    54      </rule>
    55      <rule>
    56        <pop depth="1"/>
    57      </rule>
    58    </state>
    59    <state name="tsqs">
    60      <rule pattern="&#39;&#39;&#39;">
    61        <token type="LiteralString"/>
    62        <pop depth="1"/>
    63      </rule>
    64      <rule pattern="#|\\.|\&#39;|&#34;">
    65        <token type="LiteralString"/>
    66      </rule>
    67      <rule>
    68        <include state="strings"/>
    69      </rule>
    70    </state>
    71    <state name="dqs">
    72      <rule pattern="&#34;">
    73        <token type="LiteralString"/>
    74        <pop depth="1"/>
    75      </rule>
    76      <rule pattern="\\.|\&#39;">
    77        <token type="LiteralString"/>
    78      </rule>
    79      <rule pattern="#\{">
    80        <token type="LiteralStringInterpol"/>
    81        <push state="interpoling_string"/>
    82      </rule>
    83      <rule pattern="#">
    84        <token type="LiteralString"/>
    85      </rule>
    86      <rule>
    87        <include state="strings"/>
    88      </rule>
    89    </state>
    90    <state name="sqs">
    91      <rule pattern="&#39;">
    92        <token type="LiteralString"/>
    93        <pop depth="1"/>
    94      </rule>
    95      <rule pattern="#|\\.|&#34;">
    96        <token type="LiteralString"/>
    97      </rule>
    98      <rule>
    99        <include state="strings"/>
   100      </rule>
   101    </state>
   102    <state name="tdqs">
   103      <rule pattern="&#34;&#34;&#34;">
   104        <token type="LiteralString"/>
   105        <pop depth="1"/>
   106      </rule>
   107      <rule pattern="\\.|\&#39;|&#34;">
   108        <token type="LiteralString"/>
   109      </rule>
   110      <rule pattern="#\{">
   111        <token type="LiteralStringInterpol"/>
   112        <push state="interpoling_string"/>
   113      </rule>
   114      <rule pattern="#">
   115        <token type="LiteralString"/>
   116      </rule>
   117      <rule>
   118        <include state="strings"/>
   119      </rule>
   120    </state>
   121    <state name="root">
   122      <rule>
   123        <include state="commentsandwhitespace"/>
   124      </rule>
   125      <rule pattern="^(?=\s|/)">
   126        <token type="Text"/>
   127        <push state="slashstartsregex"/>
   128      </rule>
   129      <rule pattern="\+\+|~|&amp;&amp;|\band\b|\bor\b|\bis\b|\bisnt\b|\bnot\b|\?|:|\|\||\\(?=\n)|(&lt;&lt;|&gt;&gt;&gt;?|==?(?!&gt;)|!=?|=(?!&gt;)|-(?!&gt;)|[&lt;&gt;+*`%&amp;\|\^/])=?">
   130        <token type="Operator"/>
   131        <push state="slashstartsregex"/>
   132      </rule>
   133      <rule pattern="(?:\([^()]*\))?\s*[=-]&gt;">
   134        <token type="NameFunction"/>
   135        <push state="slashstartsregex"/>
   136      </rule>
   137      <rule pattern="[{(\[;,]">
   138        <token type="Punctuation"/>
   139        <push state="slashstartsregex"/>
   140      </rule>
   141      <rule pattern="[})\].]">
   142        <token type="Punctuation"/>
   143      </rule>
   144      <rule pattern="(?&lt;![.$])(for|own|in|of|while|until|loop|break|return|continue|switch|when|then|if|unless|else|throw|try|catch|finally|new|delete|typeof|instanceof|super|extends|this|class|by)\b">
   145        <token type="Keyword"/>
   146        <push state="slashstartsregex"/>
   147      </rule>
   148      <rule pattern="(?&lt;![.$])(true|false|yes|no|on|off|null|NaN|Infinity|undefined)\b">
   149        <token type="KeywordConstant"/>
   150      </rule>
   151      <rule pattern="(Array|Boolean|Date|Error|Function|Math|netscape|Number|Object|Packages|RegExp|String|sun|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|document|window)\b">
   152        <token type="NameBuiltin"/>
   153      </rule>
   154      <rule pattern="[$a-zA-Z_][\w.:$]*\s*[:=]\s">
   155        <token type="NameVariable"/>
   156        <push state="slashstartsregex"/>
   157      </rule>
   158      <rule pattern="@[$a-zA-Z_][\w.:$]*\s*[:=]\s">
   159        <token type="NameVariableInstance"/>
   160        <push state="slashstartsregex"/>
   161      </rule>
   162      <rule pattern="@">
   163        <token type="NameOther"/>
   164        <push state="slashstartsregex"/>
   165      </rule>
   166      <rule pattern="@?[$a-zA-Z_][\w$]*">
   167        <token type="NameOther"/>
   168      </rule>
   169      <rule pattern="[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?">
   170        <token type="LiteralNumberFloat"/>
   171      </rule>
   172      <rule pattern="0x[0-9a-fA-F]+">
   173        <token type="LiteralNumberHex"/>
   174      </rule>
   175      <rule pattern="[0-9]+">
   176        <token type="LiteralNumberInteger"/>
   177      </rule>
   178      <rule pattern="&#34;&#34;&#34;">
   179        <token type="LiteralString"/>
   180        <push state="tdqs"/>
   181      </rule>
   182      <rule pattern="&#39;&#39;&#39;">
   183        <token type="LiteralString"/>
   184        <push state="tsqs"/>
   185      </rule>
   186      <rule pattern="&#34;">
   187        <token type="LiteralString"/>
   188        <push state="dqs"/>
   189      </rule>
   190      <rule pattern="&#39;">
   191        <token type="LiteralString"/>
   192        <push state="sqs"/>
   193      </rule>
   194    </state>
   195    <state name="interpoling_string">
   196      <rule pattern="\}">
   197        <token type="LiteralStringInterpol"/>
   198        <pop depth="1"/>
   199      </rule>
   200      <rule>
   201        <include state="root"/>
   202      </rule>
   203    </state>
   204    <state name="strings">
   205      <rule pattern="[^#\\\&#39;&#34;]+">
   206        <token type="LiteralString"/>
   207      </rule>
   208    </state>
   209  </rules>
   210</lexer>

View as plain text