String Mixins

The mixin expression takes an arbitrary string and compiles it and generates instructions accordingly. It is purely a compile-time mechanism and can only work on strings available during compilation - a comparison with the evil JavaScript eval would be highly unfair.

mixin("int b = 5;");
assert(b == 5); // compiles just fine

mixin also works with strings that are constructed dynamically as long as the available information doesn't depend on runtime values.

mixin together with CTFE from the next section allows writing impressive libraries like Pegged which generates a grammar parser from a grammar defined as a string in the source code.


rdmd playground.d