PageRenderTime 46ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/jEdit/tags/jedit-4-3-pre5/modes/haskell.xml

#
XML | 180 lines | 157 code | 14 blank | 9 comment | 0 complexity | ab926c8bfc4a7ed802673666e71ce356 MD5 | raw file
Possible License(s): BSD-3-Clause, AGPL-1.0, Apache-2.0, LGPL-2.0, LGPL-3.0, GPL-2.0, CC-BY-SA-3.0, LGPL-2.1, GPL-3.0, MPL-2.0-no-copyleft-exception, IPL-1.0
  1. <?xml version="1.0"?>
  2. <!DOCTYPE MODE SYSTEM "xmode.dtd">
  3. <!--
  4. Haskell mode by Kristian Ovaska (kristian.ovaska@helsinki.fi)
  5. Based on Haskell 98
  6. -->
  7. <MODE>
  8. <PROPS>
  9. <PROPERTY NAME="commentStart" VALUE="{-" />
  10. <PROPERTY NAME="commentEnd" VALUE="-}" />
  11. <PROPERTY NAME="lineComment" VALUE="--" />
  12. <!-- apparently, this is required... -->
  13. <PROPERTY NAME="tabSize" VALUE="8" />
  14. <PROPERTY NAME="indentSize" VALUE="8" />
  15. </PROPS>
  16. <RULES IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE" ESCAPE="\">
  17. <!-- Pragmas. -->
  18. <SPAN TYPE="COMMENT2">
  19. <BEGIN>{-#</BEGIN>
  20. <END>#-}</END>
  21. </SPAN>
  22. <SPAN TYPE="COMMENT1">
  23. <BEGIN>{-</BEGIN>
  24. <END>-}</END>
  25. </SPAN>
  26. <EOL_SPAN TYPE="COMMENT1">--</EOL_SPAN>
  27. <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
  28. <BEGIN>"</BEGIN>
  29. <END>"</END>
  30. </SPAN>
  31. <!-- ' causes problems because not all ' are character
  32. definitions. I implemented an ugly and partial workaround. -->
  33. <SEQ TYPE="LITERAL1">' '</SEQ>
  34. <SEQ TYPE="LITERAL1">'!'</SEQ>
  35. <SEQ TYPE="LITERAL1">'"'</SEQ>
  36. <SEQ TYPE="LITERAL1">'$'</SEQ>
  37. <SEQ TYPE="LITERAL1">'%'</SEQ>
  38. <SEQ TYPE="LITERAL1">'/'</SEQ>
  39. <SEQ TYPE="LITERAL1">'('</SEQ>
  40. <SEQ TYPE="LITERAL1">')'</SEQ>
  41. <SEQ TYPE="LITERAL1">'['</SEQ>
  42. <SEQ TYPE="LITERAL1">']'</SEQ>
  43. <SEQ TYPE="LITERAL1">'+'</SEQ>
  44. <SEQ TYPE="LITERAL1">'-'</SEQ>
  45. <SEQ TYPE="LITERAL1">'*'</SEQ>
  46. <SEQ TYPE="LITERAL1">'='</SEQ>
  47. <SEQ TYPE="LITERAL1">'/'</SEQ>
  48. <SEQ TYPE="LITERAL1">'^'</SEQ>
  49. <SEQ TYPE="LITERAL1">'.'</SEQ>
  50. <SEQ TYPE="LITERAL1">','</SEQ>
  51. <SEQ TYPE="LITERAL1">':'</SEQ>
  52. <SEQ TYPE="LITERAL1">';'</SEQ>
  53. <SEQ TYPE="LITERAL1">'&lt;'</SEQ>
  54. <SEQ TYPE="LITERAL1">'&gt;'</SEQ>
  55. <SEQ TYPE="LITERAL1">'|'</SEQ>
  56. <SEQ TYPE="LITERAL1">'@'</SEQ>
  57. <SPAN TYPE="LITERAL1" NO_WORD_BREAK="TRUE">
  58. <BEGIN>'</BEGIN>
  59. <END>'</END>
  60. </SPAN>
  61. <SEQ TYPE="OPERATOR">..</SEQ>
  62. <SEQ TYPE="OPERATOR">&amp;&amp;</SEQ>
  63. <SEQ TYPE="OPERATOR">::</SEQ>
  64. <SEQ TYPE="OPERATOR">&lt;</SEQ>
  65. <SEQ TYPE="OPERATOR">&gt;</SEQ>
  66. <SEQ TYPE="OPERATOR">+</SEQ>
  67. <SEQ TYPE="OPERATOR">-</SEQ>
  68. <SEQ TYPE="OPERATOR">*</SEQ>
  69. <SEQ TYPE="OPERATOR">/</SEQ>
  70. <SEQ TYPE="OPERATOR">%</SEQ>
  71. <SEQ TYPE="OPERATOR">^</SEQ>
  72. <SEQ TYPE="OPERATOR">=</SEQ>
  73. <SEQ TYPE="OPERATOR">|</SEQ>
  74. <SEQ TYPE="OPERATOR">@</SEQ>
  75. <SEQ TYPE="OPERATOR">~</SEQ>
  76. <SEQ TYPE="OPERATOR">!</SEQ>
  77. <SEQ TYPE="OPERATOR">$</SEQ>
  78. <!-- Defining this as OPERATOR causes float numbers not to be
  79. highlighted... Which is more important? -->
  80. <!-- <SEQ TYPE="NULL">.</SEQ> -->
  81. <KEYWORDS>
  82. <!-- Reserved words. -->
  83. <KEYWORD1>case</KEYWORD1>
  84. <KEYWORD1>class</KEYWORD1>
  85. <KEYWORD1>data</KEYWORD1>
  86. <KEYWORD1>default</KEYWORD1>
  87. <KEYWORD1>deriving</KEYWORD1>
  88. <KEYWORD1>do</KEYWORD1>
  89. <KEYWORD1>else</KEYWORD1>
  90. <KEYWORD1>if</KEYWORD1>
  91. <KEYWORD1>import</KEYWORD1>
  92. <KEYWORD1>in</KEYWORD1>
  93. <KEYWORD1>infix</KEYWORD1>
  94. <KEYWORD1>infixl</KEYWORD1>
  95. <KEYWORD1>infixr</KEYWORD1>
  96. <KEYWORD1>instance</KEYWORD1>
  97. <KEYWORD1>let</KEYWORD1>
  98. <KEYWORD1>module</KEYWORD1>
  99. <KEYWORD1>newtype</KEYWORD1>
  100. <KEYWORD1>of</KEYWORD1>
  101. <KEYWORD1>then</KEYWORD1>
  102. <KEYWORD1>type</KEYWORD1>
  103. <KEYWORD1>where</KEYWORD1>
  104. <KEYWORD1>_</KEYWORD1>
  105. <KEYWORD1>as</KEYWORD1>
  106. <KEYWORD1>qualified</KEYWORD1>
  107. <KEYWORD1>hiding</KEYWORD1>
  108. <KEYWORD3>Addr</KEYWORD3>
  109. <KEYWORD3>Bool</KEYWORD3>
  110. <KEYWORD3>Bounded</KEYWORD3>
  111. <KEYWORD3>Char</KEYWORD3>
  112. <KEYWORD3>Double</KEYWORD3>
  113. <KEYWORD3>Either</KEYWORD3>
  114. <KEYWORD3>Enum</KEYWORD3>
  115. <KEYWORD3>Eq</KEYWORD3>
  116. <KEYWORD3>FilePath</KEYWORD3>
  117. <KEYWORD3>Float</KEYWORD3>
  118. <KEYWORD3>Floating</KEYWORD3>
  119. <KEYWORD3>Fractional</KEYWORD3>
  120. <KEYWORD3>Functor</KEYWORD3>
  121. <KEYWORD3>IO</KEYWORD3>
  122. <KEYWORD3>IOError</KEYWORD3>
  123. <KEYWORD3>IOResult</KEYWORD3>
  124. <KEYWORD3>Int</KEYWORD3>
  125. <KEYWORD3>Integer</KEYWORD3>
  126. <KEYWORD3>Integral</KEYWORD3>
  127. <KEYWORD3>Ix</KEYWORD3>
  128. <KEYWORD3>Maybe</KEYWORD3>
  129. <KEYWORD3>Monad</KEYWORD3>
  130. <KEYWORD3>Num</KEYWORD3>
  131. <KEYWORD3>Ord</KEYWORD3>
  132. <KEYWORD3>Ordering</KEYWORD3>
  133. <KEYWORD3>Ratio</KEYWORD3>
  134. <KEYWORD3>Rational</KEYWORD3>
  135. <KEYWORD3>Read</KEYWORD3>
  136. <KEYWORD3>ReadS</KEYWORD3>
  137. <KEYWORD3>Real</KEYWORD3>
  138. <KEYWORD3>RealFloat</KEYWORD3>
  139. <KEYWORD3>RealFrac</KEYWORD3>
  140. <KEYWORD3>Show</KEYWORD3>
  141. <KEYWORD3>ShowS</KEYWORD3>
  142. <KEYWORD3>String</KEYWORD3>
  143. <LITERAL2>:</LITERAL2>
  144. <LITERAL2>EQ</LITERAL2>
  145. <LITERAL2>False</LITERAL2>
  146. <LITERAL2>GT</LITERAL2>
  147. <LITERAL2>Just</LITERAL2>
  148. <LITERAL2>LT</LITERAL2>
  149. <LITERAL2>Left</LITERAL2>
  150. <LITERAL2>Nothing</LITERAL2>
  151. <LITERAL2>Right</LITERAL2>
  152. <LITERAL2>True</LITERAL2>
  153. <OPERATOR>quot</OPERATOR>
  154. <OPERATOR>rem</OPERATOR>
  155. <OPERATOR>div</OPERATOR>
  156. <OPERATOR>mod</OPERATOR>
  157. <OPERATOR>elem</OPERATOR>
  158. <OPERATOR>notElem</OPERATOR>
  159. <OPERATOR>seq</OPERATOR>
  160. </KEYWORDS>
  161. </RULES>
  162. </MODE>