HI Steffen, Thanks for the report, number pleases me :)
Speaking of tool for porting, I was recently showed this one, I don't have any experience with it: https://github.com/ObjectProfile/Pharo2VW Speaking of character ranges, there is currently available: #letter asPParser (to recognize character matching #isLetter predicate) #word asPParser (characters matching #isAlphaNumeric predicate) #digit (#isDigit predicate) #hex ([a-fA-F]) #space #blank #any You can find definitions in PP2NodeFactory, see implementation of #hex, which is probably closest to what you want. For your convenience, your project can extend the class to fit your needs. You can also specify:$a asPParser / $b asPParser / $c asPParser / #digit asPParser ... PetitParser2 can recognize this pattern and makes a character class during optimization pass. On Sat, Oct 13, 2018 at 5:38 PM Steffen Märcker <merk...@web.de> wrote: > Hi, > > I gave PetitParser 2 a try and I am pretty impressed by the results, > please see the updated table below. =) Again, that's pure parsing and > Array-based AST-building. Moving to PP2 was indeed as easy as sending > #asPParser and working around character ranges ($a - $z). Is there a > preferred way to do the latter? > > Jan mentioned that there might be an automated tool to port stuff to > VisualWorks. Do you have a name? And again the old question: what is the > preferred workflow to exchange code between the two dialects? Till now I > stick to FileOut30. > > input Prism Storm Xtreams.PEG PP PP2 > size parse check check parse cache parse parse optim > 230kB 0.1s 10s 6s 9s 3s 2s 4s 0.2s > 544kB 0.2s 90s 20s 20s 7s 5s 9s 0.5s > 1.1MB 0.4s 392s 46s 34s 13s 8s 15s 1.0s > 1.4MB 0.8s 1091s 85s 47s 20s 12s 20s 1.3s > 2.2MB 63s 30s 16s 27s 1.9s > 2.9MB 81s 44s 20s 34s 2.5s > 3.8MB 107s 61s 25s 45s 3.1s > 4.4MB 123s 76s 30s 56s 3.7s > > Best, Steffen > > > Am .10.2018, 05:22 Uhr, schrieb Tudor Girba <tu...@tudorgirba.com>: > > > Hi, > > > > Interesting experiment. Thanks for sharing! > > > > I assume that you tried the original PetitParser. PetitParser2 offers > > the possibility to optimize the parser (kind of a compilation), and > this > > provides a significant speedup: > > https://github.com/kursjan/petitparser2 > > > > Would you be interested in trying this out? > > > > Cheers, > > Doru > > > > > > > >> On Oct 4, 2018, at 10:46 PM, Steffen Märcker <merk...@web.de> wrote: > >> > >> I gave Xtreams-Parsing and PetitParser a shot and like to share my > >> findings.[*] > >> > >> The task was to parse the modelling language of the probabilistic > model > >> checker PRISM. I've written a grammer of about 130 definitions in the > >> Xtreams DSL, which is close to Bryan Fords syntax. To avoid doing it > >> all again with PetitParser, I wrote a PetitParserGenerator that takes > >> the DSL and builds a PetitParser. > >> > >> The numbers below are just parsing times, no further actions involved. > >> For reference I show the times from PRISM (which uses JavaCC), too -- > >> although they involve additional verification and normalization steps > >> on the AST. > >> > >> input Prism XP PP > >> 230kB 14s 9s 2s > >> 544kB 121s 20s 5s > >> 1.1MB 421s 34s 8s > >> 1.4MB 1091s 47s 12s > >> 2.2MB 63s 16s > >> 2.9MB 81s 20s > >> 3.8MB 107s 25s > >> 4.4MB 123s 30s > >> > >> Please note that these times are not representative at all. It's just > a > >> single example and I put zero effort in optimization. However, I am > >> quite satisfied with the results. > >> > >> [*] I was already familiar with the DSL of Xtreams-Parsing, which I > >> like very much. I did not consider SmaCC, as I find PEGs easier to use. > >> > >> Best, Steffen > >> > >> > >> > >> Am .10.2018, 20:14 Uhr, schrieb Steffen Märcker <merk...@web.de>: > >> > >>> Dear all, > >>> > >>> I have two questions regarding parsing frameworks. > >>> > >>> 1) Do you have any insights on the performance of SmaCC VS Xtreams > >>> Parsing VS PetitParser? > >>> 2) Has anybody started to port PetitParser 2 from Pharo to VW? Is it > >>> worth the effort? > >>> > >>> Sorry for cross-posting, I thought this might interest both > >>> communities. > >>> > >>> Cheers, Steffen > > > > -- > > www.feenk.com > > > > "No matter how many recipes we know, we still value a chef." > > > > > > > > > > > > > > > >