[Haskell-cafe] monadic parser with Happy and Alex
Timothy Goddard
tim at goddard.net.nz
Tue Oct 7 22:36:34 EDT 2008
On Sun, 05 Oct 2008 04:05:51 Manlio Perillo wrote:
> Hi.
>
> I have completed a draft of a CSS lexer, using Alex.
> http://hg.mperillo.ath.cx/haskell/webtools/file/tip/src/CSS/Lexer.x
>
> The lexer use the posn wrapper.
>
> Now I'm starting to write the parser with Happy, however for the final
> product I would like to:
> 1) Be able to do I/O in the lexer, for stylesheets inclusion
> (@import rule)
> 2) be able to keep state in the parser (or lexer?), for character
> transcoding (@charset rule)
>
>
> This should be possible with Happy (and there are some example), however
> I don't find examples that make use of a lexer written with Alex.
>
> Should I write a lexer using only the Alex basic interface (without
> wrappers)?
>
>
>
> Thanks Manlio Perillo
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
Hi Manlio,
You may be better off separating the parsing from the import process. You
would first parse it in to internal data structures (including an option for
import) then go through that and replace import statements with the parsed
content of those files. Producing a list which is then consumed by an IO
procedure is almost exactly equivalent to threading IO through the entire
parser and is a lot tidier, more flexible and should be easier to maintain.
Cheers,
Tim
More information about the Haskell-Cafe
mailing list