Parsec: Transforming between parsers with different token streams

Hi, I'm writing a simple parser for a line-oriented language using Parsec. A group of lines is parsed by a parser that tokens are of type String. Each token is again parsed by a parser that tokens are of type Char (i.e. this parser has the Parsec type Parser a). Now I wrote a transforming function that converts a char parser to a line parser by running the char parser on the current token of the line parser and accepting the token, if the char parser did not fail: type LineParser = GenParser String () a toLineParser :: Parser a -> LineParser a toLineParser p = tokenPrim showLine nextPos testLine > "how to get the inner error message???" where showLine l = "\": " ++ l ++ "\"" nextPos pos t rest = incSourceLine pos 1 testLine l = case parse p "" l of Left msg -> Nothing Right res -> Just res My problem is to extract the possible error message of the inner char parser (msg) and pass it to the outer line parser. Maybe using tokenPrim is no the best approach here. Someone how can help me with that problem? Besh wishes, Maciej
participants (1)
-
Maciej Podgurski