|
|
|
|
| Synopsis |
|
| data AnaParser state result s p a | | | pWrap :: OutputState result => (forall r r'' . (b -> r -> r'') -> state -> Steps (a, r) s p -> (state -> Steps r s p) -> (state, Steps r'' s p, state -> Steps r s p)) -> (forall r . state -> Steps r s p -> (state -> Steps r s p) -> (state, Steps r s p, state -> Steps r s p)) -> AnaParser state result s p a -> AnaParser state result s p b | | | pMap :: OutputState result => (forall r r'' . (b -> r -> r'') -> state -> Steps (a, r) s p -> (state, Steps r'' s p)) -> (forall r . state -> Steps r s p -> (state, Steps r s p)) -> AnaParser state result s p a -> AnaParser state result s p b | | | module UU.Parsing.MachineInterface | | | type Parser s = AnaParser [s] Pair s (Maybe s) | | | class IsParser p s | p -> s where | | | | pCost :: (OutputState out, InputState inp sym pos, Symbol sym, Ord sym) => Int -> AnaParser inp out sym pos () | | | getInputState :: (InputState a c d, Symbol c, Ord c, OutputState b) => AnaParser a b c d a | | | parse :: (Symbol s, InputState inp s pos) => AnaParser inp Pair s pos a -> inp -> Steps (Pair a (Pair inp ())) s pos | | | parseIOMessage :: (Symbol s, InputState inp s p) => (Message s p -> String) -> AnaParser inp Pair s p a -> inp -> IO a | | | parseIOMessageN :: (Symbol s, InputState inp s p) => (Message s p -> String) -> Int -> AnaParser inp Pair s p a -> inp -> IO a | | | data Pair a r = Pair a r | | | evalStepsIO :: (Message s p -> String) -> Steps b s p -> IO b | | | evalStepsIO' :: (Message s p -> String) -> Int -> Steps b s p -> IO b |
|
|
| Documentation |
|
| data AnaParser state result s p a |
Instances | |
|
|
| pWrap :: OutputState result => (forall r r'' . (b -> r -> r'') -> state -> Steps (a, r) s p -> (state -> Steps r s p) -> (state, Steps r'' s p, state -> Steps r s p)) -> (forall r . state -> Steps r s p -> (state -> Steps r s p) -> (state, Steps r s p, state -> Steps r s p)) -> AnaParser state result s p a -> AnaParser state result s p b |
|
| pMap :: OutputState result => (forall r r'' . (b -> r -> r'') -> state -> Steps (a, r) s p -> (state, Steps r'' s p)) -> (forall r . state -> Steps r s p -> (state, Steps r s p)) -> AnaParser state result s p a -> AnaParser state result s p b |
|
| module UU.Parsing.MachineInterface |
|
| type Parser s = AnaParser [s] Pair s (Maybe s) |
|
| class IsParser p s | p -> s where |
| The IsParser class contains the base combinators with which
to write parsers. A minimal complete instance definition consists of
definitions for '(*>)', '(<|)', pSucceed, pLow, pFail,
pCostRange, pCostSym, getfirsts, setfirsts, and getzerop.
| | | Methods | | (<*>) :: p (a -> b) -> p a -> p b | | Sequential composition. Often used in combination with $.
The function returned by parsing the left-hand side is applied
to the value returned by parsing the right-hand side.
Note: Implementations of this combinator should lazily match on
and evaluate the right-hand side parser. The derived combinators
for list parsing will explode if they do not.
| | | (<*) :: p a -> p b -> p a | | Value ignoring versions of sequential composition. These ignore
either the value returned by the parser on the right-hand side or
the left-hand side, depending on the visual direction of the
combinator.
| | | (*>) :: p a -> p b -> p b | | | (<$>) :: (a -> b) -> p a -> p b | | Applies the function f to the result of p after parsing p.
| | | (<$) :: b -> p a -> p b | | | pSucceed :: a -> p a | | Two variants of the parser for empty strings. pSucceed parses the
empty string, and fully counts as an alternative parse. It returns the
value passed to it.
| | | pLow :: a -> p a | | pLow parses the empty string, but alternatives to pLow are always
preferred over pLow parsing the empty string.
| | | (<|>) :: p a -> p a -> p a | | Alternative combinator. Succeeds if either of the two arguments
succeed, and returns the result of the best success parse.
| | | pFail :: p a | | This parser always fails, and never returns any value at all.
| | | pCostRange :: Int -> s -> SymbolR s -> p s | | Parses a range of symbols with an associated cost and the symbol to
insert if no symbol in the range is present. Returns the actual symbol
parsed.
| | | pCostSym :: Int -> s -> s -> p s | | Parses a symbol with an associated cost and the symbol to insert if
the symbol to parse isn't present. Returns either the symbol parsed or
the symbol inserted.
| | | pSym :: s -> p s | | Parses a symbol. Returns the symbol parsed.
| | | pRange :: s -> SymbolR s -> p s | | | getfirsts :: p v -> Expecting s | | Get the firsts set from the parser, i.e. the symbols it expects.
| | | setfirsts :: Expecting s -> p v -> p v | | Set the firsts set in the parser.
| | | getzerop :: p v -> Maybe (p v) | | getzerop returns Nothing if the parser can not parse the empty
string, and returns Just p with p a parser that parses the empty
string and returns the appropriate value.
| | | getonep :: p v -> Maybe (p v) | | getonep returns Nothing if the parser can only parse the empty
string, and returns Just p with p a parser that does not parse any
empty string.
|
| | Instances | |
|
|
| pCost :: (OutputState out, InputState inp sym pos, Symbol sym, Ord sym) => Int -> AnaParser inp out sym pos () |
|
| getInputState :: (InputState a c d, Symbol c, Ord c, OutputState b) => AnaParser a b c d a |
|
| parse :: (Symbol s, InputState inp s pos) => AnaParser inp Pair s pos a -> inp -> Steps (Pair a (Pair inp ())) s pos |
|
| parseIOMessage :: (Symbol s, InputState inp s p) => (Message s p -> String) -> AnaParser inp Pair s p a -> inp -> IO a |
|
| parseIOMessageN :: (Symbol s, InputState inp s p) => (Message s p -> String) -> Int -> AnaParser inp Pair s p a -> inp -> IO a |
|
| data Pair a r |
| Constructors | | Instances | |
|
|
| evalStepsIO :: (Message s p -> String) -> Steps b s p -> IO b |
|
| evalStepsIO' :: (Message s p -> String) -> Int -> Steps b s p -> IO b |
|
| Produced by Haddock version 0.8 |