Scanner / Parser for D2

Unknown W. Brackets unknown at simplemachines.org
Thu Apr 23 08:16:29 PDT 2009


I went and rewrote the bulk of the main parser/lexer in a way that was 
more VSIP-friendly, which worked out for me.  Unfortunately, it's just a 
separate thing, and I need to update it badly at this point.

One problem is, you really want to be able to scan/lex by line.  If you 
don't do some caching/optimization based on that in Visual Studio, 
you'll be eating dirt.  The design of the parser and lexer in D doesn't 
really lend itself to that, as-is.

But, I never went much farther than colored tokens and brace matching, 
and it's been a few months since I've had time to mess with it.

You may also be interested in Dave Sieber's DCoder, which was on dsource 
iirc, although it was built trying to use yacc/etc. for D, which didn't 
really work out well at the time.  It was for 2003 iirc.

-[Unknown]


Arild Boes wrote:
> Hello,
> 
> I'd like to have a c++ parser for D. I realized, that the full source 
> code of DMD was avaliable and went to fetch it. (thanks for that btw!).
> 
> However it seems rather complex, and I sure could use some quick 
> insights regarding how the lexer / scanner part could be used, favorably 
> seperately, from the rest of the compiler.
> 
> The simple goal is to fiddle with color coding in vs 2008 with the 
> language SDK, and then perhaps move on to more interesting stuff.
> All it really needs for the simple stuff is a scanner. I previously did 
> some succesfull tests with a sablecc generated parser and some toy grammar.
> 
> I havent really had the time to examine the dmd source in detail yet, so 
> i am hedgeing my bets here, not at all expecting to get a full detailed 
> walktrough. Hints in the general direction would be much appreciated 
> though.
> 
> postscript: being a silent news reader and D fan for some time, I would 
> like to utilize this post to express my gratitude for the kickass 
> language D is, and for the work everyone has put into it.
> 
> Thanks in advance.



More information about the Digitalmars-d mailing list