[Dlang-internal] Parsing string mixin as normal code

Martin Nowak via Dlang-internal dlang-internal at puremagic.com
Wed Jul 19 04:48:39 PDT 2017


On Tuesday, 4 July 2017 at 14:48:00 UTC, RazvanN wrote:
> After going through the compiler code that does parsing, I 
> noticed that whenever a mixin is encountered, a 
> CompileStatement node is created and its contents are parsed 
> later on when semantic is performed. I am not sure for other 
> cases, but at least for simple string mixins you could parse 
> the string right away without instantiating a new parser. Is 
> there a reason for deferring the parsing to the semantic 
> analysis phase?

Guess with parsing right away you mean during the initial module 
parsing.
It's the distinguishing between simple and complex that mandates 
the later parsing.
Temporal/order dependencies between different stages are tricky 
enough in the compiler, better to just stick with one behavior.

Also most mixin expressions aren't trivial (at least require 
concat and usually formatting), so it's hardly optimizing.
Might be more interesting for `mixin(import("code.d"));`, but 
it's fine as is.


More information about the Dlang-internal mailing list