"Alexey Prokhin" <alexey.prok...@yandex.ru> wrote in message news:mailman.2713.1300954193.4748.digitalmars-d-le...@puremagic.com... >> Currently, as far as I know, there are only two lexers and two parsers >> for >> D: the C++ front end which dmd, gdc, and ldc use and the D front end >> which >> ddmd uses and which is based on the C++ front end. Both of those are >> under >> the GPL (which makes them useless for a lot of stuff) and both of them >> are >> tied to compilers. Being able to lex D code and get the list of tokens in >> a D program and being able to parse D code and get the resultant abstract >> syntax tree would be very useful for a number of programs. > There is a third one: http://code.google.com/p/dil/. The main page says > that > the lexer and the parser are fully implemented for both D1 and D2. But the > license is also the GPL.
The nearly-done v0.4 of my Goldie parsing system (zlib/libpng license) comes with a mostly-complete lexing-only grammar for D2. http://www.dsource.org/projects/goldie/browser/trunk/lang/dlex.grm The limitations of it right now: - Doesn't do nested comments. That requires a feature (that's going to be introduced in the related tool GOLD Parsing System v4.2) that I haven't had a chance to add into Goldie just yet. - It's possible there might be some edge-case bugs regarding either the ".." operator and/or float literals. - It's ASCII-only. Goldie supports Unicode, but character set optimization isn't implemented yet, so unicode grammars are technically possible but impractical ATM (this will be the top priority after I get v0.4 released).