base-4.18.1.0: Basic libraries

Copyright | (c) The University of Glasgow 2002
License | BSD-style (see the file libraries/base/LICENSE)
Maintainer | libraries@haskell.org
Stability | provisional
Portability | non-portable (uses Text.ParserCombinators.ReadP)
Safe Haskell | Trustworthy
Language | Haskell2010

Text.ParserCombinators.ReadPrec

Contents

- Precedences
- Precedence operations
- Other operations
- Converters

Description

This library defines parser combinators for precedence parsing.

Synopsis

- data ReadPrec a
- type Prec = Int
- minPrec :: Prec
- lift :: ReadP a -> ReadPrec a
- prec :: Prec -> ReadPrec a -> ReadPrec a
- step :: ReadPrec a -> ReadPrec a
- reset :: ReadPrec a -> ReadPrec a
- get :: ReadPrec Char
- look :: ReadPrec String
- (+++) :: ReadPrec a -> ReadPrec a -> ReadPrec a
- (<++) :: ReadPrec a -> ReadPrec a -> ReadPrec a
- pfail :: ReadPrec a
- choice :: [ReadPrec a] -> ReadPrec a
- readPrec_to_P :: ReadPrec a -> Int -> ReadP a
- readP_to_Prec :: (Int -> ReadP a) -> ReadPrec a
- readPrec_to_S :: ReadPrec a -> Int -> ReadS a
- readS_to_Prec :: (Int -> ReadS a) -> ReadPrec a

# Documentation

data ReadPrec a Source #

#### Instances

Instances details

MonadFail ReadPrec Source # | Since: base-4.9.0.0
Instance details Defined in Text.ParserCombinators.ReadPrec Methods fail :: String -> ReadPrec a Source #
Alternative ReadPrec Source # | Since: base-4.6.0.0
Instance details Defined in Text.ParserCombinators.ReadPrec Methods empty :: ReadPrec a Source # (<|>) :: ReadPrec a -> ReadPrec a -> ReadPrec a Source # some :: ReadPrec a -> ReadPrec [a] Source # many :: ReadPrec a -> ReadPrec [a] Source #
Applicative ReadPrec Source # | Since: base-4.6.0.0
Instance details Defined in Text.ParserCombinators.ReadPrec Methods pure :: a -> ReadPrec a Source # (<*>) :: ReadPrec (a -> b) -> ReadPrec a -> ReadPrec b Source # liftA2 :: (a -> b -> c) -> ReadPrec a -> ReadPrec b -> ReadPrec c Source # (*>) :: ReadPrec a -> ReadPrec b -> ReadPrec b Source # (<*) :: ReadPrec a -> ReadPrec b -> ReadPrec a Source #
Functor ReadPrec Source # | Since: base-2.1
Instance details Defined in Text.ParserCombinators.ReadPrec Methods fmap :: (a -> b) -> ReadPrec a -> ReadPrec b Source # (<$) :: a -> ReadPrec b -> ReadPrec a Source #
Monad ReadPrec Source # | Since: base-2.1
Instance details Defined in Text.ParserCombinators.ReadPrec Methods (>>=) :: ReadPrec a -> (a -> ReadPrec b) -> ReadPrec b Source # (>>) :: ReadPrec a -> ReadPrec b -> ReadPrec b Source # return :: a -> ReadPrec a Source #
MonadPlus ReadPrec Source # | Since: base-2.1
Instance details Defined in Text.ParserCombinators.ReadPrec Methods mzero :: ReadPrec a Source # mplus :: ReadPrec a -> ReadPrec a -> ReadPrec a Source #

# Precedences

type Prec = Int Source #

minPrec :: Prec Source #

# Precedence operations

lift :: ReadP a -> ReadPrec a Source #

Lift a precedence-insensitive `ReadP` to a `ReadPrec`.

prec :: Prec -> ReadPrec a -> ReadPrec a Source #

`(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 a Source #

Increases the precedence context by one.

reset :: ReadPrec a -> ReadPrec a Source #

Resets the precedence context to zero.

# Other operations

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

get :: ReadPrec Char Source #

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

look :: ReadPrec String Source #

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

(+++) :: ReadPrec a -> ReadPrec a -> ReadPrec a Source #

Symmetric choice.

(<++) :: ReadPrec a -> ReadPrec a -> ReadPrec a Source #

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

pfail :: ReadPrec a Source #

Always fails.

choice :: [ReadPrec a] -> ReadPrec a Source #

Combines all parsers in the specified list.

# Converters

readPrec_to_P :: ReadPrec a -> Int -> ReadP a Source #

readP_to_Prec :: (Int -> ReadP a) -> ReadPrec a Source #

readPrec_to_S :: ReadPrec a -> Int -> ReadS a Source #

readS_to_Prec :: (Int -> ReadS a) -> ReadPrec a Source #