Hi everybody,
I am using PetitParser a lot and had implemented some little tools that
help me for writing or generating grammars. I put two of the most useful in
the project PetitParserExtension (
http://smalltalkhub.com/#!/~Moose/PetitParserExtensions).
the first one is useful when you generate grammars with lots of rules:
A PPExtendedCompositeParser offers you a new way to create rules. Just
define your rule as a method in the #rules protocol and it will be managed
exactly like rules in PPCompositeParser.
You will not have the limitation of 256 rules due to the instance variables
limit but you will need to refer to your rule with the method #rule: in any
other rule using it.
You can mix PPCompositeParser and PPExtendedCompositeParser way to define
rules.
the second one is cool for token identification because it creates a parser
that will parse in a time depending on token length and not the number of
different tokens.
A PPMultiStringParser is a tool able to create a really effective parser on
a huge collection of Strings. This parser will match any string in this
collection, and the longest one if two are matchable (( PPMultiStringParser
on: #('tin' 'tintin')) parse: 'tintin' will match 'tintin'
and not just
'tin')
If someone else has implemented some tools around PetitParser, it will be
great to put those all together so feel free to commit your tools in this
project and to improve mines.
--
*Guillaume Larcheveque*