...

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

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

     1<lexer>
     2  <config>
     3    <name>Groovy</name>
     4    <alias>groovy</alias>
     5    <filename>*.groovy</filename>
     6    <filename>*.gradle</filename>
     7    <mime_type>text/x-groovy</mime_type>
     8    <dot_all>true</dot_all>
     9  </config>
    10  <rules>
    11    <state name="root">
    12      <rule pattern="#!(.*?)$">
    13        <token type="CommentPreproc"/>
    14        <push state="base"/>
    15      </rule>
    16      <rule>
    17        <push state="base"/>
    18      </rule>
    19    </state>
    20    <state name="base">
    21      <rule pattern="^(\s*(?:[a-zA-Z_][\w.\[\]]*\s+)+?)([a-zA-Z_]\w*)(\s*)(\()">
    22        <bygroups>
    23          <usingself state="root"/>
    24          <token type="NameFunction"/>
    25          <token type="Text"/>
    26          <token type="Operator"/>
    27        </bygroups>
    28      </rule>
    29      <rule pattern="[^\S\n]+">
    30        <token type="Text"/>
    31      </rule>
    32      <rule pattern="//.*?\n">
    33        <token type="CommentSingle"/>
    34      </rule>
    35      <rule pattern="/\*.*?\*/">
    36        <token type="CommentMultiline"/>
    37      </rule>
    38      <rule pattern="@[a-zA-Z_][\w.]*">
    39        <token type="NameDecorator"/>
    40      </rule>
    41      <rule pattern="(as|assert|break|case|catch|continue|default|do|else|finally|for|if|in|goto|instanceof|new|return|switch|this|throw|try|while|in|as)\b">
    42        <token type="Keyword"/>
    43      </rule>
    44      <rule pattern="(abstract|const|enum|extends|final|implements|native|private|protected|public|static|strictfp|super|synchronized|throws|transient|volatile)\b">
    45        <token type="KeywordDeclaration"/>
    46      </rule>
    47      <rule pattern="(def|boolean|byte|char|double|float|int|long|short|void)\b">
    48        <token type="KeywordType"/>
    49      </rule>
    50      <rule pattern="(package)(\s+)">
    51        <bygroups>
    52          <token type="KeywordNamespace"/>
    53          <token type="Text"/>
    54        </bygroups>
    55      </rule>
    56      <rule pattern="(true|false|null)\b">
    57        <token type="KeywordConstant"/>
    58      </rule>
    59      <rule pattern="(class|interface|record)(\s+)">
    60        <bygroups>
    61          <token type="KeywordDeclaration"/>
    62          <token type="Text"/>
    63        </bygroups>
    64        <push state="class"/>
    65      </rule>
    66      <rule pattern="(import)(\s+)">
    67        <bygroups>
    68          <token type="KeywordNamespace"/>
    69          <token type="Text"/>
    70        </bygroups>
    71        <push state="import"/>
    72      </rule>
    73      <rule pattern="&#34;&#34;&#34;.*?&#34;&#34;&#34;">
    74        <token type="LiteralStringDouble"/>
    75      </rule>
    76      <rule pattern="&#39;&#39;&#39;.*?&#39;&#39;&#39;">
    77        <token type="LiteralStringSingle"/>
    78      </rule>
    79      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
    80        <token type="LiteralStringDouble"/>
    81      </rule>
    82      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
    83        <token type="LiteralStringSingle"/>
    84      </rule>
    85      <rule pattern="\$/((?!/\$).)*/\$">
    86        <token type="LiteralString"/>
    87      </rule>
    88      <rule pattern="/(\\\\|\\&#34;|[^/])*/">
    89        <token type="LiteralString"/>
    90      </rule>
    91      <rule pattern="&#39;\\.&#39;|&#39;[^\\]&#39;|&#39;\\u[0-9a-fA-F]{4}&#39;">
    92        <token type="LiteralStringChar"/>
    93      </rule>
    94      <rule pattern="(\.)([a-zA-Z_]\w*)">
    95        <bygroups>
    96          <token type="Operator"/>
    97          <token type="NameAttribute"/>
    98        </bygroups>
    99      </rule>
   100      <rule pattern="[a-zA-Z_]\w*:">
   101        <token type="NameLabel"/>
   102      </rule>
   103      <rule pattern="[a-zA-Z_$]\w*">
   104        <token type="Name"/>
   105      </rule>
   106      <rule pattern="[~^*!%&amp;\[\](){}&lt;&gt;|+=:;,./?-]">
   107        <token type="Operator"/>
   108      </rule>
   109      <rule pattern="[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?">
   110        <token type="LiteralNumberFloat"/>
   111      </rule>
   112      <rule pattern="0x[0-9a-fA-F]+">
   113        <token type="LiteralNumberHex"/>
   114      </rule>
   115      <rule pattern="[0-9]+L?">
   116        <token type="LiteralNumberInteger"/>
   117      </rule>
   118      <rule pattern="\n">
   119        <token type="Text"/>
   120      </rule>
   121    </state>
   122    <state name="class">
   123      <rule pattern="[a-zA-Z_]\w*">
   124        <token type="NameClass"/>
   125        <pop depth="1"/>
   126      </rule>
   127    </state>
   128    <state name="import">
   129      <rule pattern="[\w.]+\*?">
   130        <token type="NameNamespace"/>
   131        <pop depth="1"/>
   132      </rule>
   133    </state>
   134  </rules>
   135</lexer>

View as plain text