summaryrefslogtreecommitdiff
path: root/Hsbot/IRCParser.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Hsbot/IRCParser.hs')
-rw-r--r--Hsbot/IRCParser.hs51
1 files changed, 0 insertions, 51 deletions
diff --git a/Hsbot/IRCParser.hs b/Hsbot/IRCParser.hs
deleted file mode 100644
index d284377..0000000
--- a/Hsbot/IRCParser.hs
+++ /dev/null
@@ -1,51 +0,0 @@
-module Hsbot.IRCParser
- ( ParseError
- , parseIrcMsg
- , serializeIrcMsg
- ) where
-
-import Control.Monad.Identity
-import Text.Parsec
-
-import Hsbot.Types
-
--- | Parses an IrcInput
-parseIrcMsg :: String -> Either ParseError IrcMsg
-parseIrcMsg line = parse pMsg "" line
-
-pMsg :: ParsecT String u Identity IrcMsg
-pMsg = do
- pfx <- optionMaybe pPrefix
- cmd <- pCommand
- params <- many (char ' ' >> (pLongParam <|> pShortParam))
- _ <- char '\r'
- --eof
- return $ IrcMsg pfx cmd params
-
-pPrefix :: ParsecT String u Identity [Char]
-pPrefix = do
- _ <- char ':'
- pfx <- many1 (noneOf " ")
- _ <- space
- return pfx
-
-pCommand :: ParsecT String u Identity [Char]
-pCommand = count 3 digit <|> many1 upper
-
-pLongParam :: ParsecT String u Identity [Char]
-pLongParam = char ':' >> (many1 (noneOf "\r"))
-
-pShortParam :: ParsecT String u Identity [Char]
-pShortParam = many1 (noneOf " \r")
-
--- |Serialize an IRC message to a string.
-serializeIrcMsg :: IrcMsg -> String
-serializeIrcMsg (IrcMsg pfx cmd params) = pfxStr ++ cmd ++ paramStr
- where pfxStr = case pfx of
- Nothing -> ""
- Just pfx' -> ":" ++ pfx' ++ " "
- paramStr = concat (map paramToStr (init params)
- ++ [lastParamToStr (last params)])
- paramToStr p = " " ++ p
- lastParamToStr p = " :" ++ p
-