[Haskell-cafe] how to #include files within parsec ... without
unsafePerformIO?
Neil Brown
nccb2 at kent.ac.uk
Thu Jun 18 08:06:52 EDT 2009
Leonard Siebeneicher wrote:
> Dear reader,
>
> I wonder whether there is a 'general' working solution to include files
> within a parsec parser. Without the need of unsafePerformIO.
>
At least in parsec 2, I don't think so. Our solution was to read in the
main file, tokenise it (using Alex), preprocess it (using some
regex-like pattern matching on the token stream) in the IO monad and
include the new files then (also tokenising and preprocessing them).
Then after preprocessing we feed the entire resulting token stream to
Parsec. Whether a two-phase approach (preprocess then parse) works
depends on whether your include syntax is simple enough that you can
spot the includes without parsing.
Thanks,
Neil.
More information about the Haskell-Cafe
mailing list