Warning, /frameworks/syntax-highlighting/data/syntax/haskell.xml is written in an unsupported language. File is not indexed.

0001 <?xml version="1.0" encoding="UTF-8"?>
0002 <!DOCTYPE language [
0003   <!ENTITY symbolops "\-!#\$&#37;&amp;\*\+/&lt;=&gt;\?&#92;@\^\|~\.:">
0004 ]>
0005 <language name="Haskell" version="20" kateversion="5.53" section="Sources" extensions="*.hs;*.chs;*.hs-boot" mimetype="text/x-haskell" author="Nicolas Wu (zenzike@gmail.com)" license="LGPL" indenter="haskell" style="haskell">
0006   <highlighting>
0007   <list name="keywords">
0008     <item>case</item>
0009     <item>class</item>
0010     <item>data</item>
0011     <item>deriving</item>
0012     <item>do</item>
0013     <item>else</item>
0014     <item>family</item>
0015     <item>forall</item>
0016     <item>if</item>
0017     <item>in</item>
0018     <item>infixl</item>
0019     <item>infixr</item>
0020     <item>instance</item>
0021     <item>let</item>
0022     <item>module</item>
0023     <item>newtype</item>
0024     <item>of</item>
0025     <item>pattern</item>
0026     <item>primitive</item>
0027     <item>then</item>
0028     <item>type</item>
0029     <item>where</item>
0030   </list>
0031   <list name="prelude function">
0032     <item>abs</item>
0033     <item>acos</item>
0034     <item>acosh</item>
0035     <item>all</item>
0036     <item>and</item>
0037     <item>any</item>
0038     <item>appendFile</item>
0039     <item>approxRational</item>
0040     <item>asTypeOf</item>
0041     <item>asin</item>
0042     <item>asinh</item>
0043     <item>atan</item>
0044     <item>atan2</item>
0045     <item>atanh</item>
0046     <item>basicIORun</item>
0047     <item>break</item>
0048     <item>catch</item>
0049     <item>ceiling</item>
0050     <item>chr</item>
0051     <item>compare</item>
0052     <item>concat</item>
0053     <item>concatMap</item>
0054     <item>const</item>
0055     <item>cos</item>
0056     <item>cosh</item>
0057     <item>curry</item>
0058     <item>cycle</item>
0059     <item>decodeFloat</item>
0060     <item>denominator</item>
0061     <item>digitToInt</item>
0062     <item>div</item>
0063     <item>divMod</item>
0064     <item>drop</item>
0065     <item>dropWhile</item>
0066     <item>either</item>
0067     <item>elem</item>
0068     <item>encodeFloat</item>
0069     <item>enumFrom</item>
0070     <item>enumFromThen</item>
0071     <item>enumFromThenTo</item>
0072     <item>enumFromTo</item>
0073     <item>error</item>
0074     <item>even</item>
0075     <item>exp</item>
0076     <item>exponent</item>
0077     <item>fail</item>
0078     <item>filter</item>
0079     <item>flip</item>
0080     <item>floatDigits</item>
0081     <item>floatRadix</item>
0082     <item>floatRange</item>
0083     <item>floor</item>
0084     <item>fmap</item>
0085     <item>foldl</item>
0086     <item>foldl1</item>
0087     <item>foldMap</item>
0088     <item>foldr</item>
0089     <item>foldr1</item>
0090     <item>fromDouble</item>
0091     <item>fromEnum</item>
0092     <item>fromInt</item>
0093     <item>fromInteger</item>
0094     <item>fromIntegral</item>
0095     <item>fromRational</item>
0096     <item>fst</item>
0097     <item>gcd</item>
0098     <item>getChar</item>
0099     <item>getContents</item>
0100     <item>getLine</item>
0101     <item>group</item>
0102     <item>head</item>
0103     <item>id</item>
0104     <item>inRange</item>
0105     <item>index</item>
0106     <item>init</item>
0107     <item>intToDigit</item>
0108     <item>interact</item>
0109     <item>ioError</item>
0110     <item>isAlpha</item>
0111     <item>isAlphaNum</item>
0112     <item>isAscii</item>
0113     <item>isControl</item>
0114     <item>isDenormalized</item>
0115     <item>isDigit</item>
0116     <item>isHexDigit</item>
0117     <item>isIEEE</item>
0118     <item>isInfinite</item>
0119     <item>isLower</item>
0120     <item>isNaN</item>
0121     <item>isNegativeZero</item>
0122     <item>isOctDigit</item>
0123     <item>isPrint</item>
0124     <item>isSpace</item>
0125     <item>isUpper</item>
0126     <item>iterate</item>
0127     <item>last</item>
0128     <item>lcm</item>
0129     <item>length</item>
0130     <item>lex</item>
0131     <item>lexDigits</item>
0132     <item>lexLitChar</item>
0133     <item>lines</item>
0134     <item>log</item>
0135     <item>logBase</item>
0136     <item>lookup</item>
0137     <item>map</item>
0138     <item>mappend</item>
0139     <item>mapM</item>
0140     <item>mapM_</item>
0141     <item>max</item>
0142     <item>maxBound</item>
0143     <item>maximum</item>
0144     <item>maybe</item>
0145     <item>mconcat</item>
0146     <item>mempty</item>
0147     <item>min</item>
0148     <item>minBound</item>
0149     <item>minimum</item>
0150     <item>mod</item>
0151     <item>negate</item>
0152     <item>not</item>
0153     <item>notElem</item>
0154     <item>null</item>
0155     <item>numerator</item>
0156     <item>odd</item>
0157     <item>or</item>
0158     <item>ord</item>
0159     <item>otherwise</item>
0160     <item>pack</item>
0161     <item>pi</item>
0162     <item>pred</item>
0163     <item>primExitWith</item>
0164     <item>print</item>
0165     <item>product</item>
0166     <item>properFraction</item>
0167     <item>pure</item>
0168     <item>putChar</item>
0169     <item>putStr</item>
0170     <item>putStrLn</item>
0171     <item>quot</item>
0172     <item>quotRem</item>
0173     <item>range</item>
0174     <item>rangeSize</item>
0175     <item>read</item>
0176     <item>readDec</item>
0177     <item>readFile</item>
0178     <item>readFloat</item>
0179     <item>readHex</item>
0180     <item>readIO</item>
0181     <item>readInt</item>
0182     <item>readList</item>
0183     <item>readLitChar</item>
0184     <item>readLn</item>
0185     <item>readOct</item>
0186     <item>readParen</item>
0187     <item>readSigned</item>
0188     <item>reads</item>
0189     <item>readsPrec</item>
0190     <item>realToFrac</item>
0191     <item>recip</item>
0192     <item>rem</item>
0193     <item>repeat</item>
0194     <item>replicate</item>
0195     <item>return</item>
0196     <item>reverse</item>
0197     <item>round</item>
0198     <item>scaleFloat</item>
0199     <item>scanl</item>
0200     <item>scanl1</item>
0201     <item>scanr</item>
0202     <item>scanr1</item>
0203     <item>seq</item>
0204     <item>sequence</item>
0205     <item>sequenceA</item>
0206     <item>sequence_</item>
0207     <item>show</item>
0208     <item>showChar</item>
0209     <item>showInt</item>
0210     <item>showList</item>
0211     <item>showLitChar</item>
0212     <item>showParen</item>
0213     <item>showSigned</item>
0214     <item>showString</item>
0215     <item>shows</item>
0216     <item>showsPrec</item>
0217     <item>significand</item>
0218     <item>signum</item>
0219     <item>sin</item>
0220     <item>sinh</item>
0221     <item>snd</item>
0222     <item>sort</item>
0223     <item>span</item>
0224     <item>splitAt</item>
0225     <item>sqrt</item>
0226     <item>subtract</item>
0227     <item>succ</item>
0228     <item>sum</item>
0229     <item>tail</item>
0230     <item>take</item>
0231     <item>takeWhile</item>
0232     <item>tan</item>
0233     <item>tanh</item>
0234     <item>threadToIOResult</item>
0235     <item>toEnum</item>
0236     <item>toInt</item>
0237     <item>toInteger</item>
0238     <item>toLower</item>
0239     <item>toRational</item>
0240     <item>toUpper</item>
0241     <item>traverse</item>
0242     <item>truncate</item>
0243     <item>uncurry</item>
0244     <item>undefined</item>
0245     <item>unlines</item>
0246     <item>until</item>
0247     <item>unwords</item>
0248     <item>unzip</item>
0249     <item>unzip3</item>
0250     <item>userError</item>
0251     <item>words</item>
0252     <item>writeFile</item>
0253     <item>zip</item>
0254     <item>zip3</item>
0255     <item>zipWith</item>
0256     <item>zipWith3</item>
0257   </list>
0258   <list name="prelude class">
0259     <item>Applicative</item>
0260     <item>Bounded</item>
0261     <item>Enum</item>
0262     <item>Eq</item>
0263     <item>Floating</item>
0264     <item>Foldable</item>
0265     <item>Fractional</item>
0266     <item>Functor</item>
0267     <item>Integral</item>
0268     <item>Ix</item>
0269     <item>Monad</item>
0270     <item>Monoid</item>
0271     <item>Num</item>
0272     <item>Ord</item>
0273     <item>Read</item>
0274     <item>Real</item>
0275     <item>RealFloat</item>
0276     <item>RealFrac</item>
0277     <item>Show</item>
0278     <item>Traversable</item>
0279   </list>
0280   <list name="prelude type">
0281     <item>Bool</item>
0282     <item>ByteString</item>
0283     <item>Char</item>
0284     <item>Double</item>
0285     <item>Either</item>
0286     <item>FilePath</item>
0287     <item>Float</item>
0288     <item>Int</item>
0289     <item>Integer</item>
0290     <item>IO</item>
0291     <item>IOError</item>
0292     <item>Maybe</item>
0293     <item>Ordering</item>
0294     <item>Ratio</item>
0295     <item>Rational</item>
0296     <item>ReadS</item>
0297     <item>ShowS</item>
0298     <item>String</item>
0299     <item>Word</item>
0300   </list>
0301   <list name="prelude data">
0302     <item>False</item>
0303     <item>True</item>
0304     <item>Left</item>
0305     <item>Right</item>
0306     <item>Just</item>
0307     <item>Nothing</item>
0308     <item>EQ</item>
0309     <item>LT</item>
0310     <item>GT</item>
0311   </list>
0312   <list name="cpp_keywords">
0313     <item>defined</item>
0314     <item>if</item>
0315     <item>ifdef</item>
0316     <item>ifndef</item>
0317     <item>include</item>
0318     <item>undef</item>
0319   </list>
0320   <list name="c2hs_keywords">
0321     <item>qualified</item>
0322     <item>lib</item>
0323     <item>prefix</item>
0324     <item>as</item>
0325     <item>with</item>
0326     <item>call</item>
0327     <item>pure</item>
0328     <item>unsafe</item>
0329     <item>get</item>
0330     <item>set</item>
0331     <item>foreign</item>
0332     <item>stable</item>
0333     <item>nocode</item>
0334   </list>
0335   <list name="import_keywords">
0336     <item>as</item>
0337     <item>qualified</item>
0338     <item>hiding</item>
0339   </list>
0340   <list name="language_pragmas">
0341     <item>AllowAmbiguousTypes</item>
0342     <item>ApplicativeDo</item>
0343     <item>Arrows</item>
0344     <item>AutoDeriveTypeable</item>
0345     <item>BangPatterns</item>
0346     <item>BinaryLiterals</item>
0347     <item>CApiFFI</item>
0348     <item>CPP</item>
0349     <item>ConstrainedClassMethods</item>
0350     <item>ConstraintKinds</item>
0351     <item>DataKinds</item>
0352     <item>DatatypeContexts</item>
0353     <item>DefaultSignatures</item>
0354     <item>DeriveAnyClass</item>
0355     <item>DeriveDataTypeable</item>
0356     <item>DeriveFoldable</item>
0357     <item>DeriveFunctor</item>
0358     <item>DeriveGeneric</item>
0359     <item>DeriveLift</item>
0360     <item>DeriveTraversable</item>
0361     <item>DisambiguateRecordFields</item>
0362     <item>DoAndIfThenElse</item>
0363     <item>DoRec</item>
0364     <item>DuplicateRecordFields</item>
0365     <item>EmptyCase</item>
0366     <item>EmptyDataDecls</item>
0367     <item>ExistentialQuantification</item>
0368     <item>ExplicitForAll</item>
0369     <item>ExplicitNamespaces</item>
0370     <item>ExtendedDefaultRules</item>
0371     <item>ExtensibleRecords</item>
0372     <item>FlexibleContexts</item>
0373     <item>FlexibleInstances</item>
0374     <item>ForeignFunctionInterface</item>
0375     <item>FunctionalDependencies</item>
0376     <item>GADTSyntax</item>
0377     <item>GADTs</item>
0378     <item>GHCForeignImportPrim</item>
0379     <item>GeneralizedNewtypeDeriving</item>
0380     <item>Generics</item>
0381     <item>HereDocuments</item>
0382     <item>ImplicitParams</item>
0383     <item>ImplicitPrelude</item>
0384     <item>ImpredicativeTypes</item>
0385     <item>IncoherentInstances</item>
0386     <item>InstanceSigs</item>
0387     <item>InterruptibleFFI</item>
0388     <item>JavaScriptFFI</item>
0389     <item>KindSignatures</item>
0390     <item>LambdaCase</item>
0391     <item>LiberalTypeSynonyms</item>
0392     <item>MagicHash</item>
0393     <item>MonadComprehensions</item>
0394     <item>MonadFailDesugaring</item>
0395     <item>MonoLocalBinds</item>
0396     <item>MonoPatBinds</item>
0397     <item>MonomorphismRestriction</item>
0398     <item>MultiParamTypeClasses</item>
0399     <item>MultiWayIf</item>
0400     <item>NPlusKPatterns</item>
0401     <item>NamedFieldPuns</item>
0402     <item>NamedWildCards</item>
0403     <item>NegativeLiterals</item>
0404     <item>NewQualifiedOperators</item>
0405     <item>NondecreasingIndentation</item>
0406     <item>NullaryTypeClasses</item>
0407     <item>NumDecimals</item>
0408     <item>OverlappingInstances</item>
0409     <item>OverloadedLabels</item>
0410     <item>OverloadedLists</item>
0411     <item>OverloadedStrings</item>
0412     <item>PackageImports</item>
0413     <item>ParallelArrays</item>
0414     <item>ParallelListComp</item>
0415     <item>PartialTypeSignatures</item>
0416     <item>PatternGuards</item>
0417     <item>PatternSignatures</item>
0418     <item>PatternSynonyms</item>
0419     <item>PolyKinds</item>
0420     <item>PolymorphicComponents</item>
0421     <item>PostfixOperators</item>
0422     <item>QuasiQuotes</item>
0423     <item>Rank2Types</item>
0424     <item>RankNTypes</item>
0425     <item>RebindableSyntax</item>
0426     <item>RecordPuns</item>
0427     <item>RecordWildCards</item>
0428     <item>RecursiveDo</item>
0429     <item>RegularPatterns</item>
0430     <item>RelaxedPolyRec</item>
0431     <item>RestrictedTypeSynonyms</item>
0432     <item>RoleAnnotations</item>
0433     <item>Safe</item>
0434     <item>SafeImports</item>
0435     <item>ScopedTypeVariables</item>
0436     <item>StandaloneDeriving</item>
0437     <item>StaticPointers</item>
0438     <item>Strict</item>
0439     <item>StrictData</item>
0440     <item>TemplateHaskell</item>
0441     <item>TemplateHaskellQuotes</item>
0442     <item>TraditionalRecordSyntax</item>
0443     <item>TransformListComp</item>
0444     <item>Trustworthy</item>
0445     <item>TupleSections</item>
0446     <item>TypeApplications</item>
0447     <item>TypeFamilies</item>
0448     <item>TypeInType</item>
0449     <item>TypeOperators</item>
0450     <item>TypeSynonymInstances</item>
0451     <item>UnboxedTuples</item>
0452     <item>UndecidableInstances</item>
0453     <item>UndecidableSuperClasses</item>
0454     <item>UnicodeSyntax</item>
0455     <item>UnliftedFFITypes</item>
0456     <item>Unsafe</item>
0457     <item>ViewPatterns</item>
0458     <item>XmlSyntax</item>
0459   </list>
0460   <contexts>
0461     <context attribute="Normal" lineEndContext="#stay" name="code">
0462       <IncludeRules context="FindComment"/>
0463       <WordDetect attribute="Keyword" context="import" String="import"/>
0464       <Detect2Chars attribute="C2HS Directive" context="c2hs directive" char="{" char1="#"/>
0465       <DetectChar attribute="C Preprocessor" context="C Preprocessor" char="#" column="0"/>
0466 
0467       <keyword attribute="Keyword"          context="#stay" String="keywords" />
0468       <keyword attribute="Function Prelude" context="#stay" String="prelude function" />
0469       <keyword attribute="Type Prelude"     context="#stay" String="prelude type" />
0470       <keyword attribute="Data Prelude"     context="#stay" String="prelude data" />
0471       <keyword attribute="Class Prelude"    context="#stay" String="prelude class" />
0472 
0473       <RegExpr attribute="Special"          context="#stay" String="(::|=&gt;|-&gt;|&lt;-|=)(?![&symbolops;])" />
0474       <RegExpr attribute="Signature"        context="#stay" String="\s*[a-z_][a-zA-Z0-9_']*\s*(?=::([^&symbolops;]|$))|\s*(\([&symbolops;]*\))*\s*(?=::[^&symbolops;])" />
0475       <RegExpr attribute="Function"         context="#stay" String="([A-Z][a-zA-Z0-9_']*\.)*[a-z_][a-zA-Z0-9_']*" />
0476       <RegExpr attribute="Operator"         context="#stay" String="([A-Z][a-zA-Z0-9_']*\.)*[&symbolops;]+" />
0477       <RegExpr attribute="Type"             context="#stay" String="([A-Z][a-zA-Z0-9_']*\.)*[A-Z][a-zA-Z0-9_']*|'(?![A-Z]')([A-Z][a-zA-Z0-9_']*\.)*[A-Z][a-zA-Z0-9_']*" />
0478 
0479       <RegExpr    attribute="Float"   context="#stay" String ="\d+\.\d+([Ee][+-]?\d+)?|\d+[Ee][+-]?\d+"/>
0480       <RegExpr    attribute="Octal"   context="#stay" String="0[Oo][0-7]+"/>
0481       <RegExpr    attribute="Hex"     context="#stay" String="0[Xx][0-9A-Fa-f]+"/>
0482       <Int        attribute="Decimal" context="#stay" />
0483       <DetectChar attribute="Char"    context="char" char="'" />
0484       <DetectChar attribute="String"  context="string" char="&quot;" />
0485 
0486       <DetectChar attribute="Function Infix" context="infix" char="`"/>
0487       <Detect2Chars attribute="EnumFromTo" context="#stay" char ="." char1="." />
0488       <DetectChar attribute="EnumFromTo" context="#stay" char="‥" />
0489 
0490       <RegExpr attribute="Normal" context="Hamlet" String="\[[wxs]?hamlet\|" />
0491       <StringDetect attribute="Normal" context="Julius" String="[julius|" />
0492       <RegExpr attribute="Normal" context="QuasiQuote" String="\[[a-zA-Z_'](\w|[_'])*\|" />
0493     </context>
0494     <context attribute="Normal" lineEndContext="#pop" name="FindComment">
0495       <StringDetect attribute="Pragma"  context="pragma" String="{-#"/>
0496       <Detect2Chars attribute="Comment" context="comments" char="{" char1="-" beginRegion="BlockComment"/>
0497       <RegExpr attribute="Comment" context="comment" String="--+(?![&symbolops;])"/>
0498     </context>
0499     <context attribute="Normal" lineEndContext="#stay" name="QuasiQuote">
0500       <Detect2Chars attribute="Normal" context="#pop" char="|" char1="]"/>
0501     </context>
0502     <context attribute="Normal" lineEndContext="#stay" name="Julius">
0503       <IncludeRules context="QuasiQuote"/>
0504       <IncludeRules context="Normal##JavaScript" />
0505     </context>
0506     <context attribute="Normal" lineEndContext="#stay" name="Hamlet">
0507       <IncludeRules context="QuasiQuote"/>
0508       <IncludeRules context="##Hamlet" />
0509     </context>
0510     <context attribute="Pragma" lineEndContext="#stay" name="pragma">
0511       <DetectSpaces attribute="Pragma" />
0512       <keyword attribute="Pragma" context="#stay" String="language_pragmas" />
0513       <DetectIdentifier attribute="Pragma" />
0514       <StringDetect attribute="Pragma"  context="#pop" String="#-}"/>
0515     </context>
0516     <context attribute="Comment" lineEndContext="#pop" name="comment">
0517       <DetectSpaces attribute="Comment" />
0518       <IncludeRules context="Haddock" />
0519       <IncludeRules context="##Comments" />
0520       <DetectIdentifier attribute="Comment" />
0521     </context>
0522     <context attribute="Comment" lineEndContext="#stay" name="comments">
0523       <DetectSpaces attribute="Comment" />
0524       <Detect2Chars attribute="Comment" context="comments" char="{" char1="-" beginRegion="BlockComment" />
0525       <Detect2Chars attribute="Comment" context="#pop" char="-" char1="}" endRegion="BlockComment" />
0526       <IncludeRules context="Haddock" />
0527       <IncludeRules context="##Comments" />
0528       <DetectIdentifier attribute="Comment" />
0529     </context>
0530     <context attribute="Char" lineEndContext="#pop" name="char">
0531       <DetectChar attribute="Char" context="#pop" char="'" />
0532       <RegExpr attribute="Char" context="#stay" String="\\." />
0533     </context>
0534     <context attribute="String" lineEndContext="#stay" name="string">
0535       <DetectChar attribute="String" context="#pop" char="&quot;" />
0536       <RegExpr attribute="String" context="#stay" String="\\." />
0537     </context>
0538     <context attribute="Function Infix" lineEndContext="#stay" name="infix">
0539       <DetectChar attribute="Function Infix" context="#pop" char="`"/>
0540       <DetectIdentifier attribute="Function Infix"/>
0541     </context>
0542     <context attribute="Normal" lineEndContext="#pop" name="import">
0543       <DetectSpaces attribute="Normal" />
0544       <keyword attribute="Keyword"          context="#stay" String="import_keywords" />
0545       <RegExpr attribute="Function"         context="#stay" String="([A-Z][a-zA-Z0-9_']*\.)*[a-z][a-zA-Z0-9_']*" />
0546       <RegExpr attribute="Type"             context="#stay" String="([A-Z][a-zA-Z0-9_']*\.)*[A-Z][a-zA-Z0-9_']*" />
0547 
0548       <IncludeRules context="FindComment" />
0549     </context>
0550 
0551     <!-- Haddock -->
0552     <context attribute="Comment" lineEndContext="#stay" name="Haddock">
0553       <RegExpr attribute="Haddock Hyperlink" context="#stay" String="'([A-Z][a-zA-Z0-9_']*\.)*[a-z_][a-zA-Z0-9_']*'" />
0554       <RegExpr attribute="Haddock Module" context="#stay" String="&quot;([A-Z][a-zA-Z0-9_']*\.)*[A-Z][a-zA-Z0-9_']*&quot;" />
0555       <RangeDetect context="Start Haddock Emphasis" lookAhead="true" char="/" char1="/" />
0556       <RegExpr attribute="Haddock Bold" context="Start Haddock Bold" lookAhead="true" String="__.*?__" />
0557     </context>
0558     <context attribute="Haddock Emphasis" lineEndContext="#pop" name="Start Haddock Emphasis">
0559       <DetectChar attribute="Haddock Emphasis" context="Haddock Emphasis" char="/" />
0560     </context>
0561     <context attribute="Haddock Emphasis" lineEndContext="#pop" name="Haddock Emphasis">
0562       <DetectSpaces attribute="Haddock Emphasis" />
0563       <DetectChar attribute="Haddock Emphasis" context="#pop#pop" char="/" />
0564       <IncludeRules context="Haddock"/>
0565       <DetectIdentifier attribute="Haddock Emphasis" />
0566     </context>
0567     <context attribute="Haddock Bold" lineEndContext="#pop" name="Start Haddock Bold">
0568       <Detect2Chars attribute="Haddock Bold" context="Haddock Bold" char="_" char1="_" />
0569     </context>
0570     <context attribute="Haddock Bold" lineEndContext="#pop" name="Haddock Bold">
0571       <Detect2Chars attribute="Haddock Bold" context="#pop#pop" char="_" char1="_" />
0572       <IncludeRules context="Haddock"/>
0573     </context>
0574 
0575     <!-- C Preprocessor -->
0576     <context attribute="C Preprocessor" lineEndContext="#pop" name="C Preprocessor">
0577       <keyword attribute="C Preprocessor Keyword" context="#stay" String="cpp_keywords" />
0578       <RegExpr                          context="#stay" String=".*>$" />
0579     </context>
0580 
0581     <!-- C2Hs -->
0582     <context attribute="C2HS Directive" lineEndContext="#stay" name="c2hs directive">
0583       <DetectSpaces attribute="C2HS Directive" />
0584       <Detect2Chars attribute="C2HS Directive" context="#pop" char="#" char1="}" />
0585       <keyword attribute="Keyword" context="#stay"          String="c2hs_keywords" />
0586       <StringDetect attribute="Keyword" context="#stay"          String="context" />
0587       <StringDetect attribute="Keyword" context="#stay"          String="call" />
0588       <StringDetect attribute="Keyword" context="#stay"          String="sizeof" />
0589       <StringDetect attribute="Keyword" context="#stay"          String="alignof" />
0590       <StringDetect attribute="Keyword" context="c2hs fun"       String="fun" />
0591       <StringDetect attribute="Keyword" context="c2hs pointer"   String="pointer" />
0592       <StringDetect attribute="Keyword" context="c2hs enum"      String="enum" />
0593       <StringDetect attribute="Keyword" context="c2hs enum"      String="import" />
0594     </context>
0595     <context attribute="C2HS Directive" lineEndContext="#stay" name="c2hs enum">
0596       <DetectSpaces attribute="C2HS Directive" />
0597       <RegExpr attribute="Type"    context="#stay" String="([A-Z][a-zA-Z0-9_']*\.)*[A-Z][a-zA-Z0-9_']*" />
0598       <Detect2Chars attribute="C2HS Directive" context="#pop#pop" char="#" char1="}" />
0599       <DetectIdentifier attribute="C2HS Directive" />
0600     </context>
0601     <context attribute="C2HS Directive" lineEndContext="#stay" name="c2hs pointer">
0602       <DetectSpaces attribute="C2HS Directive" />
0603       <keyword attribute="Keyword" context="#stay" String="c2hs_keywords" />
0604       <StringDetect attribute="Keyword" context="#stay" String="newtype" />
0605       <RegExpr attribute="Type"    context="#stay" String="([A-Z][a-zA-Z0-9_']*\.)*[A-Z][a-zA-Z0-9_']*" />
0606       <Detect2Chars attribute="C2HS Directive" context="#pop#pop" char="#" char1="}" />
0607       <DetectIdentifier attribute="C2HS Directive" />
0608     </context>
0609     <context attribute="C2HS Directive" lineEndContext="#stay" name="c2hs fun">
0610       <DetectSpaces attribute="C2HS Directive" />
0611       <keyword attribute="Keyword" context="#stay" String="c2hs_keywords" />
0612       <RangeDetect attribute="Type" context="#stay" char="`" char1="'" />
0613       <Detect2Chars attribute="C2HS Directive" context="#pop#pop" char="#" char1="}" />
0614       <DetectIdentifier attribute="C2HS Directive" />
0615     </context>
0616   </contexts>
0617   <itemDatas>
0618     <itemData name="Normal"           defStyleNum="dsNormal"   spellChecking="false" />
0619     <itemData name="Comment"          defStyleNum="dsComment" />
0620     <itemData name="Pragma"           defStyleNum="dsOthers"   spellChecking="false" />
0621 
0622     <itemData name="Keyword"          defStyleNum="dsKeyword"  spellChecking="false" />
0623     <itemData name="Type Prelude"     defStyleNum="dsDataType" spellChecking="false" />
0624     <itemData name="Function Prelude" defStyleNum="dsFunction" spellChecking="false" />
0625     <itemData name="Data Prelude"     defStyleNum="dsDataType" spellChecking="false" />
0626     <itemData name="Class Prelude"    defStyleNum="dsDataType" spellChecking="false" />
0627 
0628     <itemData name="Signature"        defStyleNum="dsOthers"  spellChecking="false" />
0629     <itemData name="Function"         defStyleNum="dsNormal"   spellChecking="false" />
0630     <itemData name="Operator"         defStyleNum="dsOperator" spellChecking="false" />
0631     <itemData name="Type"             defStyleNum="dsDataType" spellChecking="false" />
0632     <itemData name="Special"          defStyleNum="dsOthers"  spellChecking="false" />
0633 
0634     <itemData name="Octal"            defStyleNum="dsBaseN"    spellChecking="false" />
0635     <itemData name="Hex"              defStyleNum="dsBaseN"    spellChecking="false" />
0636     <itemData name="Decimal"          defStyleNum="dsDecVal"   spellChecking="false" />
0637     <itemData name="Float"            defStyleNum="dsFloat"    spellChecking="false" />
0638     <itemData name="Char"             defStyleNum="dsChar"     spellChecking="false" />
0639     <itemData name="String"           defStyleNum="dsString" />
0640 
0641     <itemData name="Function Infix"   defStyleNum="dsOthers"   spellChecking="false" />
0642     <itemData name="EnumFromTo"       defStyleNum="dsOthers"   spellChecking="false" />
0643 
0644     <itemData name="C Preprocessor"   defStyleNum="dsPreprocessor"   spellChecking="false" />
0645     <itemData name="C Preprocessor Keyword" defStyleNum="dsPreprocessor"   spellChecking="false" />
0646 
0647     <itemData name="Haddock Hyperlink" defStyleNum="dsComment" spellChecking="false" underline="true" />
0648     <itemData name="Haddock Module" defStyleNum="dsComment" spellChecking="false" underline="true" />
0649     <itemData name="Haddock Emphasis" defStyleNum="dsComment" italic="true"/>
0650     <itemData name="Haddock Bold" defStyleNum="dsComment" bold="true"/>
0651 
0652     <itemData name="C2HS Directive"   defStyleNum="dsString"   spellChecking="false" />
0653   </itemDatas>
0654   </highlighting>
0655   <general>
0656     <folding indentationsensitive="1"/>
0657     <comments>
0658       <comment name="singleLine" start="--" />
0659       <comment name="multiLine" start="{-" end="-}" region="BlockComment" />
0660     </comments>
0661     <keywords casesensitive="1" />
0662 </general>
0663 </language>
0664 <!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->