Special Code String for mixins

Inquie via Digitalmars-d digitalmars-d at puremagic.com
Wed Mar 15 06:50:28 PDT 2017


I hate building code strings for string mixins as it's very ugly 
and seems like a complete hack.

How bout, instead, we have a special code string similar to a 
multiline string that allows us to represent valid D code. The 
compiler can then verify the string after compilation to make 
sure it is valid D code(since it ultimately is a compile time 
constant).

e.g.,

string s = "smile";
enum code1 = @#
void happyCode = "Makes me @@s@@";
#@

enum code2 = code1 ~ @#
int ImThisHappy = @@s.length@@;
#@

mixin(code);

or

mixin(code.stringof); // possible to convert code string to a 
string and vice versa.


or whatever syntax one thinks is better. The point is that the 
code string is specified different and then is no longer 
ambiguous as a normal string. Compilers and IDE's can make more 
informed decisions.

There might be a much better way, but something should be done to 
clean up this area of D. It is a mess to have to use string 
building to create code. (it's amazingly powerful, but still a 
mess)










More information about the Digitalmars-d mailing list