packages feed

list-t-html-parser 0.1.0.0 → 0.2.0.0

raw patch · 2 files changed

+18/−9 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- ListT.HTMLParser: EOI :: ErrorDetails
- ListT.HTMLParser: UnexpectedToken :: ErrorDetails
+ ListT.HTMLParser: ErrorDetails_EOI :: ErrorDetails
+ ListT.HTMLParser: ErrorDetails_Message :: Text -> ErrorDetails
+ ListT.HTMLParser: ErrorDetails_UnexpectedToken :: ErrorDetails

Files

library/ListT/HTMLParser.hs view
@@ -29,19 +29,28 @@ -- A backtracking HTML parser. newtype Parser m a =   Parser { unwrap :: EitherT Error (StateT (ListT m HT.Token, [HT.Token]) m) a }-  deriving (Functor, Applicative, Monad, MonadError Error)+  deriving (Functor, Applicative, MonadError Error)  -- |  type Error =   Maybe ErrorDetails  data ErrorDetails =+  -- | A text message+  ErrorDetails_Message Text |   -- | Unexpected token-  UnexpectedToken |+  ErrorDetails_UnexpectedToken |   -- | End of input-  EOI+  ErrorDetails_EOI   deriving (Show) +instance Monad m => Monad (Parser m) where+  return =+    Parser . return+  (>>=) a b =+    Parser $ unwrap a >>= unwrap . b+  fail a =+    throwError $ Just $ ErrorDetails_Message $ fromString a  instance Monad m => Alternative (Parser m) where   empty =@@ -69,7 +78,7 @@ token :: Monad m => Parser m HT.Token token =   Parser $ EitherT $ StateT $ \(incoming, backtrack) -> -  liftM (maybe (Left (Just EOI), (incoming, backtrack)) +  liftM (maybe (Left (Just ErrorDetails_EOI), (incoming, backtrack))                 (\(a, incoming') -> (Right a, (incoming', a : backtrack)))) $    L.uncons incoming @@ -77,25 +86,25 @@ openingTag =   token >>= \case     HT.Token_OpeningTag x -> return x-    _ -> throwError (Just UnexpectedToken)+    _ -> throwError (Just ErrorDetails_UnexpectedToken)  closingTag :: Monad m => Parser m HT.ClosingTag closingTag =   token >>= \case     HT.Token_ClosingTag x -> return x-    _ -> throwError (Just UnexpectedToken)+    _ -> throwError (Just ErrorDetails_UnexpectedToken)  text :: Monad m => Parser m Text text =   token >>= \case     HT.Token_Text x -> return x-    _ -> throwError (Just UnexpectedToken)+    _ -> throwError (Just ErrorDetails_UnexpectedToken)  comment :: Monad m => Parser m Text comment =   token >>= \case     HT.Token_Comment x -> return x-    _ -> throwError (Just UnexpectedToken)+    _ -> throwError (Just ErrorDetails_UnexpectedToken)  manyTill :: Monad m => Parser m a -> Parser m b -> Parser m ([a], b) manyTill a b =
list-t-html-parser.cabal view
@@ -1,7 +1,7 @@ name:   list-t-html-parser version:-  0.1.0.0+  0.2.0.0 synopsis:   Streaming HTML parser category: