...

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

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

     1<lexer>
     2  <config>
     3    <name>Tcl</name>
     4    <alias>tcl</alias>
     5    <filename>*.tcl</filename>
     6    <filename>*.rvt</filename>
     7    <mime_type>text/x-tcl</mime_type>
     8    <mime_type>text/x-script.tcl</mime_type>
     9    <mime_type>application/x-tcl</mime_type>
    10  </config>
    11  <rules>
    12    <state name="command-in-bracket">
    13      <rule pattern="\b(namespace|continue|variable|uplevel|foreach|return|update|elseif|global|rename|switch|upvar|error|vwait|catch|break|unset|array|apply|trace|after|while|then|else|expr|eval|proc|for|set|if)\b">
    14        <token type="Keyword"/>
    15        <push state="params-in-bracket"/>
    16      </rule>
    17      <rule pattern="\b(platform::shell|pkg::create|pkg_mkIndex|fconfigure|re_syntax|fileevent|platform|fblocked|lreverse|mathfunc|encoding|registry|lreplace|history|bgerror|llength|lsearch|linsert|lassign|lappend|refchan|unknown|package|lrepeat|msgcat|mathop|format|interp|lrange|string|source|lindex|socket|concat|regsub|regexp|loadTk|memory|binary|append|unload|subst|split|lsort|clock|close|flush|fcopy|chan|glob|time|gets|http|dict|file|puts|tell|join|read|exit|exec|open|list|scan|seek|incr|info|lset|load|dde|pwd|pid|eof|tm|cd)\b">
    18        <token type="NameBuiltin"/>
    19        <push state="params-in-bracket"/>
    20      </rule>
    21      <rule pattern="([\w.-]+)">
    22        <token type="NameVariable"/>
    23        <push state="params-in-bracket"/>
    24      </rule>
    25      <rule pattern="#">
    26        <token type="Comment"/>
    27        <push state="comment"/>
    28      </rule>
    29    </state>
    30    <state name="command-in-paren">
    31      <rule pattern="\b(namespace|continue|variable|uplevel|foreach|return|update|elseif|global|rename|switch|upvar|error|vwait|catch|break|unset|array|apply|trace|after|while|then|else|expr|eval|proc|for|set|if)\b">
    32        <token type="Keyword"/>
    33        <push state="params-in-paren"/>
    34      </rule>
    35      <rule pattern="\b(platform::shell|pkg::create|pkg_mkIndex|fconfigure|re_syntax|fileevent|platform|fblocked|lreverse|mathfunc|encoding|registry|lreplace|history|bgerror|llength|lsearch|linsert|lassign|lappend|refchan|unknown|package|lrepeat|msgcat|mathop|format|interp|lrange|string|source|lindex|socket|concat|regsub|regexp|loadTk|memory|binary|append|unload|subst|split|lsort|clock|close|flush|fcopy|chan|glob|time|gets|http|dict|file|puts|tell|join|read|exit|exec|open|list|scan|seek|incr|info|lset|load|dde|pwd|pid|eof|tm|cd)\b">
    36        <token type="NameBuiltin"/>
    37        <push state="params-in-paren"/>
    38      </rule>
    39      <rule pattern="([\w.-]+)">
    40        <token type="NameVariable"/>
    41        <push state="params-in-paren"/>
    42      </rule>
    43      <rule pattern="#">
    44        <token type="Comment"/>
    45        <push state="comment"/>
    46      </rule>
    47    </state>
    48    <state name="command-in-brace">
    49      <rule pattern="\b(namespace|continue|variable|uplevel|foreach|return|update|elseif|global|rename|switch|upvar|error|vwait|catch|break|unset|array|apply|trace|after|while|then|else|expr|eval|proc|for|set|if)\b">
    50        <token type="Keyword"/>
    51        <push state="params-in-brace"/>
    52      </rule>
    53      <rule pattern="\b(platform::shell|pkg::create|pkg_mkIndex|fconfigure|re_syntax|fileevent|platform|fblocked|lreverse|mathfunc|encoding|registry|lreplace|history|bgerror|llength|lsearch|linsert|lassign|lappend|refchan|unknown|package|lrepeat|msgcat|mathop|format|interp|lrange|string|source|lindex|socket|concat|regsub|regexp|loadTk|memory|binary|append|unload|subst|split|lsort|clock|close|flush|fcopy|chan|glob|time|gets|http|dict|file|puts|tell|join|read|exit|exec|open|list|scan|seek|incr|info|lset|load|dde|pwd|pid|eof|tm|cd)\b">
    54        <token type="NameBuiltin"/>
    55        <push state="params-in-brace"/>
    56      </rule>
    57      <rule pattern="([\w.-]+)">
    58        <token type="NameVariable"/>
    59        <push state="params-in-brace"/>
    60      </rule>
    61      <rule pattern="#">
    62        <token type="Comment"/>
    63        <push state="comment"/>
    64      </rule>
    65    </state>
    66    <state name="basic">
    67      <rule pattern="\(">
    68        <token type="Keyword"/>
    69        <push state="paren"/>
    70      </rule>
    71      <rule pattern="\[">
    72        <token type="Keyword"/>
    73        <push state="bracket"/>
    74      </rule>
    75      <rule pattern="\{">
    76        <token type="Keyword"/>
    77        <push state="brace"/>
    78      </rule>
    79      <rule pattern="&#34;">
    80        <token type="LiteralStringDouble"/>
    81        <push state="string"/>
    82      </rule>
    83      <rule pattern="(eq|ne|in|ni)\b">
    84        <token type="OperatorWord"/>
    85      </rule>
    86      <rule pattern="!=|==|&lt;&lt;|&gt;&gt;|&lt;=|&gt;=|&amp;&amp;|\|\||\*\*|[-+~!*/%&lt;&gt;&amp;^|?:]">
    87        <token type="Operator"/>
    88      </rule>
    89    </state>
    90    <state name="params-in-bracket">
    91      <rule pattern="\]">
    92        <token type="Keyword"/>
    93        <push state="#pop" state="#pop"/>
    94      </rule>
    95      <rule>
    96        <include state="params"/>
    97      </rule>
    98    </state>
    99    <state name="data">
   100      <rule pattern="\s+">
   101        <token type="Text"/>
   102      </rule>
   103      <rule pattern="0x[a-fA-F0-9]+">
   104        <token type="LiteralNumberHex"/>
   105      </rule>
   106      <rule pattern="0[0-7]+">
   107        <token type="LiteralNumberOct"/>
   108      </rule>
   109      <rule pattern="\d+\.\d+">
   110        <token type="LiteralNumberFloat"/>
   111      </rule>
   112      <rule pattern="\d+">
   113        <token type="LiteralNumberInteger"/>
   114      </rule>
   115      <rule pattern="\$([\w.:-]+)">
   116        <token type="NameVariable"/>
   117      </rule>
   118      <rule pattern="([\w.:-]+)">
   119        <token type="Text"/>
   120      </rule>
   121    </state>
   122    <state name="command">
   123      <rule pattern="\b(namespace|continue|variable|uplevel|foreach|return|update|elseif|global|rename|switch|upvar|error|vwait|catch|break|unset|array|apply|trace|after|while|then|else|expr|eval|proc|for|set|if)\b">
   124        <token type="Keyword"/>
   125        <push state="params"/>
   126      </rule>
   127      <rule pattern="\b(platform::shell|pkg::create|pkg_mkIndex|fconfigure|re_syntax|fileevent|platform|fblocked|lreverse|mathfunc|encoding|registry|lreplace|history|bgerror|llength|lsearch|linsert|lassign|lappend|refchan|unknown|package|lrepeat|msgcat|mathop|format|interp|lrange|string|source|lindex|socket|concat|regsub|regexp|loadTk|memory|binary|append|unload|subst|split|lsort|clock|close|flush|fcopy|chan|glob|time|gets|http|dict|file|puts|tell|join|read|exit|exec|open|list|scan|seek|incr|info|lset|load|dde|pwd|pid|eof|tm|cd)\b">
   128        <token type="NameBuiltin"/>
   129        <push state="params"/>
   130      </rule>
   131      <rule pattern="([\w.-]+)">
   132        <token type="NameVariable"/>
   133        <push state="params"/>
   134      </rule>
   135      <rule pattern="#">
   136        <token type="Comment"/>
   137        <push state="comment"/>
   138      </rule>
   139    </state>
   140    <state name="params-in-brace">
   141      <rule pattern="\}">
   142        <token type="Keyword"/>
   143        <push state="#pop" state="#pop"/>
   144      </rule>
   145      <rule>
   146        <include state="params"/>
   147      </rule>
   148    </state>
   149    <state name="string-square">
   150      <rule pattern="\[">
   151        <token type="LiteralStringDouble"/>
   152        <push state="string-square"/>
   153      </rule>
   154      <rule pattern="(?s)(\\\\|\\[0-7]+|\\.|\\\n|[^\]\\])">
   155        <token type="LiteralStringDouble"/>
   156      </rule>
   157      <rule pattern="\]">
   158        <token type="LiteralStringDouble"/>
   159        <pop depth="1"/>
   160      </rule>
   161    </state>
   162    <state name="bracket">
   163      <rule pattern="\]">
   164        <token type="Keyword"/>
   165        <pop depth="1"/>
   166      </rule>
   167      <rule>
   168        <include state="command-in-bracket"/>
   169      </rule>
   170      <rule>
   171        <include state="basic"/>
   172      </rule>
   173      <rule>
   174        <include state="data"/>
   175      </rule>
   176    </state>
   177    <state name="params-in-paren">
   178      <rule pattern="\)">
   179        <token type="Keyword"/>
   180        <push state="#pop" state="#pop"/>
   181      </rule>
   182      <rule>
   183        <include state="params"/>
   184      </rule>
   185    </state>
   186    <state name="paren">
   187      <rule pattern="\)">
   188        <token type="Keyword"/>
   189        <pop depth="1"/>
   190      </rule>
   191      <rule>
   192        <include state="command-in-paren"/>
   193      </rule>
   194      <rule>
   195        <include state="basic"/>
   196      </rule>
   197      <rule>
   198        <include state="data"/>
   199      </rule>
   200    </state>
   201    <state name="comment">
   202      <rule pattern=".*[^\\]\n">
   203        <token type="Comment"/>
   204        <pop depth="1"/>
   205      </rule>
   206      <rule pattern=".*\\\n">
   207        <token type="Comment"/>
   208      </rule>
   209    </state>
   210    <state name="root">
   211      <rule>
   212        <include state="command"/>
   213      </rule>
   214      <rule>
   215        <include state="basic"/>
   216      </rule>
   217      <rule>
   218        <include state="data"/>
   219      </rule>
   220      <rule pattern="\}">
   221        <token type="Keyword"/>
   222      </rule>
   223    </state>
   224    <state name="brace">
   225      <rule pattern="\}">
   226        <token type="Keyword"/>
   227        <pop depth="1"/>
   228      </rule>
   229      <rule>
   230        <include state="command-in-brace"/>
   231      </rule>
   232      <rule>
   233        <include state="basic"/>
   234      </rule>
   235      <rule>
   236        <include state="data"/>
   237      </rule>
   238    </state>
   239    <state name="params">
   240      <rule pattern=";">
   241        <token type="Keyword"/>
   242        <pop depth="1"/>
   243      </rule>
   244      <rule pattern="\n">
   245        <token type="Text"/>
   246        <pop depth="1"/>
   247      </rule>
   248      <rule pattern="(else|elseif|then)\b">
   249        <token type="Keyword"/>
   250      </rule>
   251      <rule>
   252        <include state="basic"/>
   253      </rule>
   254      <rule>
   255        <include state="data"/>
   256      </rule>
   257    </state>
   258    <state name="string">
   259      <rule pattern="\[">
   260        <token type="LiteralStringDouble"/>
   261        <push state="string-square"/>
   262      </rule>
   263      <rule pattern="(?s)(\\\\|\\[0-7]+|\\.|[^&#34;\\])">
   264        <token type="LiteralStringDouble"/>
   265      </rule>
   266      <rule pattern="&#34;">
   267        <token type="LiteralStringDouble"/>
   268        <pop depth="1"/>
   269      </rule>
   270    </state>
   271  </rules>
   272</lexer>

View as plain text