1 <?xml version="1.0"?>
\r
3 <!DOCTYPE MODE SYSTEM "xmode.dtd">
\r
6 Haskell mode by Kristian Ovaska (kristian.ovaska@helsinki.fi)
\r
13 <PROPERTY NAME="commentStart" VALUE="{-" />
\r
14 <PROPERTY NAME="commentEnd" VALUE="-}" />
\r
15 <PROPERTY NAME="lineComment" VALUE="--" />
\r
16 <!-- apparently, this is required... -->
\r
17 <PROPERTY NAME="tabSize" VALUE="8" />
\r
18 <PROPERTY NAME="indentSize" VALUE="8" />
\r
21 <RULES IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE" ESCAPE="\">
\r
23 <SPAN TYPE="COMMENT2">
\r
28 <SPAN TYPE="COMMENT1">
\r
33 <EOL_SPAN TYPE="COMMENT1">--</EOL_SPAN>
\r
35 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
\r
40 <!-- ' causes problems because not all ' are character
\r
41 definitions. I implemented an ugly and partial workaround. -->
\r
42 <SEQ TYPE="LITERAL1">' '</SEQ>
\r
43 <SEQ TYPE="LITERAL1">'!'</SEQ>
\r
44 <SEQ TYPE="LITERAL1">'"'</SEQ>
\r
45 <SEQ TYPE="LITERAL1">'$'</SEQ>
\r
46 <SEQ TYPE="LITERAL1">'%'</SEQ>
\r
47 <SEQ TYPE="LITERAL1">'/'</SEQ>
\r
48 <SEQ TYPE="LITERAL1">'('</SEQ>
\r
49 <SEQ TYPE="LITERAL1">')'</SEQ>
\r
50 <SEQ TYPE="LITERAL1">'['</SEQ>
\r
51 <SEQ TYPE="LITERAL1">']'</SEQ>
\r
52 <SEQ TYPE="LITERAL1">'+'</SEQ>
\r
53 <SEQ TYPE="LITERAL1">'-'</SEQ>
\r
54 <SEQ TYPE="LITERAL1">'*'</SEQ>
\r
55 <SEQ TYPE="LITERAL1">'='</SEQ>
\r
56 <SEQ TYPE="LITERAL1">'/'</SEQ>
\r
57 <SEQ TYPE="LITERAL1">'^'</SEQ>
\r
58 <SEQ TYPE="LITERAL1">'.'</SEQ>
\r
59 <SEQ TYPE="LITERAL1">','</SEQ>
\r
60 <SEQ TYPE="LITERAL1">':'</SEQ>
\r
61 <SEQ TYPE="LITERAL1">';'</SEQ>
\r
62 <SEQ TYPE="LITERAL1">'<'</SEQ>
\r
63 <SEQ TYPE="LITERAL1">'>'</SEQ>
\r
64 <SEQ TYPE="LITERAL1">'|'</SEQ>
\r
65 <SEQ TYPE="LITERAL1">'@'</SEQ>
\r
67 <SPAN TYPE="LITERAL1" NO_WORD_BREAK="TRUE">
\r
72 <SEQ TYPE="OPERATOR">..</SEQ>
\r
73 <SEQ TYPE="OPERATOR">&&</SEQ>
\r
74 <SEQ TYPE="OPERATOR">::</SEQ>
\r
76 <SEQ TYPE="OPERATOR"><</SEQ>
\r
77 <SEQ TYPE="OPERATOR">></SEQ>
\r
78 <SEQ TYPE="OPERATOR">+</SEQ>
\r
79 <SEQ TYPE="OPERATOR">-</SEQ>
\r
80 <SEQ TYPE="OPERATOR">*</SEQ>
\r
81 <SEQ TYPE="OPERATOR">/</SEQ>
\r
82 <SEQ TYPE="OPERATOR">%</SEQ>
\r
83 <SEQ TYPE="OPERATOR">^</SEQ>
\r
84 <SEQ TYPE="OPERATOR">=</SEQ>
\r
85 <SEQ TYPE="OPERATOR">|</SEQ>
\r
86 <SEQ TYPE="OPERATOR">@</SEQ>
\r
87 <SEQ TYPE="OPERATOR">~</SEQ>
\r
88 <SEQ TYPE="OPERATOR">!</SEQ>
\r
89 <SEQ TYPE="OPERATOR">$</SEQ>
\r
91 <!-- Defining this as OPERATOR causes float numbers not to be
\r
92 highlighted... Which is more important? -->
\r
93 <!-- <SEQ TYPE="NULL">.</SEQ> -->
\r
96 <!-- Reserved words. -->
\r
97 <KEYWORD1>case</KEYWORD1>
\r
98 <KEYWORD1>class</KEYWORD1>
\r
99 <KEYWORD1>data</KEYWORD1>
\r
100 <KEYWORD1>default</KEYWORD1>
\r
101 <KEYWORD1>deriving</KEYWORD1>
\r
102 <KEYWORD1>do</KEYWORD1>
\r
103 <KEYWORD1>else</KEYWORD1>
\r
104 <KEYWORD1>if</KEYWORD1>
\r
105 <KEYWORD1>import</KEYWORD1>
\r
106 <KEYWORD1>in</KEYWORD1>
\r
107 <KEYWORD1>infix</KEYWORD1>
\r
108 <KEYWORD1>infixl</KEYWORD1>
\r
109 <KEYWORD1>infixr</KEYWORD1>
\r
110 <KEYWORD1>instance</KEYWORD1>
\r
111 <KEYWORD1>let</KEYWORD1>
\r
112 <KEYWORD1>module</KEYWORD1>
\r
113 <KEYWORD1>newtype</KEYWORD1>
\r
114 <KEYWORD1>of</KEYWORD1>
\r
115 <KEYWORD1>then</KEYWORD1>
\r
116 <KEYWORD1>type</KEYWORD1>
\r
117 <KEYWORD1>where</KEYWORD1>
\r
118 <KEYWORD1>_</KEYWORD1>
\r
119 <KEYWORD1>as</KEYWORD1>
\r
120 <KEYWORD1>qualified</KEYWORD1>
\r
121 <KEYWORD1>hiding</KEYWORD1>
\r
123 <KEYWORD3>Addr</KEYWORD3>
\r
124 <KEYWORD3>Bool</KEYWORD3>
\r
125 <KEYWORD3>Bounded</KEYWORD3>
\r
126 <KEYWORD3>Char</KEYWORD3>
\r
127 <KEYWORD3>Double</KEYWORD3>
\r
128 <KEYWORD3>Either</KEYWORD3>
\r
129 <KEYWORD3>Enum</KEYWORD3>
\r
130 <KEYWORD3>Eq</KEYWORD3>
\r
131 <KEYWORD3>FilePath</KEYWORD3>
\r
132 <KEYWORD3>Float</KEYWORD3>
\r
133 <KEYWORD3>Floating</KEYWORD3>
\r
134 <KEYWORD3>Fractional</KEYWORD3>
\r
135 <KEYWORD3>Functor</KEYWORD3>
\r
136 <KEYWORD3>IO</KEYWORD3>
\r
137 <KEYWORD3>IOError</KEYWORD3>
\r
138 <KEYWORD3>IOResult</KEYWORD3>
\r
139 <KEYWORD3>Int</KEYWORD3>
\r
140 <KEYWORD3>Integer</KEYWORD3>
\r
141 <KEYWORD3>Integral</KEYWORD3>
\r
142 <KEYWORD3>Ix</KEYWORD3>
\r
143 <KEYWORD3>Maybe</KEYWORD3>
\r
144 <KEYWORD3>Monad</KEYWORD3>
\r
145 <KEYWORD3>Num</KEYWORD3>
\r
146 <KEYWORD3>Ord</KEYWORD3>
\r
147 <KEYWORD3>Ordering</KEYWORD3>
\r
148 <KEYWORD3>Ratio</KEYWORD3>
\r
149 <KEYWORD3>Rational</KEYWORD3>
\r
150 <KEYWORD3>Read</KEYWORD3>
\r
151 <KEYWORD3>ReadS</KEYWORD3>
\r
152 <KEYWORD3>Real</KEYWORD3>
\r
153 <KEYWORD3>RealFloat</KEYWORD3>
\r
154 <KEYWORD3>RealFrac</KEYWORD3>
\r
155 <KEYWORD3>Show</KEYWORD3>
\r
156 <KEYWORD3>ShowS</KEYWORD3>
\r
157 <KEYWORD3>String</KEYWORD3>
\r
159 <LITERAL2>:</LITERAL2>
\r
160 <LITERAL2>EQ</LITERAL2>
\r
161 <LITERAL2>False</LITERAL2>
\r
162 <LITERAL2>GT</LITERAL2>
\r
163 <LITERAL2>Just</LITERAL2>
\r
164 <LITERAL2>LT</LITERAL2>
\r
165 <LITERAL2>Left</LITERAL2>
\r
166 <LITERAL2>Nothing</LITERAL2>
\r
167 <LITERAL2>Right</LITERAL2>
\r
168 <LITERAL2>True</LITERAL2>
\r
170 <OPERATOR>quot</OPERATOR>
\r
171 <OPERATOR>rem</OPERATOR>
\r
172 <OPERATOR>div</OPERATOR>
\r
173 <OPERATOR>mod</OPERATOR>
\r
174 <OPERATOR>elem</OPERATOR>
\r
175 <OPERATOR>notElem</OPERATOR>
\r
176 <OPERATOR>seq</OPERATOR>
\r