Hi Jan,
2015-04-02 16:36 GMT+02:00 Jan Kurš <kurs(a)iam.unibe.ch>ch>:
Hi All,
I have pushed a new version for indentation sensitivity into the
PetitParser. If I am not mistaken, with the new changes, you can parse
languages such as Python, F#, Haskell, YAML or Markdown. There are proof of
concept implementations in the PetitParser repository. YAML and Markdwon
are almost complete, for Python only the indentation-sensitive rules.
There is a small introduction to the indentation parsing with PetitParser (
http://scg.unibe.ch/research/indentParsing), let me know, if you are
missing something or if you want to know something more. There are also
many examples of the indentation sensitive grammars in the repository.
This is interesting. Thanks for the description and the link.
One note in the end: isn't it that in fact what you are eating with the
indentation stack is more than whitespace (i.e. bullet points)? See last
paragraph, because your approach benefit is that you can use more than
whitespace as indent, anything arbitrary would do, if I have understood
correctly.
If you wonder about performance, the indentation sensitive grammar is
approximately five times slower, because the position and an extra
indentation stack is remembered instead of the simple position. If you
don't use indentation, there is no slowdown. I am working on improvements,
any ideas are welcome :)
Totally out of the blue: your typical indentation parsing expression is a
regex type of thing. What about compiling it as a SmaCC scanner? Such a PP
parser would be equivalent to a Lexing automaton, and good compilers exist
for such automatons.
Thierry
If you don't like new changes, you can still stable version
(ConfigurationOfPetitParser loadStable) or version 1.11.
Regards,
Jan
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev