<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language
[
<!ENTITY funcname "[A-Za-z_:][A-Za-z0-9_:#%@-]*">
<!ENTITY varname "[A-Za-z_][A-Za-z0-9_]*">
<!ENTITY word "[|&;()<>\s]+">
<!ENTITY eos "(?=($|\s))">
<!ENTITY noword "(?![\w$+-])">
<!ENTITY pathpart "([\w_@.%*?+-]|\\ )">
<!ENTITY tab "	">
]>
<language name="Tcsh" version="10" kateversion="5.53" section="Scripts" extensions="*.csh;*.tcsh;csh.cshrc;csh.login;.tcshrc;.cshrc;.login" mimetype="application/x-csh" casesensitive="1" author="Matthew Woehlke (mw_triad@users.sourceforge.net)" license="LGPL">
<highlighting>
<list name="keywords">
<item>function</item>
<item>in</item>
<item>.</item>
</list>
<list name="builtins">
<item>:</item>
<item>alias</item>
<item>alloc</item>
<item>bg</item>
<item>bindkey</item>
<item>break</item>
<item>builtins</item>
<item>bye</item>
<item>cd</item>
<item>chdir</item>
<item>complete</item>
<item>continue</item>
<item>dirs</item>
<item>echo</item>
<item>echotc</item>
<item>eval</item>
<item>exec</item>
<item>exit</item>
<item>fg</item>
<item>filetest</item>
<item>glob</item>
<item>hashstat</item>
<item>history</item>
<item>hup</item>
<item>inlib</item>
<item>jobs</item>
<item>kill</item>
<item>limit</item>
<item>log</item>
<item>login</item>
<item>logout</item>
<item>ls-F</item>
<item>migrate</item>
<item>newgrp</item>
<item>nice</item>
<item>nohup</item>
<item>notify</item>
<item>onintr</item>
<item>popd</item>
<item>printenv</item>
<item>pushd</item>
<item>rehash</item>
<item>repeat</item>
<item>sched</item>
<item>settc</item>
<item>setty</item>
<item>shift</item>
<item>source</item>
<item>stop</item>
<item>suspend</item>
<item>telltc</item>
<item>time</item>
<item>umask</item>
<item>unalias</item>
<item>uncomplete</item>
<item>unhash</item>
<item>unlimit</item>
<item>ver</item>
<item>wait</item>
<item>watchlog</item>
<item>where</item>
<item>which</item>
</list>
<list name="builtins_var">
<item>unset</item>
<item>unsetenv</item>
</list>
<list name="unixcommands">
<include>unixcommands##Bash</include>
<item>command</item>
<item>pwd</item>
<item>printf</item>
<item>test</item>
</list>
<contexts>
<context attribute="Normal Text" lineEndContext="#stay" name="Start">
<IncludeRules context="FindAll" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="FindAll">
<IncludeRules context="FindComments" />
<IncludeRules context="FindCommands" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindSubstitutions" />
<IncludeRules context="FindOthers" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="FindMost">
<IncludeRules context="FindComments" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindSubstitutions" />
<IncludeRules context="FindOthers" />
</context>
<context attribute="Normal Text" lineEndContext="#pop" name="FindComments">
<DetectChar attribute="Comment" context="Comment" char="#" firstNonSpace="true"/>
<RegExpr attribute="Normal Text" context="Comment" String="[\s;](?=#)" />
</context>
<context attribute="Comment" lineEndContext="#pop" name="Comment">
<DetectSpaces />
<IncludeRules context="##Comments" />
</context>
<context attribute="Normal Text" lineEndContext="#pop" name="FindCommentsBackq">
<DetectChar attribute="Comment" context="CommentBackq" char="#" firstNonSpace="true"/>
<RegExpr attribute="Normal Text" context="CommentBackq" String="[\s;](?=#)" />
</context>
<context attribute="Comment" lineEndContext="#pop" name="CommentBackq">
<RegExpr attribute="Comment" context="#pop" String="[^`](?=`)" />
<IncludeRules context="##Comments" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="FindCommands">
<Detect2Chars attribute="Keyword" context="ExprDblParen" char="(" char1="(" beginRegion="expression" />
<RegExpr attribute="Builtin" context="ExprBracket" String="(^\[|\s\[)&eos;" beginRegion="expression" column="0"/>
<RegExpr attribute="Keyword" context="Group" String="\{&eos;" beginRegion="group" />
<DetectChar attribute="Keyword" context="SubShell" char="(" beginRegion="subshell" />
<RegExpr attribute="Control Flow" context="If" String="\bif&noword;" />
<RegExpr attribute="Control Flow" context="ElseIf" String="\belse\s+if&noword;" />
<RegExpr attribute="Control Flow" context="#stay" String="\belse&noword;" />
<RegExpr attribute="Control Flow" context="#stay" String="\bendif&noword;" endRegion="if" />
<RegExpr attribute="Control Flow" context="Switch" String="\bswitch&noword;" beginRegion="switch" />
<RegExpr attribute="Control Flow" context="#stay" String="\b(foreach|while)&noword;" beginRegion="loop" />
<RegExpr attribute="Control Flow" context="#stay" String="\bend&noword;" endRegion="loop" />
<RegExpr attribute="Option" context="#stay" String="-[A-Za-z0-9][A-Za-z0-9_]*|--[a-z][A-Za-z0-9_-]*" />
<RegExpr attribute="Keyword" context="#stay" String="\b@\s" />
<WordDetect attribute="Keyword" context="#stay" String="set" />
<WordDetect attribute="Keyword" context="CmdSetEnv" String="setenv" />
<StringDetect attribute="Function" context="#stay" String=":()" />
<WordDetect attribute="Keyword" context="FunctionDef" String="function" />
<keyword attribute="Keyword" context="#stay" String="keywords" />
<keyword attribute="Builtin" context="#stay" String="builtins" />
<keyword attribute="Command" context="#stay" String="unixcommands" />
<keyword attribute="Builtin" context="VarName" String="builtins_var" />
<RegExpr attribute="Redirection" context="#stay" String="(<<?|>>?&?!?)" />
<RegExpr attribute="Control" context="#stay" String="([|&])\1?" />
<RegExpr attribute="Function" context="#stay" String="&funcname;\s*\(\)" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="FindOthers">
<RegExpr attribute="Escape" context="#stay" String="\\[;"\\'$`{}()|&<>* ]" />
<RegExpr attribute="Path" context="#stay" String="&pathpart;*(?=/)|~\w*|/&pathpart;*(?=([\s/):;$`'"]|$))" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="FindStrings">
<DetectChar attribute="String SingleQ" context="StringSQ" char="'" />
<DetectChar attribute="String DoubleQ" context="StringDQ" char=""" />
<Detect2Chars attribute="String SingleQ" context="StringEsc" char="$" char1="'" />
<Detect2Chars attribute="String Transl." context="StringDQ" char="$" char1=""" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="FindSubstitutions">
<RegExpr attribute="Variable" context="Subscript" String="\$&varname;\[" />
<RegExpr attribute="Variable" context="#stay" String="\$(&varname;)|\$[*@#?$!_0-9-]|\$\{[*@#?$!_0-9-]\}|\$\{#&varname;\}|\$\{!&varname;\*?\}" />
<RegExpr attribute="Variable" context="VarBrace" String="\$\{&varname;|\$\{[*@#?$!_0-9-](?=[:#%/])" />
<StringDetect attribute="Variable" context="ExprDblParenSubst" String="$((" beginRegion="expression" />
<DetectChar attribute="Backquote" context="SubstBackq" char="`" />
<RegExpr attribute="Escape" context="#stay" String="\\[`$\\]" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="FindTests">
<RegExpr attribute="Expression" context="#stay" String="-[rwxXeozsfdlbcpSugktRLDIFNZ](?=\s)|-[AMCUG]:?(?=\s)|-P[0-7]{,3}:?(?=\s)|[=!][~=]|[*><!~]"/>
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="ExprDblParen">
<Detect2Chars attribute="Keyword" context="#pop" char=")" char1=")" endRegion="expression" />
<DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />
<IncludeRules context="FindMost" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="ExprDblParenSubst">
<Detect2Chars attribute="Variable" context="#pop" char=")" char1=")" endRegion="expression" />
<DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />
<IncludeRules context="FindMost" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="ExprSubParen">
<DetectChar attribute="Normal Text" context="#pop" char=")" />
<DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />
<IncludeRules context="FindMost" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="ExprBracket">
<RegExpr attribute="Builtin" context="#pop" String="(\s\]|^\])(?=($|[\s;|&]))" endRegion="expression" />
<DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />
<IncludeRules context="FindTests" />
<IncludeRules context="FindMost" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="Group">
<DetectChar attribute="Keyword" context="#pop" char="}" endRegion="group" />
<IncludeRules context="FindAll" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="SubShell">
<DetectChar attribute="Keyword" context="#pop" char=")" endRegion="subshell" />
<IncludeRules context="FindAll" />
</context>
<context attribute="Normal Text" lineEndContext="#pop" name="Assign" fallthrough="true" fallthroughContext="#pop">
<DetectChar attribute="Variable" context="AssignArray" char="(" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindSubstitutions" />
<IncludeRules context="FindOthers" />
<RegExpr attribute="Normal Text" context="#stay" String="[\w:,+_./-]+" />
</context>
<context attribute="Normal Text" lineEndContext="#pop" name="AssignArray">
<DetectChar attribute="Variable" context="#pop" char=")" />
<DetectChar attribute="Variable" context="Subscript" char="[" />
<DetectChar attribute="Variable" context="Assign" char="=" />
<IncludeRules context="FindMost" />
</context>
<context attribute="Variable" lineEndContext="#stay" name="Subscript">
<DetectChar attribute="Variable" context="#pop" char="]" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindSubstitutions" />
<IncludeRules context="FindOthers" />
</context>
<context attribute="Function" lineEndContext="#pop" name="FunctionDef" fallthrough="true" fallthroughContext="#pop">
<RegExpr attribute="Function" context="#pop" String="\s+&funcname;(\s*\(\))?" />
</context>
<context attribute="Normal Text" lineEndContext="#pop" name="CmdSetEnv" fallthrough="true" fallthroughContext="#pop">
<RegExpr attribute="Variable" context="#pop" String="\b&varname;" />
<AnyChar attribute="Variable" context="Assign" String="&tab; " />
<IncludeRules context="FindMost" />
</context>
<context attribute="Normal Text" lineEndContext="#pop" name="VarName" fallthrough="true" fallthroughContext="#pop">
<RegExpr attribute="Option" context="#stay" String="-[A-Za-z0-9]+|--[a-z][A-Za-z0-9_-]*" />
<RegExpr attribute="Variable" context="#stay" String="\b&varname;" />
<DetectChar attribute="Variable" context="Subscript" char="[" />
<DetectChar attribute="Variable" context="Assign" char="=" />
<IncludeRules context="FindMost" />
<RegExpr attribute="Normal Text" context="#stay" String="[^]})|;`&><]" />
</context>
<context attribute="String SingleQ" lineEndContext="#stay" name="StringSQ">
<DetectChar attribute="String SingleQ" context="#pop" char="'" />
</context>
<context attribute="String DoubleQ" lineEndContext="#stay" name="StringDQ">
<DetectChar attribute="String DoubleQ" context="#pop" char=""" />
<RegExpr attribute="String Escape" context="#stay" String="\\[`"\\$\n]" />
<IncludeRules context="FindSubstitutions" />
</context>
<context attribute="String SingleQ" lineEndContext="#stay" name="StringEsc">
<DetectChar attribute="String SingleQ" context="#pop" char="'" />
<RegExpr attribute="String Escape" context="#stay" String="\\[abefnrtv\\']|\\([0-7]{1,3}|x[A-Fa-f0-9]{1,2}|c.)" />
</context>
<context attribute="Variable" lineEndContext="#stay" name="VarBrace">
<DetectChar attribute="Variable" context="#pop" char="}" />
<DetectChar attribute="Variable" context="Subscript" char="[" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindSubstitutions" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="SubstBackq">
<DetectChar attribute="Backquote" context="#pop" char="`" />
<IncludeRules context="FindCommentsBackq" />
<IncludeRules context="FindCommands" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindSubstitutions" />
<IncludeRules context="FindOthers" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="Switch">
<RegExpr attribute="Keyword" context="SwitchCase" String="\scase\b" />
<RegExpr attribute="Keyword" context="SwitchDefault" String="\sdefault\b" />
<RegExpr attribute="Keyword" context="#pop" String="\bendsw(?=$|[\s;)])" endRegion="switch" />
<IncludeRules context="FindMost" />
</context>
<context attribute="Normal Text" lineEndContext="#pop" name="If" fallthrough="true" fallthroughContext="#pop">
<DetectSpaces/>
<DetectChar attribute="Keyword" context="ArithmeticCondition" char="(" beginRegion="cond" />
<DetectChar attribute="Variable" context="Subscript" char="[" />
<StringDetect attribute="Control Flow" context="#pop" String="then" beginRegion="if" />
</context>
<context attribute="Normal Text" lineEndContext="#pop" name="ElseIf" fallthrough="true" fallthroughContext="#pop">
<DetectSpaces/>
<DetectChar attribute="Keyword" context="ArithmeticCondition" char="(" beginRegion="cond" />
<DetectChar attribute="Variable" context="Subscript" char="[" />
<StringDetect attribute="Control Flow" context="#pop" String="then" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="ArithmeticCondition">
<DetectChar attribute="Keyword" context="#pop" char=")" endRegion="cond" />
<DetectChar attribute="Keyword" context="ArithmeticCondition" char="(" beginRegion="cond" />
<RegExpr attribute="Expression" context="#stay" String="[=!]~|[=!><]="/>
<AnyChar attribute="Expression" context="#stay" String="|^&><+-*/%!~"/>
<IncludeRules context="FindComments" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindSubstitutions" />
<IncludeRules context="FindOthers" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="SwitchCase">
<DetectChar attribute="Keyword" context="SwitchExpr" char=":" beginRegion="switchexpr" />
<IncludeRules context="FindMost" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="SwitchDefault">
<DetectChar attribute="Keyword" context="SwitchExpr" char=":" beginRegion="switchexpr" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="SwitchExpr">
<RegExpr attribute="Keyword" context="#pop#pop" String="\sbreaksw\b" endRegion="switchexpr" />
<RegExpr attribute="Keyword" context="#pop#pop" String="\scase\b" endRegion="switchexpr" lookAhead="true" />
<IncludeRules context="FindAll" />
</context>
</contexts>
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal" />
<itemData name="Comment" defStyleNum="dsComment" />
<itemData name="Control Flow" defStyleNum="dsControlFlow" spellChecking="false" />
<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false" />
<itemData name="Control" defStyleNum="dsKeyword" spellChecking="false" />
<itemData name="Builtin" defStyleNum="dsKeyword" spellChecking="false" />
<itemData name="Command" defStyleNum="dsKeyword" spellChecking="false" />
<itemData name="Redirection" defStyleNum="dsKeyword" spellChecking="false" />
<itemData name="Escape" defStyleNum="dsDataType" spellChecking="false" />
<itemData name="String SingleQ" defStyleNum="dsString" />
<itemData name="String DoubleQ" defStyleNum="dsString" />
<itemData name="Backquote" defStyleNum="dsKeyword" spellChecking="false" />
<itemData name="String Transl." defStyleNum="dsString" spellChecking="false" />
<itemData name="String Escape" defStyleNum="dsDataType" spellChecking="false" />
<itemData name="Variable" defStyleNum="dsOthers" spellChecking="false" />
<itemData name="Expression" defStyleNum="dsOthers" spellChecking="false" />
<itemData name="Function" defStyleNum="dsFunction" spellChecking="false" />
<itemData name="Path" defStyleNum="dsNormal" spellChecking="false" />
<itemData name="Option" defStyleNum="dsNormal" spellChecking="false" />
</itemDatas>
</highlighting>
<general>
<comments>
<comment name="singleLine" start="#"/>
</comments>
<keywords casesensitive="1" weakDeliminator="^%#[]$._{}:-" additionalDeliminator="`"/>
</general>
</language>