| Copyright | (c) Iavor S. Diatchki 2009 |
|---|---|
| License | BSD3 |
| Maintainer | iavor.diatchki@gmail.com |
| Stability | provisional |
| Safe Haskell | Safe |
| Language | Haskell98 |
Parsimony.UserState
Description
Support for parsers with custom state.
- type ParserU u s = Parser (UserState u s)
- data UserState user stream = UserState {
- userState :: !user
- parserStream :: !stream
- lifted :: Parser s a -> ParserU u s a
- getUserState :: ParserU u s u
- setUserState :: u -> ParserU u s ()
- updateUserState :: (u -> u) -> ParserU u s ()
- uparse :: ParserU u s a -> u -> s -> Either ParseError a
- uparseSource :: ParserU u s a -> u -> SourceName -> s -> Either ParseError a
Documentation
An input stream annotated with some user state.
Constructors
| UserState | |
Fields
| |
lifted :: Parser s a -> ParserU u s a #
Turn a parser without user space into ine that supports user state manipulation.
getUserState :: ParserU u s u #
Get the user state.
setUserState :: u -> ParserU u s () #
Set the user state.
updateUserState :: (u -> u) -> ParserU u s () #
Update the user state.
uparse :: ParserU u s a -> u -> s -> Either ParseError a #
uparseSource :: ParserU u s a -> u -> SourceName -> s -> Either ParseError a #