Hi, I am the author of the jhc haskell compiler as well as the frisby
packrat parsing library for haskell.
I would like to parse all of haskell via a packrat parser, generated by
pappy, However, Haskell has a 'layout' rule which is causing some
trouble. basically, in haskell, blocks are defined by layout.
do foo
bar
let x = ...
y = ...
baz
the 'do' and the 'let' both define a new layout context. I was wondering
if anyone had any ideas on how to extend pappy in order to deal with
this?
the full specification of the layout rule is here in section 9.3:
http://haskell.org/onlinereport/syntax-iso.html
note that it cannot be carried out purely on the lexical level, as it
depends on matching against a 'parse error' in one of its cases.
adding a primitive that binds to the current column and consumes no
input would be easy, but the "stack of layout contexts" seems to be a
stumbling block.
John
--
John Meacham - ⑆repetae.net⑆john⑈
_______________________________________________
PEG mailing list
[email protected]
https://lists.csail.mit.edu/mailman/listinfo/peg