X-Git-Url: https://git.martlubbers.net/?p=cloogle-irc.git;a=blobdiff_plain;f=IRC.dcl;h=59a342bd21faab926a33218a317ed0ac56f45ff8;hp=0fffb7e6918cfcb6482235c26505915dc605c0b9;hb=ceec25a9ebb2fa231d68e58d05f77c449d7d7590;hpb=663ea3d6dfb6a70ddf1f3b6c41d4d39ed30c4440 diff --git a/IRC.dcl b/IRC.dcl index 0fffb7e..59a342b 100644 --- a/IRC.dcl +++ b/IRC.dcl @@ -1,12 +1,20 @@ definition module IRC +import IRCBot from Data.Maybe import :: Maybe from Data.Either import :: Either from StdOverloaded import class fromInt, class toInt, class toString, class fromString +from Text.Parsers.Simple.Core import :: Error :: IRCMessage = { irc_prefix :: Maybe (Either String IRCUser) - , irc_command :: IRCCommand} + , irc_command :: Either IRCNumReply IRCCommand} + +:: IRCNumReply = + { irc_reply :: IRCReplies + , irc_recipient :: String + , irc_message :: String + } :: IRCUser = { irc_nick :: String @@ -14,7 +22,9 @@ from StdOverloaded import class fromInt, class toInt, class toString, class from , irc_host :: Maybe String } -instance toString IRCCommand, IRCReplies, IRCErrors, IRCMessage, IRCUser +parseIRCMessage :: String -> Either [Error] IRCMessage + +instance toString IRCCommand, IRCReplies, IRCErrors, IRCMessage, IRCUser, IRCNumReply instance fromInt IRCReplies, IRCErrors instance toInt IRCReplies, IRCErrors