On Wednesday, 6 November 2013 at 02:38:57 UTC, Timothee Cour wrote:
I agree. For that suggest the following syntax (independent of this...snip...
proposal):
That is, support UDA for expressions.
----
void main(){
import std.conv:text;
int var=12;
@("syntax=python")
r{
}
}
----
I'd very nearly say that this could be a library function. Imagine it like this:
---
syntax!"python"(r{
...
})
---
A bit more verbose than using a UDA but the return type could be something like SyntaxType!"python" and you could make it so that functions only take SyntaxType!"python" for some compile-time checking using the type system. For instance, if your function requires python code then you can specify it in the argument. I'd also like it to be implicitly convertable to a generic SyntaxType that accepts everything if you just don't care what kind of syntax it is.
As long as it's part of the standard library, then IDEs could also take advantage of it. Not saying that they shouldn't also support UDAs, but just throwing that out there as another alternative.