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 :: IRCCommands}
+ { irc_prefix :: Maybe (Either IRCUser String)
+ , irc_command :: Either IRCNumReply IRCCommand}
+
+:: IRCNumReply =
+ { irc_reply :: IRCReplies
+ , irc_recipient :: String
+ , irc_message :: String
+ }
:: IRCUser =
{ irc_nick :: String
, irc_host :: Maybe String
}
-instance toString IRCCommands, 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
-:: IRCCommands
+:: IRCCommand
= ADMIN (Maybe String)
| AWAY String
- | CONNECT String Int (Maybe String)
+ | CONNECT String (Maybe (Int, Maybe String))
| DIE
| ERROR String
| INFO (Maybe String)
| 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
| PASS String
| PING String (Maybe String)
| PONG String (Maybe String)
- | PRIVMSG String String
+ | PRIVMSG [String] String
| QUIT (Maybe String)
| REHASH
| RESTART
| 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)