[Haskell-cafe] Parsec question: how to access parser state
dimitry at golubovsky.org
Sun Mar 20 15:32:38 EST 2005
I am trying to develop a parser with the Parsec library. At some point I
need to do something with parser state, say, convert it to a string.
I declared the type for the parser:
type TParser a = GenParser Token (FiniteMap String Declaration) a
The FiniteMap (which is the user state) is expected to be updated during
parsing whus building some internal lookup table.
and in one of the parsing functions I want to call
assuming it will apply show to the FiniteMap and return some string of
During compliation, I get:
No instance for (Show (GenParser tok st st))
arising from use of `show' at (file location)
In the first argument of `xxxx', namely `(show getState)'
But GenParser is a newtype, not a data constructor, so attempt to write
instance Show (GenParser tok st t)
results in error message about missing constructor GenParser.
How could I extract actual user state from the result of getState?
The parser itself works as needed, but dealing with user state gets me
More information about the Haskell-Cafe