Safe Haskell | None |
---|---|
Language | Haskell98 |
UU.Parsing.MachineInterface
- class InputState state s pos | state -> s, state -> pos where
- class OutputState r where
- class Symbol s where
- 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 :: (Symbol s, Ord s, Foldable t) => SymbolR s -> t s -> [SymbolR s]
- usererror :: [Char] -> a
- systemerror :: [Char] -> [Char] -> a
Documentation
class InputState state s pos | state -> s, state -> pos where Source #
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
.
Minimal complete definition
Methods
splitStateE :: state -> Either' state s Source #
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 -> pos Source #
Gets the current position in the input
reportError :: Message s pos -> state -> state Source #
Reports an error
insertSymbol :: s -> state -> state Source #
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 -> state Source #
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.
Instances
InputState Input Char Pos Source # | |
InputState inp s p => InputState (OffsideInput inp s p) (OffsideSymbol s) p Source # | |
class OutputState r where Source #
Methods
acceptR :: v -> rest -> r v rest Source #
nextR :: (a -> rest -> rest') -> (b -> a) -> r b rest -> rest' Source #
Instances
Instances
Symbol s => Symbol (OffsideSymbol s) Source # | |
systemerror :: [Char] -> [Char] -> a Source #