On 2013-12-05 05:09, Shammah Chancellor wrote:
On 2013-12-04 03:23:59 +0000, bearophile said:
Joshua Niehus:
This would make for a good blog post/wiki article.Does one already exist?
If you have a AST macros like in Julia language, I think you can write
something like:
@setExpr(a ∪ (b ∩ c));
The main difference is that the compiler gives you a tree in the macro
to work on, instead of a string to parse and munge.
Bye,
bearophile
Can't you define
template setExpr(string expr)
{
PeggedStuff...
mixin(PeggedStuff());
}
setExpr!(q{a ∪ (b ∩ c)});?
It'd have to be:
template setExpr(string expr)
{
PeggedStuff...
enum setExpr = PeggedStuff();
}
mixin(setExpr!q{a ∪ (b ∩ c)});
for it to have access to the names a, b and c.
Apart from that, absolutely.
One of the problems would be the lack of type information. If it turns
out that a is string, not a Set!int,
--
Simen