| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
Agda.Syntax.Concrete.Operators.Parser.Monad
Description
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 :: forall tok a. 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.
Constructors
| NodeK PrecedenceKey | |
| PostLeftsK PrecedenceKey | |
| PreRightsK PrecedenceKey | |
| TopK | |
| AppK | |
| NonfixK | 
Instances
parse :: forall tok a. 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.)