On Tuesday, 28 February 2012 at 07:59:16 UTC, Andrei Alexandrescu
wrote:
I'm starting a new thread on this because I think the matter is
of strategic importance.
We all felt for a long time that there's a lot of potential in
CTFE, and potential applications have been discussed more than
a few times, ranging from formatting strings parsed to DSLs and
parser generators.
Such feats are now approaching fruition because a number of
factors converge:
* Dmitry Olshansky's regex library (now in Phobos) generates
efficient D code straight from regexen.
* The scope and quality of CTFE has improved enormously, making
more advanced uses possible and even relatively easy (thanks
Don!)
* Hisayuki Mima implemented a parser generator in only 3000
lines of code (sadly, no comments or documentation yet :o))
* With the occasion of that announcement we also find out
Philippe Sigaud has already a competing design and
implementation of a parser generator.
This is the kind of stuff I've had an eye on for the longest
time. I'm saying it's of strategic importance because CTFE
technology, though not new and already available with some
languages, has unique powers when combined with other features
of D. With CTFE we get to do things that are quite literally
impossible to do in other languages.
We need to have a easy-to-use, complete, seamless, and
efficient lexer-parser generator combo in Phobos, pronto. The
lexer itself could use a character-level PEG or a classic
automaton, and emit tokens for consumption by a parser
generator. The two should work in perfect tandem (no need for
glue code). At the end of the day, defining a complete
lexer+parser combo for a language should be just a few lines
longer than the textual representation of the grammar itself.
What do you all think? Let's get this project off the ground!
Thanks,
Andrei
Definitely, I applaud this initiative! I've long been of the
opinion that CTFE parsing is D's killer-feature, which would
allow me to "sneak" D into a "nameless above average size
company". ;)