]> gitweb @ CieloNegro.org - time-http.git/blobdiff - Data/Time/RFC822/Parsec.hs
Finished docs
[time-http.git] / Data / Time / RFC822 / Parsec.hs
index 138b9a4390232f5aadf53af2baf8c923b749c31f..0ab2985c1413057b4fb9e73382a7e28bdccbf319 100644 (file)
@@ -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