Trip notes from Israel

Adam D. Ruppe via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Mon May 22 08:38:49 PDT 2017


On Monday, 22 May 2017 at 15:26:26 UTC, Andrei Alexandrescu wrote:
> Yah, didn't want to overload the article (or the discussion) 
> with the expression/statement distinction. -- Andrei

Yeah, the details might be too much for a general audience (and I 
realize you know this, I'm commenting more for other readers who 
might be interested), but I do think this illustrates an 
important point for anyone who wants to use mixin: it is similar 
to, but not exactly like copy/pasting code into the source.

mixin parses a piece of code, then pastes the *AST node*, not the 
source code, into the tree where the mixin is found. That's why 
the semicolon is required in the statement context - it needs a 
complete branch that actually fits the AST at the moment, not 
just a string that is pasted into the source code at the location.

So similar enough to copy/paste to get someone quickly started 
playing with code generation, but this key difference is needed 
to really understand it.


More information about the Digitalmars-d-announce mailing list