Safe Haskell | None |
---|---|
Language | Haskell98 |
UU.Parsing.MachineInterface
- 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 s, Foldable t, Symbol s) => SymbolR s -> t s -> [SymbolR s]
- usererror :: [Char] -> t
- systemerror :: [Char] -> [Char] -> t
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
Minimal complete definition
Nothing
Instances
Symbol s => Symbol (OffsideSymbol s) Source |
symInRange :: Ord a => SymbolR a -> a -> Bool Source
systemerror :: [Char] -> [Char] -> t Source