On 07/12/2010 07:30 AM, Steven Schveighoffer wrote:
On Mon, 12 Jul 2010 08:12:31 -0400, bearophile
<bearophileh...@lycos.com> wrote:

Steven Schveighoffer:
If people agree that AST macros are superseded by mixins,

String mixins are a hack, just a bit better than C preprocessor
(because they are scoped), they are not a replacement of clean macros.

Interesting statement, can you back it up? :) What can you do with a
macro that you can't do with a mixin?

-Steve

I think the big thing about macros is you don't have to worry about lexing and parsing.

if <A> is of the form (Assignable, Assignable, ... ),
and <B> of the form (AssignExp, AssignExp, ... )

how do you readily rewrite

mixin("<A> = <B>;");

to

(<A>[0] = <B>[0], <A>[1] = <B>[1], ... )

without a metric shit ton of library support?

With the most bare bones of AST macros (maybe a ctfe function that gets passed a AST* and returns a AST* or something equivalent), it's pretty trivial. And you don't need to wrap it in a string literal.

Reply via email to