[Haskell-cafe] Re: Parsec Question
Christian Maeder
maeder at tzi.de
Mon Jan 9 10:36:03 EST 2006
Hi Gerd,
despite SourcePos being abstract, it can be fully manipulated using newPos.
import Text.ParserCombinators.Parsec.Pos
If you can compute the positions from your Tok-stream then you may
consider using "tokenPrim" and work with "GenParser Tok () a"
HTH Christian
Gerd M wrote:
> I'm trying to use parsec for parsing a custom input stream. As far as I
> understood the manual correctly I need to define the primitive parser:
>
> type MyParser a = GenParser (SourcePos,Tok) () a
> mytoken :: (Tok -> Maybe a) -> MyParser a
> mytoken test
> = token showToken posToken testToken
> where
> showToken (pos,tok) = show tok
> posToken (pos,tok) = pos
> testToken (pos,tok) = test tok
>
> The problem is, since SourcePos is an abstract datatype, how can I
> actually run this parser without explicitly using values of type
> SourcePos in the input stream?
More information about the Haskell-Cafe
mailing list