X-Git-Url: https://git.martlubbers.net/?p=cloogle-irc.git;a=blobdiff_plain;f=IRC.dcl;h=0fffb7e6918cfcb6482235c26505915dc605c0b9;hp=d88205b379dc0e0963f6ff3d1fc0da88bac976fc;hb=663ea3d6dfb6a70ddf1f3b6c41d4d39ed30c4440;hpb=8b7012942d09004336c8dc64d6a00d320d42220e diff --git a/IRC.dcl b/IRC.dcl index d88205b..0fffb7e 100644 --- a/IRC.dcl +++ b/IRC.dcl @@ -1,12 +1,27 @@ definition module IRC 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 -:: IRCCommands +:: 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 + +:: IRCCommand = ADMIN (Maybe String) | AWAY String - | CONNECT String Int (Maybe String) + | CONNECT String (Maybe (Int, Maybe String)) | DIE | ERROR String | INFO (Maybe String) @@ -16,12 +31,12 @@ from StdOverloaded import class fromInt, class toInt, class toString | KICK String String (Maybe String) | KILL String String | LINKS (Maybe (Maybe String, String)) - | LIST [String] + | LIST (Maybe ([String], Maybe String)) | LUSERS (Maybe (String, Maybe String)) - | MODE String + | MODE String String (Maybe String) (Maybe String) (Maybe String) | MOTD (Maybe String) | NAMES [String] - | NICK String + | NICK String (Maybe String) | NJOIN | NOTICE String String | OPER String String @@ -29,7 +44,7 @@ from StdOverloaded import class fromInt, class toInt, class toString | PASS String | PING String (Maybe String) | PONG String (Maybe String) - | PRIVMSG String String + | PRIVMSG [String] String | QUIT (Maybe String) | REHASH | RESTART @@ -44,7 +59,7 @@ from StdOverloaded import class fromInt, class toInt, class toString | TIME (Maybe String) | TOPIC String (Maybe String) | TRACE (Maybe String) - | USER String Int String + | USER String String String | USERHOST [String] | USERS (Maybe String) | VERSION (Maybe String) @@ -90,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