-- | Mid-level parsers for XML comments -- -- All documentation examples assume the following setup: -- -- > :set -XOverloadedStrings -- > import Data.Attoparsec.ByteString module Data.XML.Parser.Mid.Comment where import Control.Monad.Compat import Data.Text (Text) import qualified Data.Text as Text import Data.XML.Parser.Low import Text.Parser.Char import Text.Parser.Combinators -- $setup -- >>> :set -XOverloadedStrings -- >>> import Data.Attoparsec.ByteString -- | -- -- >>> parseOnly comment "" -- Right " declarations for & " -- >>> parseOnly comment "" -- Right " B+, B, or B-" comment :: CharParsing m => Monad m => m Text comment = do tokenCommentOpen content <- manyTill anyChar $ try tokenCommentClose return $ Text.pack content