YhcSource codeContentsIndex
Parse.ParseLib
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.
show/hide Instances
Eq Pos
Ord Pos
Show 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
Produced by Haddock version 0.8