Safe Haskell | None |
---|
- class InputState state s pos | state -> s, state -> pos where
- splitStateE :: state -> Either' state s
- splitState :: state -> (#s, state#)
- getPosition :: state -> pos
- reportError :: Message s pos -> state -> state
- insertSymbol :: s -> state -> state
- deleteSymbol :: s -> state -> state
- class OutputState r where
- class Symbol s where
- deleteCost :: s -> Int#
- symBefore :: s -> s
- symAfter :: s -> s
- data Either' state s
- data Steps val s p
- data Action s
- val :: (a -> b) -> Steps a s p -> Steps b s p
- evalSteps :: Steps a s p -> a
- getMsgs :: Steps a s p -> [Message s p]
- data Message sym pos = Msg (Expecting sym) !pos (Action sym)
- data Expecting s
- data SymbolR s
- mk_range :: Ord s => s -> s -> SymbolR s
- symInRange :: Ord a => SymbolR a -> a -> Bool
- symRS :: Ord a => SymbolR a -> a -> Ordering
- except :: (Ord a, Symbol a) => SymbolR a -> [a] -> [SymbolR a]
- usererror :: [Char] -> t
- systemerror :: [Char] -> [Char] -> t
Documentation
class InputState state s pos | state -> s, state -> pos whereSource
The InputState
class contains the interface that the AnaParser
parsers expect for the input. A minimal complete instance definition
consists of splitStateE
, splitState
and getPosition
.
splitStateE :: state -> Either' state sSource
Splits the state in a strict variant of Either
, with Left'
if a symbol
can be split off and Right'
if none can
splitState :: state -> (#s, state#)Source
Splits the state in the first symbol and the remaining state
getPosition :: state -> posSource
Gets the current position in the input
reportError :: Message s pos -> state -> stateSource
Reports an error
insertSymbol :: s -> state -> stateSource
Modify the state as the result of inserting a symbol s
in the input.
The symbol that has already been considered as having been inserted
is passed. It should normally not be added to the state.
deleteSymbol :: s -> state -> stateSource
Modify the state as the result of deleting a symbol s
from the input.
The symbol that has already been deleted from the input state is passed.
It should normally not be deleted from the state.
InputState Input Char Pos | |
InputState [s] s (Maybe s) | |
InputState inp s p => InputState (inp, state) s p | |
InputState inp s p => InputState (OffsideInput inp s p) (OffsideSymbol s) p |
class OutputState r whereSource
symInRange :: Ord a => SymbolR a -> a -> BoolSource
systemerror :: [Char] -> [Char] -> tSource