Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data LookAhead a
- runLookAhead :: (forall b. String -> LookAhead b) -> LookAhead a -> Parser a
- lookAheadError :: String -> LookAhead a
- getInput :: LookAhead AlexInput
- setInput :: AlexInput -> LookAhead ()
- liftP :: Parser a -> LookAhead a
- nextChar :: LookAhead Char
- eatNextChar :: LookAhead Char
- sync :: LookAhead ()
- rollback :: LookAhead ()
- match :: [(String, LookAhead a)] -> LookAhead a -> LookAhead a
- match' :: Char -> [(String, LookAhead a)] -> LookAhead a -> LookAhead a
The LookAhead monad
The LookAhead monad is basically a state monad keeping with an extra
AlexInput
, wrapped around the Parser
monad.
runLookAhead :: (forall b. String -> LookAhead b) -> LookAhead a -> Parser a Source #
Run a LookAhead
computation. The first argument is the error function.
Operations
lookAheadError :: String -> LookAhead a Source #
Throw an error message according to the supplied method.
nextChar :: LookAhead Char Source #
Look at the next character. Fails if there are no more characters.
rollback :: LookAhead () Source #
Undo look-ahead. Restores the input from the ParseState
.
match :: [(String, LookAhead a)] -> LookAhead a -> LookAhead a Source #
Do a case on the current input string. If any of the given strings match we move past it and execute the corresponding action. If no string matches, we execute a default action, advancing the input one character. This function only affects the look-ahead position.