Portability | non-portable (not tested) |
---|---|
Stability | experimental |
Maintainer | trevor@geekgateway.com |
library for parsing IRC messages
- type Parameter = String
- type ServerName = String
- type UserName = String
- type RealName = String
- type Command = String
- data Prefix
- = Server ServerName
- | NickName String (Maybe UserName) (Maybe ServerName)
- data Message = Message (Maybe Prefix) Command [Parameter]
- parseMessage :: String -> Maybe Message
- formatMessage :: Message -> String
- translateReply :: Command -> String
- prefix :: CharParser st Prefix
- server :: CharParser st Prefix
- nickname :: CharParser st Prefix
- command :: CharParser st Command
- parameter :: CharParser st Parameter
- message :: CharParser st Message
- crlf :: CharParser st ()
- spaces :: CharParser st ()
- maybeP :: GenParser tok st a -> GenParser tok st (Maybe a)
- tokenize :: CharParser st a -> CharParser st a
- takeUntil :: String -> CharParser st String
Type Synonyms
type ServerName = StringSource
IRC Datatypes
The optional beginning of an IRC messages
Server ServerName | Server Prefix |
NickName String (Maybe UserName) (Maybe ServerName) | Nickname Prefix |
IRC messages are parsed as:
[ :
prefix space ] command { space param } crlf
Parsing and Formatting Functions
Parse a String into a Message.
Translate a reply into the text version of the reply. If no text version is available, the argument is returned.
Parsec Combinators for Parsing IRC messages
prefix :: CharParser st PrefixSource
Parse a Prefix
server :: CharParser st PrefixSource
Parse a Server prefix
nickname :: CharParser st PrefixSource
Parse a NickName prefix
command :: CharParser st CommandSource
Parse a command. Either a string of capital letters, or 3 digits.
parameter :: CharParser st ParameterSource
Parse a command parameter.
message :: CharParser st MessageSource
Parse a Message
crlf :: CharParser st ()Source
Parse a cr lf
spaces :: CharParser st ()Source
Consume only spaces tabs or the bell character
Other Parser Combinators
maybeP :: GenParser tok st a -> GenParser tok st (Maybe a)Source
Convert a parser into an optional one that returns a Maybe
tokenize :: CharParser st a -> CharParser st aSource
Convert a parser that consumes all space after it
takeUntil :: String -> CharParser st StringSource
Take all tokens until one character from a given string is found