headed-megaparsec-0.1: library/HeadedMegaparsec/Megaparsec.hs
{-|
Extra megaparsec combinators.
-}
module HeadedMegaparsec.Megaparsec
where
import HeadedMegaparsec.Prelude hiding (try, head, body)
import Text.Megaparsec hiding (some, endBy1, someTill, sepBy1, sepEndBy1)
import Text.Megaparsec.Char
import Control.Applicative.Combinators
import qualified Text.Megaparsec.Char.Lexer as Lexer
contPossibly :: (Ord err, Stream strm) => Parsec err strm (Either a (Parsec err strm a)) -> Parsec err strm a
contPossibly p = do
junction <- try p
case junction of
Left a -> return a
Right cont -> cont