diff options
Diffstat (limited to 'kate/data/dosbat.xml')
-rw-r--r-- | kate/data/dosbat.xml | 311 |
1 files changed, 311 insertions, 0 deletions
diff --git a/kate/data/dosbat.xml b/kate/data/dosbat.xml new file mode 100644 index 000000000..c99a11a1b --- /dev/null +++ b/kate/data/dosbat.xml @@ -0,0 +1,311 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE language SYSTEM "language.dtd" +[ + <!ENTITY label "[^\s]+"> + <!ENTITY eos "(?=($|\s))"> <!-- eol or space following --> + <!ENTITY noword "(?![\w$+-])"> <!-- no word, $, + or - following --> + <!ENTITY varname "[A-Za-z_][A-Za-z0-9_]*"> <!-- valid character in a variable name --> + <!ENTITY eop "(?=([\s\\;"%]|$))"> <!-- end of path --> + <!ENTITY pathpart "[^\s\\%;/:\*\?"><\|]"> <!-- valid character in a file name --> +]> +<language name="MS-DOS Batch" version="0.2" kateversion="2.4" section="Scripts" extensions="*.bat" mimetype="application/x-dos" casesensitive="0" author="Matthew Woehlke (mw_triad@users.sourceforge.net)" license="LGPL"> + +<!-- (c) 2006, 2009, 2010 Matthew Woehlke (mw_triad@users.sourceforge.net) + Released under the LGPL --> + + <highlighting> + <list name="builtins"> + <item> assoc </item> + <item> break </item> + <item> call </item> + <item> cd </item> + <item> chdir </item> + <item> cls </item> + <item> color </item> + <item> copy </item> + <item> date </item> + <item> del </item> + <item> dir </item> + <item> endlocal </item> + <item> erase </item> + <item> exit </item> + <item> ftype </item> + <item> md </item> + <item> mkdir </item> + <item> move </item> + <item> path </item> + <item> pause </item> + <item> popd </item> + <item> prompt </item> + <item> pushd </item> + <item> rd </item> + <item> ren </item> + <item> rename </item> + <item> rmdir </item> + <item> setlocal </item> + <item> shift </item> + <item> start </item> + <item> time </item> + <item> title </item> + <item> type </item> + <item> ver </item> + <item> verify </item> + <item> vol </item> + </list> + + <!-- these need special handling --> + <list name="echo"><item> echo </item></list> + <list name="else"><item> else </item></list> + <list name="for"><item> for </item></list> + <list name="in"><item> in </item></list> + <list name="do"><item> do </item></list> + <list name="goto"><item> goto </item></list> + <list name="if"><item> if </item></list> + <list name="not"><item> not </item></list> + <list name="set"><item> set </item></list> + + <list name="commands"> + <!-- the basics --> + <item> at </item> + <item> attrib </item> + <item> break </item> + <item> cacls </item> + <item> chcp </item> + <item> chkdsk </item> + <item> chkntfs </item> + <item> cmd </item> + <item> comp </item> + <item> compact </item> + <item> convert </item> + <item> diskcomp </item> + <item> diskcopy </item> + <item> doskey </item> + <item> fc </item> + <item> find </item> + <item> findstr </item> + <item> format </item> + <item> graftabl </item> + <item> help </item> + <item> label </item> + <item> mode </item> + <item> more </item> + <item> print </item> + <item> recover </item> + <item> replace </item> + <item> sort </item> + <item> subst </item> + <item> tree </item> + <item> xcopy </item> + </list> + + + <contexts> + <context attribute="Normal Text" lineEndContext="#stay" name="Start"> + <!-- general syntactical stuff --> + <RegExpr attribute="Comment" context="Comment" String="^\s*[Rr][Ee][Mm](\s|$)"/> + <keyword attribute="Builtin" context="Command" String="builtins"/> + <keyword attribute="Command" context="Command" String="commands"/> + <DetectChar attribute="Label" context="Label" char=":" firstNonSpace="true"/> + <!-- special built-ins --> + <RegExpr attribute="Builtin" context="#stay" String="\b[Ee][Cc][Hh][Oo]\s+[Oo]([Ff][Ff]|[Nn])\s*$"/> + <keyword attribute="Builtin" context="CmdEcho" String="echo"/> + <keyword attribute="Keyword" context="CmdIf" String="if"/> + <keyword attribute="Keyword" context="CmdFor" String="for"/> + <keyword attribute="Keyword" context="Label" String="goto"/> + <keyword attribute="Builtin" context="CmdSet" String="set"/> + <DetectChar attribute="Keyword" context="#stay" char="@"/> + <!-- other syntaxes --> + <IncludeRules context="FindMost"/> + </context> + + <!-- the following contexts are meant to be included --> + <context attribute="Normal Text" lineEndContext="#pop" name="FindMost"> + <IncludeRules context="FindStrings"/> + <IncludeRules context="FindSubstitutions"/> + <!-- handle command line options --> + <RegExpr attribute="Option" context="#stay" String="[/-][A-Za-z0-9][A-Za-z0-9_]*:?"/> + <!-- handle redirection --> + <RegExpr attribute="Redirection" context="#stay" String="[0-9]*(>>?|<)(&[0-9]+)"/> + <RegExpr attribute="Redirection" context="Path" String="[0-9]*(>>?|<)\s*"/> + <DetectChar attribute="Redirection" context="Start" char="|"/> + <!-- handle paths --> + <RegExpr attribute="Path" context="#stay" String="[.]+&eop;"/> + <RegExpr attribute="Path" context="#stay" String="[A-Za-z][A-Za-z.]*:"/> + <RegExpr attribute="Path" context="#stay" String="&pathpart;+(?=\\)"/> + <RegExpr attribute="Path" context="#stay" String="[.]*\\+&pathpart;*&eop;"/> + </context> + + <context attribute="Normal Text" lineEndContext="#stay" name="FindStrings"> + <DetectChar attribute="String" context="String" char="""/> + </context> + + <context attribute="Normal Text" lineEndContext="#stay" name="FindSubstitutions"> + <Detect2Chars attribute="Escape" context="#stay" char="%" char1="%"/> + <RegExpr attribute="Variable" context="#stay" String="([%!])[^%\s!]+\1"/> + <RegExpr attribute="Variable" context="#stay" String="[%!][a-z0-9]" insensitive="true"/> + </context> + + <!-- basic sub-contexts --> + <context attribute="Comment" lineEndContext="#pop" name="Comment"> + <IncludeRules context="##Alerts"/> + </context> + + <context attribute="String" lineEndContext="#pop" name="String"> + <Detect2Chars attribute="Escape" context="#stay" char="\" char1="""/> + <DetectChar attribute="String" context="#pop" char="""/> + <IncludeRules context="FindSubstitutions"/> + </context> + + <context attribute="Normal Text" lineEndContext="#pop" name="Command"> + <IncludeRules context="FindMost"/> + </context> + + <context attribute="Error" lineEndContext="#pop" name="Label"> + <DetectSpaces attribute="Normal Text" context="#stay"/> + <RegExpr attribute="Label" context="Comment" String="&label;&eos;"/> + </context> + + <context attribute="Path" lineEndContext="#pop" name="Path"> + <IncludeRules context="FindStrings"/> + <IncludeRules context="FindSubstitutions"/> + <AnyChar attribute="Normal Text" context="#pop" String=" 	\%/:*?"><|" lookAhead="true"/> + </context> + + <!-- special sub-contexts --> + <context attribute="Normal Text" lineEndContext="#pop" name="Assign"> + <IncludeRules context="FindMost"/> + </context> + + <context attribute="Error" lineEndContext="#pop" name="CmdSet"> + <DetectSpaces attribute="Normal Text" context="#stay"/> + <RegExpr attribute="Variable" context="#pop" String="&varname;="/> + </context> + + <context attribute="Echoed Text" lineEndContext="#pop" name="CmdEcho"> + <IncludeRules context="FindSubstitutions"/> + <RegExpr attribute="Escape" context="#stay" String="\^."/> + <RegExpr attribute="Redirection" context="#stay" String="[0-9]*(>>?|<)(&[0-9]+)"/> + <RegExpr attribute="Redirection" context="Path" String="[0-9]*(>>?|<)\s*"/> + <DetectChar attribute="Redirection" context="Start" char="|"/> + </context> + + <!-- 'for' sub-contexts --> + <context attribute="Error" lineEndContext="#pop" name="CmdFor"> + <DetectSpaces attribute="Normal Text" context="#stay"/> + <RegExpr attribute="Variable" context="CmdForIn" String="%%[a-z]" insensitive="true"/> + <Detect2Chars attribute="Option" context="#stay" char="/" char1="D"/> + <Detect2Chars attribute="Option" context="CmdForR" char="/" char1="R"/> + <Detect2Chars attribute="Option" context="CmdForL" char="/" char1="L"/> + </context> + + <context attribute="Error" lineEndContext="#pop" name="CmdForIn"> + <DetectSpaces attribute="Normal Text" context="#stay"/> + <keyword attribute="Keyword" context="CmdForList" String="in"/> + </context> + + <context attribute="Error" lineEndContext="#pop" name="CmdForList"> + <DetectSpaces attribute="Normal Text" context="#stay"/> + <DetectChar attribute="Keyword" context="CmdForListBody" char="("/> + </context> + + <context attribute="Normal Text" lineEndContext="#pop" name="CmdForListBody"> + <IncludeRules context="FindStrings"/> + <IncludeRules context="FindSubstitutions"/> + <DetectChar attribute="Keyword" context="CmdForDo" char=")"/> + </context> + + <context attribute="Error" lineEndContext="#pop" name="CmdForDo"> + <DetectSpaces attribute="Normal Text" context="#stay"/> + <keyword attribute="Keyword" context="CmdForCommands" String="do"/> + </context> + + <context attribute="Normal Text" lineEndContext="#pop" name="CmdForCommands"> + <RegExpr attribute="Variable" context="#stay" String="%%(~([fdpnxsatz]|\$&varname;:)*)?[a-z]" insensitive="true"/> + <IncludeRules context="Start"/> + <DetectChar attribute="Keyword" context="CmdForNestedCommands" char="("/> + </context> + + <context attribute="Normal Text" lineEndContext="#stay" name="CmdForNestedCommands"> + <DetectChar attribute="Keyword" context="#pop" char=")"/> + <IncludeRules context="CmdForCommands"/> + </context> + + <context attribute="Error" lineEndContext="#pop" name="CmdForR"> + <DetectSpaces attribute="Normal Text" context="#stay"/> + <RegExpr attribute="Path" context="#stay" String="([a-z][a-z.]*:)?[.]*\\*&pathpart;*&eop;" insensitive="true"/> + <RegExpr attribute="Variable" context="CmdForIn" String="%%[a-z]" insensitive="true"/> + </context> + + <!-- 'for /L' sub-contexts --> + <context attribute="Error" lineEndContext="#pop" name="CmdForL"> + <DetectSpaces attribute="Normal Text" context="#stay"/> + <RegExpr attribute="Variable" context="CmdForLIn" String="%%[a-z]" insensitive="true"/> + </context> + + <context attribute="Error" lineEndContext="#pop" name="CmdForLIn"> + <DetectSpaces attribute="Normal Text" context="#stay"/> + <keyword attribute="Keyword" context="CmdForLRange" String="in"/> + </context> + + <context attribute="Error" lineEndContext="#pop" name="CmdForLRange"> + <DetectSpaces attribute="Normal Text" context="#stay"/> + <DetectChar attribute="Keyword" context="CmdForLStart" char="("/> + </context> + + <context attribute="Error" lineEndContext="#pop" name="CmdForLStart"> + <DetectSpaces attribute="Normal Text" context="#stay"/> + <RegExpr attribute="Number" context="CmdForLStartComma" String="-?[0-9]+"/> + </context> + + <context attribute="Error" lineEndContext="#pop" name="CmdForLStartComma"> + <DetectSpaces attribute="Normal Text" context="#stay"/> + <DetectChar attribute="Keyword" context="CmdForLStep" char=","/> + </context> + + <context attribute="Error" lineEndContext="#pop" name="CmdForLStep"> + <DetectSpaces attribute="Normal Text" context="#stay"/> + <RegExpr attribute="Number" context="CmdForLStepComma" String="-?[0-9]+"/> + </context> + + <context attribute="Error" lineEndContext="#pop" name="CmdForLStepComma"> + <DetectSpaces attribute="Normal Text" context="#stay"/> + <DetectChar attribute="Keyword" context="CmdForLEnd" char=","/> + </context> + + <context attribute="Error" lineEndContext="#pop" name="CmdForLEnd"> + <DetectSpaces attribute="Normal Text" context="#stay"/> + <RegExpr attribute="Number" context="CmdForLEndParen" String="-?[0-9]+"/> + </context> + + <context attribute="Error" lineEndContext="#pop" name="CmdForLEndParen"> + <DetectSpaces attribute="Normal Text" context="#stay"/> + <DetectChar attribute="Keyword" context="CmdForDo" char=")"/> + </context> + + </contexts> + + <itemDatas> + <itemData name="Normal Text" defStyleNum="dsNormal"/> + <itemData name="Comment" defStyleNum="dsComment"/> + <itemData name="Keyword" defStyleNum="dsKeyword"/> + <itemData name="Number" defStyleNum="dsDecVal"/> + <itemData name="Label" defStyleNum="dsOthers"/> + <itemData name="Builtin" defStyleNum="dsKeyword"/> + <itemData name="Command" defStyleNum="dsKeyword"/> + <itemData name="Redirection" defStyleNum="dsKeyword"/> + <itemData name="String" defStyleNum="dsString"/> + <itemData name="Escape" defStyleNum="dsChar"/> + <itemData name="Echoed Text" defStyleNum="dsNormal"/> + <itemData name="Variable" defStyleNum="dsOthers"/> + <itemData name="Path" defStyleNum="dsNormal"/> + <itemData name="Option" defStyleNum="dsNormal"/> + <itemData name="Error" defStyleNum="dsError"/> + </itemDatas> + </highlighting> + <general> + <comments> + <comment name="singleLine" start="rem "/> + </comments> + <keywords casesensitive="0" weakDeliminator="@" additionalDeliminator="@"/> + </general> +</language> |