On Tuesday, 22 May 2012 at 14:48:49 UTC, Denis Shelomovskij wrote:
22.05.2012 18:04, Roman D. Boiko написал:
http://d-coding.com/2012/05/22/dct-use-cases.html
Please, please, try to rape dmd to do what you want first
because otherwise you (like every other existing parsers in
IDE) will fail with templates which are used everywhere in D (I
mean std.algorithm).
A suggestion:
Step 1 (bad performance): pass whole UTF-8 encoded source to
dmd for recompilation every time (through memory mapped file,
e.g.) and force dmd to write everything you want (yes, to
mmfile because there will be a lot of information).
Step 2 (better performance): stop dmd at some compilation
stage (in a function context) and on user input fork dmd, give
it new data, execute it, kill it. Pass whole source only when
e.g. user start editing of another function.
It looks like we can't do anything better without good
compiler-as-library.
By the way, it was really easy to change dmd to produce token
information for token colonizing and it worked faster that
Eclipse's Descent IIRC.
Thanks, but what you described is outside DCT scope and goals.