|
|
|
|
Synopsis |
|
data Pos | | type ParseError = (Pos, String, [String]) | | type ParseResult a i = Either ParseError (a, i, ParseError) | | type ParseBad a i = ParseError -> ParseResult a i | | type ParseGood a i c = a -> i -> ParseError -> ParseResult c i | | type Parser a i c = ParseGood a i c -> ParseBad c i -> i -> ParseError -> ParseResult c i | | initError :: ParseError | | initBad :: ParseBad a i | | initGood :: ParseGood a i a | | parseit :: Parser a i a -> i -> Either ParseError a | | parse :: a -> Parser a i b | | ap :: Parser (a -> b) i c -> Parser a i c -> Parser b i c | | chk :: Parser b i c -> Parser a i c -> Parser b i c | | orelse :: Parser a i b -> Parser a i b -> Parser a i b | | into :: Parser a i c -> (a -> Parser b i c) -> Parser b i c | | token :: Show b => (Pos -> b -> Either String d) -> Parser d [(Pos, b, e, f)] h | | parseFail :: Parser a i b | | revAp :: Parser a i c -> Parser (a -> b) i c -> Parser b i c | | revChk :: Parser a i c -> Parser b i c -> Parser b i c | | cases :: [(Lex, Pos -> Parser b [PosToken] c)] -> Parser b [PosToken] c -> Parser b [PosToken] c | | parseAp :: (a -> b) -> Parser a i c -> Parser b i c | | parseChk :: b -> Parser a i c -> Parser b i c | | apCut :: Parser (a -> b) i c -> Parser a i c -> Parser b i c | | chkCut :: Parser b i c -> Parser a i c -> Parser b i c | | intoCut :: Parser a i c -> (a -> Parser b i c) -> Parser b i c | | literal :: (Eq b, Show b) => b -> Parser Pos [(Pos, b, e, f)] h | | optional :: Parser a i c -> Parser (Maybe a) i c | | many :: Parser a i c -> Parser [a] i c | | some :: Parser a i c -> Parser [a] i c | | manySep :: Parser sep i c -> Parser a i c -> Parser [a] i c | | someSep :: Parser sep i c -> Parser a i c -> Parser [a] i c | | manysSep :: Parser sep i c -> Parser a i c -> Parser [a] i c | | somesSep :: Parser sep i c -> Parser a i c -> Parser [a] i c | | rcurl :: Parser Lex [PosToken] c | | parseRest :: Parser [PosToken] [PosToken] c |
|
|
Documentation |
|
data Pos |
abstract type for storing the position of a syntactic construct in a file,
that is, line and column number of both start and end positions.
| Instances | |
|
|
type ParseError = (Pos, String, [String]) |
|
type ParseResult a i = Either ParseError (a, i, ParseError) |
|
type ParseBad a i = ParseError -> ParseResult a i |
|
type ParseGood a i c = a -> i -> ParseError -> ParseResult c i |
|
type Parser a i c = ParseGood a i c -> ParseBad c i -> i -> ParseError -> ParseResult c i |
|
initError :: ParseError |
|
initBad :: ParseBad a i |
|
initGood :: ParseGood a i a |
|
parseit :: Parser a i a -> i -> Either ParseError a |
|
parse :: a -> Parser a i b |
|
ap :: Parser (a -> b) i c -> Parser a i c -> Parser b i c |
|
chk :: Parser b i c -> Parser a i c -> Parser b i c |
|
orelse :: Parser a i b -> Parser a i b -> Parser a i b |
|
into :: Parser a i c -> (a -> Parser b i c) -> Parser b i c |
|
token :: Show b => (Pos -> b -> Either String d) -> Parser d [(Pos, b, e, f)] h |
|
parseFail :: Parser a i b |
|
revAp :: Parser a i c -> Parser (a -> b) i c -> Parser b i c |
|
revChk :: Parser a i c -> Parser b i c -> Parser b i c |
|
cases :: [(Lex, Pos -> Parser b [PosToken] c)] -> Parser b [PosToken] c -> Parser b [PosToken] c |
|
parseAp :: (a -> b) -> Parser a i c -> Parser b i c |
|
parseChk :: b -> Parser a i c -> Parser b i c |
|
apCut :: Parser (a -> b) i c -> Parser a i c -> Parser b i c |
|
chkCut :: Parser b i c -> Parser a i c -> Parser b i c |
|
intoCut :: Parser a i c -> (a -> Parser b i c) -> Parser b i c |
|
literal :: (Eq b, Show b) => b -> Parser Pos [(Pos, b, e, f)] h |
|
optional :: Parser a i c -> Parser (Maybe a) i c |
|
many :: Parser a i c -> Parser [a] i c |
|
some :: Parser a i c -> Parser [a] i c |
|
manySep :: Parser sep i c -> Parser a i c -> Parser [a] i c |
|
someSep :: Parser sep i c -> Parser a i c -> Parser [a] i c |
|
manysSep :: Parser sep i c -> Parser a i c -> Parser [a] i c |
|
somesSep :: Parser sep i c -> Parser a i c -> Parser [a] i c |
|
rcurl :: Parser Lex [PosToken] c |
|
parseRest :: Parser [PosToken] [PosToken] c |
|
Produced by Haddock version 0.8 |