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

Reply via email to