Safe Haskell | None |
---|---|
Language | Haskell2010 |
The parser monad used by the operator parser
Synopsis
- data MemoKey
- type PrecedenceKey = Either PrecedenceLevel PrecedenceLevel
- type Parser tok a = Parser MemoKey tok (MaybePlaceholder tok) a
- parse :: Parser tok a -> [MaybePlaceholder tok] -> [a]
- sat' :: (MaybePlaceholder tok -> Maybe a) -> Parser tok a
- sat :: (MaybePlaceholder tok -> Bool) -> Parser tok (MaybePlaceholder tok)
- doc :: Doc -> Parser tok a -> Parser tok a
- memoise :: MemoKey -> Parser tok tok -> Parser tok tok
- memoiseIfPrinting :: MemoKey -> Parser tok tok -> Parser tok tok
- grammar :: Parser tok a -> Doc
Documentation
Memoisation keys.
Instances
parse :: Parser tok a -> [MaybePlaceholder tok] -> [a] Source #
Runs the parser.
sat' :: (MaybePlaceholder tok -> Maybe a) -> Parser tok a Source #
Parses a token satisfying the given predicate. The computed value is returned.
sat :: (MaybePlaceholder tok -> Bool) -> Parser tok (MaybePlaceholder tok) Source #
Parses a token satisfying the given predicate.
doc :: Doc -> Parser tok a -> Parser tok a Source #
Uses the given document as the printed representation of the
given parser. The document's precedence is taken to be atomP
.
memoise :: MemoKey -> Parser tok tok -> Parser tok tok Source #
Memoises the given parser.
Every memoised parser must be annotated with a unique key. (Parametrised parsers must use distinct keys for distinct inputs.)