Reply to Paul,

Is there a way to see the source for a D program after the mixins and
templates, etc., are expanded?


Descent has a "compile time view" that is supposed to do some of this.

If you are only looking at string mixins you can use pragma(msg, string) to view the string

I get occasional error messages saying I've got incompatible types,
for example, but the error message only makes sense when I mentally
instantiate a template. Is there a way to see this instantiation in
print?

At what phase of compilation does this occur? Has the code been
tokenized? (It's okay with me if it is--I just want to know.)


This is mostly informed guess work but: it's all mixed up; the file is tokenized and parsed, then some semantic stuff happens including some template evaluation and CTFE to construct the string that is then tokenized and your back where you started. In concept, the tokenization, parsing and semantics are different phases. The first two might happen at the same time but I think the third is separate.

Paul



Reply via email to