Warning, /frameworks/syntax-highlighting/data/syntax/curry.xml is written in an unsupported language. File is not indexed.
0001 <?xml version="1.0" encoding="UTF-8"?>
0002 <!DOCTYPE language
0003 [
0004 <!-- qualification of entities -->
0005 <!ENTITY qualify "(?:[A-Z][a-zA-Z0-9_']*\.)*">
0006 <!-- identifier -->
0007 <!ENTITY ident "[a-z][a-zA-Z0-9_']*">
0008 <!-- Type -->
0009 <!ENTITY type "[A-Z][a-zA-Z0-9_']*">
0010 <!-- infix operator characters -->
0011 <!ENTITY infixchar "~!@#\$%\^&\*\+\-=<>\?\./\|&backslash;:">
0012 <!-- identifier in prefix notation, e.g.: id, ($) -->
0013 <!ENTITY prefixIdent "(?:&ident;|\([&infixchar;]+\))">
0014
0015 <!-- Characters allowed in character escape sequence, e.g., \n -->
0016 <!ENTITY escSeqChar "abfnrtv\"'" >
0017 <!-- Ascii escape sequence, e.g., \NUL -->
0018 <!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" >
0019 <!-- Control escape sequence, e.g., \^X -->
0020 <!ENTITY escSeqCntrl "\^[A-Z@\[&backslash;\]\^_]" >
0021
0022 <!-- octal number -->
0023 <!ENTITY octal "[0-7]+" >
0024 <!-- decimal number -->
0025 <!ENTITY decimal "[0-9]+" >
0026 <!-- hexadecimal number -->
0027 <!ENTITY hexadecimal "[0-9a-fA-F]+" >
0028 <!-- a backslash, escaped for use in regular expressions -->
0029 <!ENTITY backslash "\\" >
0030 <!-- dashes introducing a currydoc comment -->
0031 <!ENTITY currydoc "---" >
0032 ]>
0033 <language name="Curry" version="4" kateversion="5.0"
0034 section="Sources" extensions="*.curry" mimetype="text/x-curry"
0035 author="Björn Peemöller (bjp@informatik.uni-kiel.de)" license="LGPL"
0036 indenter="haskell">
0037 <highlighting>
0038 <list name="keywords">
0039 <item>case</item>
0040 <item>data</item>
0041 <item>do</item>
0042 <item>else</item>
0043 <item>external</item>
0044 <item>fcase</item>
0045 <item>free</item>
0046 <item>if</item>
0047 <!-- Although import is a keyword, it is handled in a special context
0048 to highlight "qualified", "as" and "hiding" in keyword style,
0049 albeit these lexemes are no keywords.
0050 <item>import</item>
0051 -->
0052 <item>in</item>
0053 <item>infix</item>
0054 <item>infixl</item>
0055 <item>infixr</item>
0056 <item>let</item>
0057 <item>module</item>
0058 <item>of</item>
0059 <item>then</item>
0060 <item>type</item>
0061 <item>where</item>
0062 </list>
0063 <list name="Prelude Func">
0064 <item>and</item>
0065 <item>all</item>
0066 <item>any</item>
0067 <item>appendFile</item>
0068 <item>best</item>
0069 <item>break</item>
0070 <item>browse</item>
0071 <item>browseList</item>
0072 <item>chr</item>
0073 <item>concat</item>
0074 <item>concatMap</item>
0075 <item>const</item>
0076 <item>curry</item>
0077 <item>div</item>
0078 <item>done</item>
0079 <item>doSolve</item>
0080 <item>drop</item>
0081 <item>dropWhile</item>
0082 <item>either</item>
0083 <item>elem</item>
0084 <item>ensureNotFree</item>
0085 <item>ensureSpine</item>
0086 <item>enumFrom</item>
0087 <item>enumFromThen</item>
0088 <item>enumFromTo</item>
0089 <item>enumFromThenTo</item>
0090 <item>error</item>
0091 <item>failed</item>
0092 <item>filter</item>
0093 <item>findall</item>
0094 <item>flip</item>
0095 <item>foldl</item>
0096 <item>foldl1</item>
0097 <item>foldr</item>
0098 <item>foldr1</item>
0099 <item>fst</item>
0100 <item>getChar</item>
0101 <item>getLine</item>
0102 <item>id</item>
0103 <item>if_then_else</item>
0104 <item>iterate</item>
0105 <item>head</item>
0106 <item>length</item>
0107 <item>lines</item>
0108 <item>lookup</item>
0109 <item>map</item>
0110 <item>mapIO</item>
0111 <item>mapIO_</item>
0112 <item>max</item>
0113 <item>maybe</item>
0114 <item>min</item>
0115 <item>mod</item>
0116 <item>negate</item>
0117 <item>not</item>
0118 <item>notElem</item>
0119 <item>null</item>
0120 <item>once</item>
0121 <item>or</item>
0122 <item>ord</item>
0123 <item>otherwise</item>
0124 <item>print</item>
0125 <item>putChar</item>
0126 <item>putStr</item>
0127 <item>putStrLn</item>
0128 <item>readFile</item>
0129 <item>repeat</item>
0130 <item>replicate</item>
0131 <item>return</item>
0132 <item>reverse</item>
0133 <item>seq</item>
0134 <item>sequenceIO</item>
0135 <item>sequenceIO_</item>
0136 <item>show</item>
0137 <item>snd</item>
0138 <item>solveAll</item>
0139 <item>span</item>
0140 <item>splitAt</item>
0141 <item>success</item>
0142 <item>tail</item>
0143 <item>take</item>
0144 <item>takeWhile</item>
0145 <item>try</item>
0146 <item>uncurry</item>
0147 <item>unknown</item>
0148 <item>unlines</item>
0149 <item>unpack</item>
0150 <item>until</item>
0151 <item>unwords</item>
0152 <item>unzip</item>
0153 <item>unzip3</item>
0154 <item>writeFile</item>
0155 <item>words</item>
0156 <item>zip</item>
0157 <item>zip3</item>
0158 <item>zipWith</item>
0159 <item>zipWith3</item>
0160 </list>
0161 <list name="Prelude Type">
0162 <item>Bool</item>
0163 <item>Char</item>
0164 <item>Either</item>
0165 <item>Float</item>
0166 <item>Int</item>
0167 <item>IO</item>
0168 <item>Maybe</item>
0169 <item>Ordering</item>
0170 <item>String</item>
0171 <item>Success</item>
0172 </list>
0173 <list name="Prelude Cons">
0174 <item>False</item>
0175 <item>True</item>
0176 <item>Left</item>
0177 <item>Right</item>
0178 <item>Just</item>
0179 <item>Nothing</item>
0180 <item>EQ</item>
0181 <item>LT</item>
0182 <item>GT</item>
0183 </list>
0184 <contexts>
0185 <context name="Normal" attribute="Normal" lineEndContext="#stay">
0186 <!-- pragmas, currydoc, comments -->
0187 <StringDetect attribute="Pragma" context="Pragma" String="{-#" beginRegion="Pragma" />
0188 <Detect2Chars attribute="Comment" context="Multiline Comment" char="{" char1="-" beginRegion="Multiline Comment" />
0189 <StringDetect attribute="Currydoc" context="Currydoc" String="&currydoc;" />
0190 <Detect2Chars attribute="Comment" context="Comment" char="-" char1="-" />
0191
0192 <!-- keywords, Prelude entities -->
0193 <keyword attribute="Keyword" context="#stay" String="keywords" />
0194 <keyword attribute="Prelude Function" context="#stay" String="Prelude Func" />
0195 <keyword attribute="Prelude Type" context="#stay" String="Prelude Type" />
0196 <keyword attribute="Prelude Constructor" context="#stay" String="Prelude Cons" />
0197 <RegExpr attribute="Keyword" context="Import" String="import\s+(?:qualified)?" />
0198
0199 <!-- Literals -->
0200 <Float attribute="Float" context="#stay" />
0201 <RegExpr attribute="Octal" context="#stay" String="0[oO]&octal;" />
0202 <HlCHex attribute="Hex" context="#stay" />
0203 <Int attribute="Decimal" context="#stay" />
0204 <DetectChar attribute="Char" context="Char" char="'" />
0205 <DetectChar attribute="String" context="String" char=""" />
0206
0207 <!-- Others -->
0208 <RegExpr attribute="Special Symbol" context="#stay" String="(?:::|:=|:>|\->|<\-|\.\.)" />
0209 <RegExpr attribute="Signature" context="#stay" String="\s*&prefixIdent;\s*(?:,\s*&prefixIdent;)*\s*(?=::[^&infixchar;])" />
0210 <RegExpr attribute="Function" context="#stay" String="&qualify;&ident;" />
0211 <RegExpr attribute="Operator" context="#stay" String="&qualify;[&infixchar;]+" />
0212 <RegExpr attribute="Type, Constructor" context="#stay" String="&qualify;&type;" />
0213 <DetectChar attribute="Infix Application" context="Infix" char="`" />
0214
0215 <!-- Folding of braces -->
0216 <DetectChar char="(" context="#stay" beginRegion="nested" attribute="Braces" />
0217 <DetectChar char=")" context="#stay" endRegion="nested" attribute="Braces" />
0218 <DetectChar char="[" context="#stay" beginRegion="list" attribute="Braces" />
0219 <DetectChar char="]" context="#stay" endRegion="list" attribute="Braces" />
0220 <DetectChar char="{" context="#stay" beginRegion="curly" attribute="Braces" />
0221 <DetectChar char="}" context="#stay" endRegion="curly" attribute="Braces" />
0222 </context>
0223
0224 <!-- Pragma -->
0225 <context name="Pragma" attribute="Pragma" lineEndContext="#stay" >
0226 <StringDetect attribute="Pragma" context="#pop" String="#-}" endRegion="Pragma" />
0227 </context>
0228
0229 <!-- Multiline comment -->
0230 <context name="Multiline Comment" attribute="Comment" lineEndContext="#stay" >
0231 <Detect2Chars attribute="Comment" context="#pop" char="-" char1="}" endRegion="Multiline Comment" />
0232 <IncludeRules context="##Comments" />
0233 </context>
0234
0235 <!-- Currydoc -->
0236 <context name="Currydoc" attribute="Currydoc" lineEndContext="#pop" />
0237
0238 <!-- Single line comment -->
0239 <context name="Comment" attribute="Comment" lineEndContext="#pop">
0240 <IncludeRules context="##Comments" />
0241 </context>
0242
0243 <!-- Import section -->
0244 <context name="Import" attribute="Normal" lineEndContext="#pop" >
0245 <!-- pragmas, currydoc, comments -->
0246 <StringDetect attribute="Pragma" context="Pragma" String="{-#" beginRegion="Pragma" />
0247 <Detect2Chars attribute="Comment" context="Multiline Comment" char="{" char1="-" beginRegion="Multiline Comment" />
0248 <StringDetect attribute="Currydoc" context="Currydoc" String="&currydoc;" />
0249 <Detect2Chars attribute="Comment" context="Comment" char="-" char1="-" />
0250
0251 <RegExpr attribute="Type, Constructor" context="#stay" String="&qualify;&type;" />
0252 <Detect2Chars attribute="Keyword" context="#stay" char="a" char1="s" />
0253 <StringDetect attribute="Keyword" context="#stay" String="hiding" />
0254 <!-- Pop context at open paren to highlight imported entities -->
0255 <DetectChar attribute="Braces" context="#pop" char="(" beginRegion="nested" />
0256 <RegExpr attribute="Syntax Error" context="#stay" String="\S+" />
0257 </context>
0258
0259 <!-- A single characters, with escape sequences -->
0260 <context name="Char" attribute="Char" lineEndContext="CharSyntaxError" >
0261 <DetectChar attribute="Syntax Error" context="#pop" char="'" />
0262 <DetectChar attribute="Char" context="CharEscape" char="\" />
0263 <RegExpr attribute="Char" context="CharEnd" String="[^'&backslash;]" />
0264 </context>
0265
0266 <!-- Character escape sequence -->
0267 <context name="CharEscape" attribute="Char" lineEndContext="#pop!CharSyntaxError" >
0268 <AnyChar attribute="Char" context="#pop!CharEnd" String="&escSeqChar;" />
0269 <RegExpr attribute="Char" context="#pop!CharEnd" String="o&octal;|&decimal;|x&hexadecimal;|&escSeqCntrl;|&escSeqAscii;" />
0270 <RegExpr attribute="Syntax Error" context="#pop!CharEnd" String="." />
0271 </context>
0272
0273 <!-- Ending quote of character literal -->
0274 <context name="CharEnd" attribute="Char" lineEndContext="#pop!CharSyntaxError" >
0275 <DetectChar attribute="Char" context="#pop#pop" char="'" />
0276 <RegExpr attribute="Syntax Error" context="#stay" String="." />
0277 </context>
0278
0279 <!-- Character syntax error: Newline inside literal -->
0280 <context name="CharSyntaxError" attribute="Syntax Error" lineEndContext="#stay" >
0281 <DetectChar attribute="Syntax Error" context="#pop#pop" char="'" />
0282 </context>
0283
0284 <!-- A string, with escape sequences -->
0285 <context name="String" attribute="String" lineEndContext="StringSyntaxError" >
0286 <DetectChar attribute="String" context="#pop" char=""" />
0287 <DetectChar attribute="String Escape" context="StringEscape" char="\" />
0288 <RegExpr attribute="String" context="#stay" String="[^"&backslash;]*" />
0289 </context>
0290
0291 <!-- String escape sequence -->
0292 <context name="StringEscape" attribute="String" lineEndContext="StringGap" >
0293 <AnyChar attribute="String Escape" context="#pop" String="&escSeqChar;&" />
0294 <RegExpr attribute="String Escape" context="#pop" String="o&octal;|&decimal;|x&hexadecimal;|&escSeqCntrl;|&escSeqAscii;" />
0295 <DetectSpaces attribute="String Escape" context="StringGap" />
0296 <RegExpr attribute="Syntax Error" context="#pop" String="." />
0297 </context>
0298
0299 <context name="StringGap" attribute="String" lineEndContext="#stay" >
0300 <DetectSpaces attribute="String Escape" context="#stay" />
0301 <DetectChar attribute="String Escape" context="#pop#pop#pop!String" char="\" />
0302 <DetectChar attribute="Syntax Error" context="#pop#pop#pop" char=""" />
0303 <RegExpr attribute="Syntax Error" context="#stay" String="." />
0304 </context>
0305
0306 <!-- String syntax error: Newline inside literal -->
0307 <context name="StringSyntaxError" attribute="Syntax Error" lineEndContext="#stay" >
0308 <DetectChar attribute="Syntax Error" context="#pop#pop" char=""" />
0309 </context>
0310
0311 <!-- Infix application -->
0312 <context name="Infix" attribute="Infix Application" lineEndContext="#stay" >
0313 <DetectChar attribute="Infix Application" context="#pop" char="`"/>
0314 </context>
0315 </contexts>
0316
0317 <itemDatas>
0318 <itemData name="Normal" defStyleNum="dsNormal" spellChecking="false" />
0319
0320 <!-- Comments -->
0321 <itemData name="Pragma" defStyleNum="dsOthers" spellChecking="false" />
0322 <itemData name="Comment" defStyleNum="dsComment" />
0323 <itemData name="Currydoc" defStyleNum="dsDocumentation" />
0324
0325 <!-- Keywords, predefined entities -->
0326 <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false" />
0327 <itemData name="Prelude Type" defStyleNum="dsDataType" spellChecking="false" />
0328 <itemData name="Prelude Function" defStyleNum="dsFunction" spellChecking="false" />
0329 <itemData name="Prelude Constructor" defStyleNum="dsKeyword" spellChecking="false" />
0330
0331 <!-- Literals -->
0332 <itemData name="Float" defStyleNum="dsFloat" spellChecking="false" />
0333 <itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false" />
0334 <itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false" />
0335 <itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false" />
0336 <itemData name="Char" defStyleNum="dsChar" spellChecking="false" />
0337 <itemData name="String Escape" defStyleNum="dsChar" spellChecking="false" />
0338 <itemData name="String" defStyleNum="dsString" />
0339
0340 <!-- Others -->
0341 <itemData name="Braces" defStyleNum="dsNormal" spellChecking="false" />
0342 <itemData name="Signature" defStyleNum="dsOthers" spellChecking="false" />
0343 <itemData name="Function" defStyleNum="dsNormal" spellChecking="false" />
0344 <itemData name="Operator" defStyleNum="dsFunction" spellChecking="false" />
0345 <itemData name="Type, Constructor" defStyleNum="dsDataType" spellChecking="false" />
0346 <itemData name="Special Symbol" defStyleNum="dsOthers" spellChecking="false" />
0347 <itemData name="Infix Application" defStyleNum="dsOthers" spellChecking="false" />
0348 <itemData name="Syntax Error" defStyleNum="dsError" spellChecking="false" />
0349 </itemDatas>
0350 </highlighting>
0351 <general>
0352 <folding indentationsensitive="1"/>
0353 <comments>
0354 <comment name="singleLine" start="--" position="afterwhitespace" />
0355 <comment name="multiLine" start="{-" end="-}" region="Multiline Comment" />
0356 </comments>
0357 <keywords casesensitive="1" />
0358 </general>
0359 </language>
0360 <!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->