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   "~!@#\$&#37;\^&amp;\*\+\-=&lt;&gt;\?\./\|&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\&quot;'" >
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="&quot;" />
0206 
0207       <!-- Others -->
0208       <RegExpr      attribute="Special Symbol"    context="#stay"   String="(?:::|:=|:&gt;|\-&gt;|&lt;\-|\.\.)" />
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="&quot;" />
0287       <DetectChar   attribute="String Escape" context="StringEscape" char="\" />
0288       <RegExpr      attribute="String"        context="#stay"        String="[^&quot;&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;&amp;" />
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="&quot;" />
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="&quot;" />
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; -->