X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=time-http.git;a=blobdiff_plain;f=Data%2FTime%2FRFC822%2FParsec.hs;h=0ab2985c1413057b4fb9e73382a7e28bdccbf319;hp=138b9a4390232f5aadf53af2baf8c923b749c31f;hb=42ffc2dd3bba56145796d381e2570739c32d7d74;hpb=01d923fe509a76afa27efdc7370438c5d4900492 diff --git a/Data/Time/RFC822/Parsec.hs b/Data/Time/RFC822/Parsec.hs index 138b9a4..0ab2985 100644 --- a/Data/Time/RFC822/Parsec.hs +++ b/Data/Time/RFC822/Parsec.hs @@ -1,6 +1,11 @@ {-# LANGUAGE FlexibleContexts #-} +{-# OPTIONS_HADDOCK prune #-} + module Data.Time.RFC822.Parsec - ( parser + ( rfc822DateAndTime + + -- private + , rfc822time ) where @@ -11,9 +16,9 @@ import Data.Time.Calendar.WeekDate import Data.Time.HTTP.Common import Text.Parsec - -parser :: Stream s m Char => ParsecT s u m ZonedTime -parser = dateTime +-- |This is a parsec parser for RFC 822 date and time strings. +rfc822DateAndTime :: Stream s m Char => ParsecT s u m ZonedTime +rfc822DateAndTime = dateTime dateTime :: Stream s m Char => ParsecT s u m ZonedTime dateTime = do weekDay <- optionMaybe $ @@ -26,7 +31,7 @@ dateTime = do weekDay <- optionMaybe $ -> return () -- No day in week exists. Just givenWD -> assertWeekDayIsGood givenWD gregDay - (tod, timeZone) <- time + (tod, timeZone) <- rfc822time let lt = LocalTime gregDay tod zt = ZonedTime lt timeZone return zt @@ -38,13 +43,13 @@ date = do day <- read2 _ <- char ' ' year <- liftM (+ 1900) read2 _ <- char ' ' - assertGregorianDateIsGood (toInteger year) month day + assertGregorianDateIsGood year month day -time :: Stream s m Char => ParsecT s u m (TimeOfDay, TimeZone) -time = do tod <- hour - _ <- char ' ' - tz <- zone - return (tod, tz) +rfc822time :: Stream s m Char => ParsecT s u m (TimeOfDay, TimeZone) +rfc822time = do tod <- hour + _ <- char ' ' + tz <- zone + return (tod, tz) hour :: Stream s m Char => ParsecT s u m TimeOfDay hour = do hour <- read2