Dear Sean,
thanks for bringing this up and for the interesting link [1]. I'll have a
look. Meanwhile, I am still on both lists. ;-)
Steffen Märcker wrote
I wrote a PetitParserGenerator that takes the DSL and builds a
PetitParser.
I don't know how I could've missed this gem! I hope Steffen is still
subscribed. I googled "PetitParserGenerator", but only found these ML
posts
:/
It was easy to miss, since I never actually posted that code. Here's what
I've done:
From Xtreams.PEG syntax:
- PetitParserGenerater > PetitParser code
- PetitParserParser > PetitParser instance
I can send you that code. It should be straight forward to adapt it for
PP2. However, I moved away from Xtreams own PEG flavor to Bryan Ford's
original PEG syntax (close but more common) and programmed for Xtreams, PP
and PP2:
From Bryan Ford's original PEG syntax:
1. Xtreams Grammer and Actor that build an Xtreams parser
2. PP(2)PEGParserParser that builds a PP(2) parser instance
3. PP(2)PEGParserCompiler that builds PP(2) parser classes
All three are available for VW in the Cincom's public repository:
- Xtreasm-Parsing (8.2-3,stm): +PEG parser +some fixes to Xtreams parser
- PetitParser-PEG (1.11,stm)
- PetitParser2-PEG (1.11,stm)
And 2, 3 for Pharo on GitHub, e.g.
- https://github.com/kursjan/petitparser2/tree/master/PetitParser2-PEG
Speaking of, I just noticed that translator form Xtreams.PEG to PEG is
missing to complete the picture here. ;-)
IIRC Xtreams can take a BNF and generate a parser.
As far as I know, there is no BNF-like parser generator for Xtreams,
available.
wouldn't mind a two step BNF -> Xtreams -> PP process.
Is it an option for you to convert your BNF to PEG manually?
Best regards,
Steffen