Re: What's that 'q' before '{' in this code?

2019-01-15 Thread SrMordred via Digitalmars-d-learn

On Tuesday, 15 January 2019 at 17:52:35 UTC, Machine Code wrote:

https://github.com/dlang/dmd/blob/master/src/dmd/compiler.d#L75


https://dlang.org/spec/lex.html#token_strings
:)


Re: What's that 'q' before '{' in this code?

2019-01-15 Thread Adam D. Ruppe via Digitalmars-d-learn

On Tuesday, 15 January 2019 at 17:52:35 UTC, Machine Code wrote:

https://github.com/dlang/dmd/blob/master/src/dmd/compiler.d#L75


It is a string literal that must be made out of D code tokens.

In my blog this week, I talked about some code that uses them:

http://dpldocs.info/this-week-in-d/Blog.Posted_2019_01_14.html#the-generated-client

You can see how it syntax highlights as code, but is semantically 
a string. The code inside is passed to mixin, so this hybrid 
appearance works well.


Re: What's that 'q' before '{' in this code?

2019-01-15 Thread Machine Code via Digitalmars-d-learn

On Tuesday, 15 January 2019 at 17:56:10 UTC, SrMordred wrote:

On Tuesday, 15 January 2019 at 17:52:35 UTC, Machine Code wrote:

https://github.com/dlang/dmd/blob/master/src/dmd/compiler.d#L75


https://dlang.org/spec/lex.html#token_strings
:)


I had just infered from the commend in the code "The D code to be 
generated is provided as D source code in the form of a string."


then I tried:

auto s = q{ foo(); return 10 };
writeln(s);

Then whoa. What a feature! I'm not aware of any language with 
this feature. Amazing.

Thank for your answer as well :)


What's that 'q' before '{' in this code?

2019-01-15 Thread Machine Code via Digitalmars-d-learn

https://github.com/dlang/dmd/blob/master/src/dmd/compiler.d#L75