module Data.Aviation.Aip.Month(
Month(..)
, parseMonth
, HasMonth(..)
, AsMonth(..)
) where
import Text.Parser.Combinators(choice, try)
import Text.Parser.Char(CharParsing, string)
import Papa
data Month =
Jan
| Feb
| Mar
| Apr
| May
| Jun
| Jul
| Aug
| Sep
| Oct
| Nov
| Dec
deriving (Eq, Ord, Show)
parseMonth ::
CharParsing p =>
p Month
parseMonth =
choice
[
Jan <$ string "Jan"
, Feb <$ try (string "Feb")
, Mar <$ try (string "Mar")
, Apr <$ try (string "Apr")
, May <$ try (string "May")
, Jun <$ try (string "Jun")
, Jul <$ try (string "Jul")
, Aug <$ try (string "Aug")
, Sep <$ try (string "Sep")
, Oct <$ try (string "Oct")
, Nov <$ try (string "Nov")
, Dec <$ try (string "Dec")
]
makeClassy ''Month
makeClassyPrisms ''Month