X-Git-Url: https://git.martlubbers.net/?p=cloogle-irc.git;a=blobdiff_plain;f=IRC.dcl;h=3c5a3d18516bef9480b8215153f0b9bf0bf36e82;hp=337d6f9c9b2878dc1b4095db58ed421dbb014bf7;hb=000d2eb9df3a1521626dc996b8f9f0281c55a6f1;hpb=a8fbb81c3108a913c6496553346037805157b9c0 diff --git a/IRC.dcl b/IRC.dcl index 337d6f9..3c5a3d1 100644 --- a/IRC.dcl +++ b/IRC.dcl @@ -1,19 +1,33 @@ definition module IRC -from Data.Either import :: Either from Data.Maybe import :: Maybe -from StdOverloaded import class fromInt, class toInt, class toString +from Data.Either import :: Either +from StdOverloaded import class fromInt, class toInt, class toString, class fromString + +:: IRCMessage = + { irc_prefix :: Maybe (Either String IRCUser) + , irc_command :: IRCCommand} + +:: IRCUser = + { irc_nick :: String + , irc_user :: Maybe String + , irc_host :: Maybe String + } + +instance toString IRCCommand, IRCReplies, IRCErrors, IRCMessage, IRCUser +instance fromInt IRCReplies, IRCErrors +instance toInt IRCReplies, IRCErrors -:: IRCCommands +:: IRCCommand = ADMIN (Maybe String) | AWAY String - | CONNECT String Int (Maybe String) + | CONNECT String (Maybe (Int, Maybe String)) | DIE | ERROR String | INFO (Maybe String) | INVITE String String | ISON [String] - | JOIN (Either () [(String, Maybe String)]) + | JOIN [(String, Maybe String)] | KICK String String (Maybe String) | KILL String String | LINKS (Maybe (Maybe String, String)) @@ -28,8 +42,8 @@ from StdOverloaded import class fromInt, class toInt, class toString | OPER String String | PART [String] | PASS String - | PING [String] - | PONG [String] + | PING String (Maybe String) + | PONG String (Maybe String) | PRIVMSG String String | QUIT (Maybe String) | REHASH @@ -91,7 +105,3 @@ from StdOverloaded import class fromInt, class toInt, class toString ERR_NOPRIVILEGES | ERR_CHANOPRIVSNEEDED | ERR_CANTKILLSERVER | ERR_RESTRICTED | ERR_UNIQOPPRIVSNEEDED | ERR_NOOPERHOST | ERR_UMODEUNKNOWNFLAG | ERR_USERSDONTMATCH - -instance toString IRCCommands, IRCReplies, IRCErrors -instance fromInt IRCReplies, IRCErrors -instance toInt IRCReplies, IRCErrors