|
Agda.Syntax.Parser.LookAhead |
|
|
|
|
Description |
When lexing by hands (for instance string literals) we need to do some
looking ahead. The LookAhead monad keeps track of the position we are
currently looking at, and provides facilities to synchronise the look-ahead
position with the actual position of the Parser monad (see sync and
rollback).
|
|
Synopsis |
|
|
|
|
The LookAhead monad
|
|
|
The LookAhead monad is basically a state monad keeping with an extra
AlexInput, wrapped around the Parser monad.
|
|
|
|
Run a LookAhead computation. The first argument is the error function.
|
|
Operations
|
|
|
Get the current look-ahead position.
|
|
|
Set the look-ahead position.
|
|
|
Lift a computation in the Parser monad to the LookAhead monad.
|
|
|
Look at the next character. Fails if there are no more characters.
|
|
|
Consume the next character. Does nextChar followed by sync.
|
|
|
Consume all the characters up to the current look-ahead position.
|
|
|
Undo look-ahead. Restores the input from the ParseState.
|
|
|
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.
|
|
|
Same as match but takes the initial character from the first argument
instead of reading it from the input. Consequently, in the default case
the input is not advanced.
|
|
Produced by Haddock version 2.6.1 |