summaryrefslogtreecommitdiffstats
path: root/kate/data/curry.xml
diff options
context:
space:
mode:
Diffstat (limited to 'kate/data/curry.xml')
-rw-r--r--kate/data/curry.xml364
1 files changed, 364 insertions, 0 deletions
diff --git a/kate/data/curry.xml b/kate/data/curry.xml
new file mode 100644
index 000000000..07e6dd35c
--- /dev/null
+++ b/kate/data/curry.xml
@@ -0,0 +1,364 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+ <!-- qualification of entities -->
+ <!ENTITY qualify "([A-Z][a-zA-Z0-9_']*\.)*">
+ <!-- identifier -->
+ <!ENTITY ident "[a-z][a-zA-Z0-9_']*">
+ <!-- Type -->
+ <!ENTITY type "[A-Z][a-zA-Z0-9_']*">
+ <!-- infix operator characters -->
+ <!ENTITY infixchar "~!@#\$&#37;\^&amp;\*\+\-=&lt;&gt;\?\./\|&backslash;:">
+ <!-- identifier in prefix notation, e.g.: id, ($) -->
+ <!ENTITY prefixIdent "(&ident;|\([&infixchar;]+\))">
+
+ <!-- Characters allowed in character escape sequence, e.g., \n -->
+ <!ENTITY escSeqChar "abfnrtv\&quot;'" >
+ <!-- Ascii escape sequence, e.g., \NUL -->
+ <!ENTITY escSeqAscii "NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL" >
+ <!-- Control escape sequence, e.g., \^X -->
+ <!ENTITY escSeqCntrl "\^[A-Z@\[&backslash;\]\^_]" >
+
+ <!-- octal number -->
+ <!ENTITY octal "[0-7]+" >
+ <!-- decimal number -->
+ <!ENTITY decimal "[0-9]+" >
+ <!-- hexadecimal number -->
+ <!ENTITY hexadecimal "[0-9a-fA-F]+" >
+ <!-- a backslash, escaped for use in regular expressions -->
+ <!ENTITY backslash "\\" >
+ <!-- dashes introducing a currydoc comment -->
+ <!ENTITY currydoc "---" >
+]>
+<language name="Curry" version="0.4" kateversion="2.5"
+ section="Sources" extensions="*.curry" mimetype="text/x-curry"
+ author="Björn Peemöller (bjp@informatik.uni-kiel.de)" license="LGPL"
+ indenter="haskell">
+ <highlighting>
+ <list name="keywords">
+ <item> case </item>
+ <item> data </item>
+ <item> do </item>
+ <item> else </item>
+ <item> external </item>
+ <item> fcase </item>
+ <item> free </item>
+ <item> if </item>
+<!-- Although import is a keyword, it is handled in a special context
+ to highlight "qualified", "as" and "hiding" in keyword style,
+ albeit these lexemes are no keywords.
+ <item> import </item>
+ -->
+ <item> in </item>
+ <item> infix </item>
+ <item> infixl </item>
+ <item> infixr </item>
+ <item> let </item>
+ <item> module </item>
+ <item> of </item>
+ <item> then </item>
+ <item> type </item>
+ <item> where </item>
+ </list>
+ <list name="Prelude Func">
+ <item> and </item>
+ <item> all </item>
+ <item> any </item>
+ <item> appendFile </item>
+ <item> best </item>
+ <item> break </item>
+ <item> browse </item>
+ <item> browseList </item>
+ <item> chr </item>
+ <item> concat </item>
+ <item> concatMap </item>
+ <item> const </item>
+ <item> curry </item>
+ <item> div </item>
+ <item> done </item>
+ <item> doSolve </item>
+ <item> drop </item>
+ <item> dropWhile </item>
+ <item> either </item>
+ <item> elem </item>
+ <item> ensureNotFree </item>
+ <item> ensureSpine </item>
+ <item> enumFrom </item>
+ <item> enumFromThen </item>
+ <item> enumFromTo </item>
+ <item> enumFromThenTo </item>
+ <item> error </item>
+ <item> failed </item>
+ <item> filter </item>
+ <item> findall </item>
+ <item> flip </item>
+ <item> foldl </item>
+ <item> foldl1 </item>
+ <item> foldr </item>
+ <item> foldr1 </item>
+ <item> fst </item>
+ <item> getChar </item>
+ <item> getLine </item>
+ <item> id </item>
+ <item> if_then_else </item>
+ <item> iterate </item>
+ <item> head </item>
+ <item> length </item>
+ <item> lines </item>
+ <item> lookup </item>
+ <item> map </item>
+ <item> mapIO </item>
+ <item> mapIO_ </item>
+ <item> max </item>
+ <item> maybe </item>
+ <item> min </item>
+ <item> mod </item>
+ <item> negate </item>
+ <item> not </item>
+ <item> notElem </item>
+ <item> null </item>
+ <item> once </item>
+ <item> or </item>
+ <item> ord </item>
+ <item> otherwise </item>
+ <item> print </item>
+ <item> putChar </item>
+ <item> putStr </item>
+ <item> putStrLn </item>
+ <item> readFile </item>
+ <item> repeat </item>
+ <item> replicate </item>
+ <item> return </item>
+ <item> reverse </item>
+ <item> seq </item>
+ <item> sequenceIO </item>
+ <item> sequenceIO_ </item>
+ <item> show </item>
+ <item> snd </item>
+ <item> solveAll </item>
+ <item> span </item>
+ <item> splitAt </item>
+ <item> success </item>
+ <item> tail </item>
+ <item> take </item>
+ <item> takeWhile </item>
+ <item> try </item>
+ <item> uncurry </item>
+ <item> unknown </item>
+ <item> unlines </item>
+ <item> unpack </item>
+ <item> until </item>
+ <item> unwords </item>
+ <item> unzip </item>
+ <item> unzip3 </item>
+ <item> writeFile </item>
+ <item> words </item>
+ <item> zip </item>
+ <item> zip3 </item>
+ <item> zipWith </item>
+ <item> zipWith3 </item>
+ </list>
+ <list name="Prelude Type">
+ <item> Bool </item>
+ <item> Char </item>
+ <item> Either </item>
+ <item> Float </item>
+ <item> Int </item>
+ <item> IO </item>
+ <item> Maybe </item>
+ <item> Ordering </item>
+ <item> String </item>
+ <item> Success </item>
+ </list>
+ <list name="Prelude Cons">
+ <item> False </item>
+ <item> True </item>
+ <item> Left </item>
+ <item> Right </item>
+ <item> Just </item>
+ <item> Nothing </item>
+ <item> EQ </item>
+ <item> LT </item>
+ <item> GT </item>
+ </list>
+ <contexts>
+ <context name="Normal" attribute="Normal" lineEndContext="#stay">
+ <!-- pragmas, currydoc, comments -->
+ <StringDetect attribute="Pragma" context="Pragma" String="{-#" beginRegion="Pragma" />
+ <Detect2Chars attribute="Comment" context="Multiline Comment" char="{" char1="-" beginRegion="Multiline Comment" />
+ <StringDetect attribute="Currydoc" context="Currydoc" String="&currydoc;" />
+ <Detect2Chars attribute="Comment" context="Comment" char="-" char1="-" />
+
+ <!-- keywords, Prelude entities -->
+ <keyword attribute="Keyword" context="#stay" String="keywords" />
+ <keyword attribute="Prelude Function" context="#stay" String="Prelude Func" />
+ <keyword attribute="Prelude Type" context="#stay" String="Prelude Type" />
+ <keyword attribute="Prelude Constructor" context="#stay" String="Prelude Cons" />
+ <RegExpr attribute="Keyword" context="Import" String="import\s+(qualified)?" />
+
+ <!-- Literals -->
+ <Float attribute="Float" context="#stay" />
+ <RegExpr attribute="Octal" context="#stay" String="0(o|O)&octal;" />
+ <HlCHex attribute="Hex" context="#stay" />
+ <Int attribute="Decimal" context="#stay" />
+ <DetectChar attribute="Char" context="Char" char="'" />
+ <DetectChar attribute="String" context="String" char="&quot;" />
+
+ <!-- Others -->
+ <RegExpr attribute="Special Symbol" context="#stay" String="(::|:=|:&gt;|\-&gt;|&lt;\-|\.\.)" />
+ <RegExpr attribute="Signature" context="#stay" String="\s*&prefixIdent;\s*(,\s*&prefixIdent;)*\s*(?=::[^&infixchar;])" />
+ <RegExpr attribute="Function" context="#stay" String="&qualify;&ident;" />
+ <RegExpr attribute="Operator" context="#stay" String="&qualify;[&infixchar;]+" />
+ <RegExpr attribute="Type, Constructor" context="#stay" String="&qualify;&type;" />
+ <DetectChar attribute="Infix Application" context="Infix" char="`" />
+
+ <!-- Folding of braces -->
+ <DetectChar char="(" context="#stay" beginRegion="nested" attribute="Braces" />
+ <DetectChar char=")" context="#stay" endRegion="nested" attribute="Braces" />
+ <DetectChar char="[" context="#stay" beginRegion="list" attribute="Braces" />
+ <DetectChar char="]" context="#stay" endRegion="list" attribute="Braces" />
+ <DetectChar char="{" context="#stay" beginRegion="curly" attribute="Braces" />
+ <DetectChar char="}" context="#stay" endRegion="curly" attribute="Braces" />
+ </context>
+
+ <!-- Pragma -->
+ <context name="Pragma" attribute="Pragma" lineEndContext="#stay" >
+ <StringDetect attribute="Pragma" context="#pop" String="#-}" endRegion="Pragma" />
+ </context>
+
+ <!-- Multiline comment -->
+ <context name="Multiline Comment" attribute="Comment" lineEndContext="#stay" >
+ <Detect2Chars attribute="Comment" context="#pop" char="-" char1="}" endRegion="Multiline Comment" />
+ </context>
+
+ <!-- Currydoc -->
+ <context name="Currydoc" attribute="Currydoc" lineEndContext="#pop" />
+
+ <!-- Single line comment -->
+ <context name="Comment" attribute="Comment" lineEndContext="#pop" />
+
+ <!-- Import section -->
+ <context name="Import" attribute="Normal" lineEndContext="#pop" >
+ <!-- pragmas, currydoc, comments -->
+ <StringDetect attribute="Pragma" context="Pragma" String="{-#" beginRegion="Pragma" />
+ <Detect2Chars attribute="Comment" context="Multiline Comment" char="{" char1="-" beginRegion="Multiline Comment" />
+ <StringDetect attribute="Currydoc" context="Currydoc" String="&currydoc;" />
+ <Detect2Chars attribute="Comment" context="Comment" char="-" char1="-" />
+
+ <RegExpr attribute="Type, Constructor" context="#stay" String="&qualify;&type;" />
+ <Detect2Chars attribute="Keyword" context="#stay" char="a" char1="s" />
+ <StringDetect attribute="Keyword" context="#stay" String="hiding" />
+ <!-- Pop context at open paren to highlight imported entities -->
+ <DetectChar attribute="Braces" context="#pop" char="(" beginRegion="nested" />
+ <RegExpr attribute="Syntax Error" context="#stay" String="\S+" />
+ </context>
+
+ <!-- A single characters, with escape sequences -->
+ <context name="Char" attribute="Char" lineEndContext="CharSyntaxError" >
+ <DetectChar attribute="Syntax Error" context="#pop" char="'" />
+ <DetectChar attribute="Char" context="CharEscape" char="\" />
+ <RegExpr attribute="Char" context="CharEnd" String="[^'&backslash;]" />
+ </context>
+
+ <!-- Character escape sequence -->
+ <context name="CharEscape" attribute="Char" lineEndContext="#popCharSyntaxError" >
+ <AnyChar attribute="Char" context="#popCharEnd" String="&escSeqChar;" />
+ <RegExpr attribute="Char" context="#popCharEnd" String="o&octal;" />
+ <RegExpr attribute="Char" context="#popCharEnd" String="&decimal;" />
+ <RegExpr attribute="Char" context="#popCharEnd" String="x&hexadecimal;" />
+ <RegExpr attribute="Char" context="#popCharEnd" String="&escSeqCntrl;" />
+ <RegExpr attribute="Char" context="#popCharEnd" String="&escSeqAscii;" />
+ <RegExpr attribute="Syntax Error" context="#popCharEnd" String="." />
+ </context>
+
+ <!-- Ending quote of character literal -->
+ <context name="CharEnd" attribute="Char" lineEndContext="#popCharSyntaxError" >
+ <DetectChar attribute="Char" context="#pop#pop" char="'" />
+ <RegExpr attribute="Syntax Error" context="#stay" String="." />
+ </context>
+
+ <!-- Character syntax error: Newline inside literal -->
+ <context name="CharSyntaxError" attribute="Syntax Error" lineEndContext="#stay" >
+ <DetectChar attribute="Syntax Error" context="#pop#pop" char="'" />
+ </context>
+
+ <!-- A string, with escape sequences -->
+ <context name="String" attribute="String" lineEndContext="StringSyntaxError" >
+ <DetectChar attribute="String" context="#pop" char="&quot;" />
+ <DetectChar attribute="String Escape" context="StringEscape" char="\" />
+ <RegExpr attribute="String" context="#stay" String="[^&quot;&backslash;]*" />
+ </context>
+
+ <!-- String escape sequence -->
+ <context name="StringEscape" attribute="String" lineEndContext="StringGap" >
+ <AnyChar attribute="String Escape" context="#pop" String="&escSeqChar;&amp;" />
+ <RegExpr attribute="String Escape" context="#pop" String="o&octal;" />
+ <RegExpr attribute="String Escape" context="#pop" String="&decimal;" />
+ <RegExpr attribute="String Escape" context="#pop" String="x&hexadecimal;" />
+ <RegExpr attribute="String Escape" context="#pop" String="&escSeqCntrl;" />
+ <RegExpr attribute="String Escape" context="#pop" String="&escSeqAscii;" />
+ <DetectSpaces attribute="String Escape" context="StringGap" />
+ <RegExpr attribute="Syntax Error" context="#pop" String="." />
+ </context>
+
+ <context name="StringGap" attribute="String" lineEndContext="#stay" >
+ <DetectSpaces attribute="String Escape" context="#stay" />
+ <DetectChar attribute="String Escape" context="#pop#pop#popString" char="\" />
+ <DetectChar attribute="Syntax Error" context="#pop#pop#pop" char="&quot;" />
+ <RegExpr attribute="Syntax Error" context="#stay" String="." />
+ </context>
+
+ <!-- String syntax error: Newline inside literal -->
+ <context name="StringSyntaxError" attribute="Syntax Error" lineEndContext="#stay" >
+ <DetectChar attribute="Syntax Error" context="#pop#pop" char="&quot;" />
+ </context>
+
+ <!-- Infix application -->
+ <context name="Infix" attribute="Infix Application" lineEndContext="#stay" >
+ <DetectChar attribute="Infix Application" context="#pop" char="`"/>
+ </context>
+ </contexts>
+
+ <itemDatas>
+ <itemData name="Normal" defStyleNum="dsNormal" spellChecking="false" />
+
+ <!-- Comments -->
+ <itemData name="Pragma" defStyleNum="dsOthers" spellChecking="false" />
+ <itemData name="Comment" defStyleNum="dsComment" />
+ <itemData name="Currydoc" defStyleNum="dsComment" color="#008000" selColor="#FFFFFF"/>
+
+ <!-- Keywords, predefined entities -->
+ <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false" />
+ <itemData name="Prelude Type" defStyleNum="dsDataType" spellChecking="false" />
+ <itemData name="Prelude Function" defStyleNum="dsFunction" spellChecking="false" />
+ <itemData name="Prelude Constructor" defStyleNum="dsKeyword" spellChecking="false" />
+
+ <!-- Literals -->
+ <itemData name="Float" defStyleNum="dsFloat" spellChecking="false" />
+ <itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false" />
+ <itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false" />
+ <itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false" />
+ <itemData name="Char" defStyleNum="dsChar" spellChecking="false" />
+ <itemData name="String Escape" defStyleNum="dsChar" spellChecking="false" />
+ <itemData name="String" defStyleNum="dsString" />
+
+ <!-- Others -->
+ <itemData name="Braces" defStyleNum="dsNormal" spellChecking="false" />
+ <itemData name="Signature" defStyleNum="dsOthers" spellChecking="false" />
+ <itemData name="Function" defStyleNum="dsNormal" spellChecking="false" />
+ <itemData name="Operator" defStyleNum="dsFunction" spellChecking="false" />
+ <itemData name="Type, Constructor" defStyleNum="dsDataType" spellChecking="false" />
+ <itemData name="Special Symbol" defStyleNum="dsOthers" spellChecking="false" />
+ <itemData name="Infix Application" defStyleNum="dsOthers" spellChecking="false" />
+ <itemData name="Syntax Error" defStyleNum="dsError" spellChecking="false" />
+ </itemDatas>
+ </highlighting>
+ <general>
+ <folding indentationsensitive="1"/>
+ <comments>
+ <comment name="singleLine" start="--" />
+ <comment name="multiLine" start="{-" end="-}" region="Multiline Comment" />
+ </comments>
+ <keywords casesensitive="1" />
+ </general>
+</language>