1 implementation module IRC
6 from StdMisc import undef
8 derive gPrint IRCCommands, IRCReplies, IRCErrors, (,), Maybe, ()
10 instance toString IRCCommands where toString r = printToString r
11 instance toString IRCReplies where toString r = printToString r
12 instance toString IRCErrors where toString r = printToString r
14 instance fromInt IRCReplies where
22 201 = RPL_TRACECONNECTING
23 202 = RPL_TRACEHANDSHAKE
24 203 = RPL_TRACEUNKNOWN
25 204 = RPL_TRACEOPERATOR
28 207 = RPL_TRACESERVICE
29 208 = RPL_TRACENEWTYPE
31 210 = RPL_TRACERECONNECT
32 211 = RPL_STATSLINKINFO
33 212 = RPL_STATSCOMMANDS
42 253 = RPL_LUSERUNKNOWN
43 254 = RPL_LUSERCHANNELS
59 313 = RPL_WHOISOPERATOR
64 319 = RPL_WHOISCHANNELS
68 324 = RPL_CHANNELMODEIS
75 347 = RPL_ENDOFINVITELIST
77 349 = RPL_ENDOFEXCEPTLIST
85 368 = RPL_ENDOFBANLIST
94 383 = RPL_YOURESERVICE
102 instance toInt IRCReplies where
110 RPL_TRACECONNECTING = 201
111 RPL_TRACEHANDSHAKE = 202
112 RPL_TRACEUNKNOWN = 203
113 RPL_TRACEOPERATOR = 204
115 RPL_TRACESERVER = 206
116 RPL_TRACESERVICE = 207
117 RPL_TRACENEWTYPE = 208
119 RPL_TRACERECONNECT = 210
120 RPL_STATSLINKINFO = 211
121 RPL_STATSCOMMANDS = 212
125 RPL_SERVLISTEND = 234
126 RPL_STATSUPTIME = 242
128 RPL_LUSERCLIENT = 251
130 RPL_LUSERUNKNOWN = 253
131 RPL_LUSERCHANNELS = 254
146 RPL_WHOISSERVER = 312
147 RPL_WHOISOPERATOR = 313
152 RPL_WHOISCHANNELS = 319
156 RPL_CHANNELMODEIS = 324
163 RPL_ENDOFINVITELIST = 347
165 RPL_ENDOFEXCEPTLIST = 349
173 RPL_ENDOFBANLIST = 367
174 RPL_ENDOFWHOWAS = 369
182 RPL_YOURESERVICE = 383
189 instance fromInt IRCErrors where
190 fromInt r = case r of
192 402 = ERR_NOSUCHSERVER
193 403 = ERR_NOSUCHCHANNEL
194 404 = ERR_CANNOTSENDTOCHAN
195 405 = ERR_TOOMANYCHANNELS
196 406 = ERR_WASNOSUCHNICK
197 407 = ERR_TOOMANYTARGETS
198 408 = ERR_NOSUCHSERVICE
200 411 = ERR_NORECIPIENT
201 412 = ERR_NOTEXTTOSEND
203 414 = ERR_WILDTOPLEVEL
205 421 = ERR_UNKNOWNCOMMAND
207 423 = ERR_NOADMININFO
209 431 = ERR_NONICKNAMEGIVEN
210 432 = ERR_ERRONEUSNICKNAME
211 433 = ERR_NICKNAMEINUSE
212 436 = ERR_NICKCOLLISION
213 437 = ERR_UNAVAILRESOURCE
214 441 = ERR_USERNOTINCHANNEL
215 442 = ERR_NOTONCHANNEL
216 443 = ERR_USERONCHANNEL
218 445 = ERR_SUMMONDISABLED
219 446 = ERR_USERSDISABLED
220 451 = ERR_NOTREGISTERED
221 461 = ERR_NEEDMOREPARAMS
222 462 = ERR_ALREADYREGISTRED
223 463 = ERR_NOPERMFORHOST
224 464 = ERR_PASSWDMISMATCH
225 465 = ERR_YOUREBANNEDCREEP
226 466 = ERR_YOUWILLBEBANNED
228 471 = ERR_CHANNELISFULL
229 472 = ERR_UNKNOWNMODE
230 473 = ERR_INVITEONLYCHAN
231 474 = ERR_BANNEDFROMCHAN
232 475 = ERR_BADCHANNELKEY
233 476 = ERR_BADCHANMASK
234 477 = ERR_NOCHANMODES
235 478 = ERR_BANLISTFULL
236 481 = ERR_NOPRIVILEGES
237 482 = ERR_CHANOPRIVSNEEDED
238 483 = ERR_CANTKILLSERVER
240 485 = ERR_UNIQOPPRIVSNEEDED
242 501 = ERR_UMODEUNKNOWNFLAG
243 502 = ERR_USERSDONTMATCH
245 instance toInt IRCErrors where
248 ERR_NOSUCHSERVER = 402
249 ERR_NOSUCHCHANNEL = 403
250 ERR_CANNOTSENDTOCHAN = 404
251 ERR_TOOMANYCHANNELS = 405
252 ERR_WASNOSUCHNICK = 406
253 ERR_TOOMANYTARGETS = 407
254 ERR_NOSUCHSERVICE = 408
256 ERR_NORECIPIENT = 411
257 ERR_NOTEXTTOSEND = 412
259 ERR_WILDTOPLEVEL = 414
261 ERR_UNKNOWNCOMMAND = 421
263 ERR_NOADMININFO = 423
265 ERR_NONICKNAMEGIVEN = 431
266 ERR_ERRONEUSNICKNAME = 432
267 ERR_NICKNAMEINUSE = 433
268 ERR_NICKCOLLISION = 436
269 ERR_UNAVAILRESOURCE = 437
270 ERR_USERNOTINCHANNEL = 441
271 ERR_NOTONCHANNEL = 442
272 ERR_USERONCHANNEL = 443
274 ERR_SUMMONDISABLED = 445
275 ERR_USERSDISABLED = 446
276 ERR_NOTREGISTERED = 451
277 ERR_NEEDMOREPARAMS = 461
278 ERR_ALREADYREGISTRED = 462
279 ERR_NOPERMFORHOST = 463
280 ERR_PASSWDMISMATCH = 464
281 ERR_YOUREBANNEDCREEP = 465
282 ERR_YOUWILLBEBANNED = 466
284 ERR_CHANNELISFULL = 471
285 ERR_UNKNOWNMODE = 472
286 ERR_INVITEONLYCHAN = 473
287 ERR_BANNEDFROMCHAN = 474
288 ERR_BADCHANNELKEY = 475
289 ERR_BADCHANMASK = 476
290 ERR_NOCHANMODES = 477
291 ERR_BANLISTFULL = 478
292 ERR_NOPRIVILEGES = 481
293 ERR_CHANOPRIVSNEEDED = 482
294 ERR_CANTKILLSERVER = 483
296 ERR_UNIQOPPRIVSNEEDED = 485
298 ERR_UMODEUNKNOWNFLAG = 501
299 ERR_USERSDONTMATCH = 502