Lexer and parser generators using CTFE

CTFE-4-the-win CTFE at 4the.win
Tue Feb 28 00:36:11 PST 2012

On Tuesday, 28 February 2012 at 07:59:16 UTC, Andrei Alexandrescu
> 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". ;)

More information about the Digitalmars-d mailing list