base- Basic libraries

Portabilitynon-portable (uses Text.ParserCombinators.ReadP)
Safe HaskellTrustworthy




This library defines parser combinators for precedence parsing.




Precedence operations

lift :: ReadP a -> ReadPrec aSource

Lift a precedence-insensitive ReadP to a ReadPrec.

prec :: Prec -> ReadPrec a -> ReadPrec aSource

(prec n p) checks whether the precedence context is less than or equal to n, and

  • if not, fails
  • if so, parses p in context n.

step :: ReadPrec a -> ReadPrec aSource

Increases the precedence context by one.

reset :: ReadPrec a -> ReadPrec aSource

Resets the precedence context to zero.

Other operations

All are based directly on their similarly-named ReadP counterparts.

get :: ReadPrec CharSource

Consumes and returns the next character. Fails if there is no input left.

look :: ReadPrec StringSource

Look-ahead: returns the part of the input that is left, without consuming it.

(+++) :: ReadPrec a -> ReadPrec a -> ReadPrec aSource

Symmetric choice.

(<++) :: ReadPrec a -> ReadPrec a -> ReadPrec aSource

Local, exclusive, left-biased choice: If left parser locally produces any result at all, then right parser is not used.

pfail :: ReadPrec aSource

Always fails.

choice :: [ReadPrec a] -> ReadPrec aSource

Combines all parsers in the specified list.