What are AST Macros?

Rory McGuire rmcguire at neonova.co.za
Sun Jul 11 09:58:33 PDT 2010


On Sun, 11 Jul 2010 15:29:36 +0200, Michel Fortin  
<michel.fortin at michelf.com> wrote:

> On 2010-07-11 08:47:26 -0400, "Lars T. Kyllingstad"  
> <public at kyllingen.NOSPAMnet> said:
>
>> On Sun, 11 Jul 2010 14:26:51 +0200, Philippe Sigaud wrote:
>>
>>> That's interesting. Do you have a link or any text I could read on  
>>> that?
>>> String mixins sure are powerful, but I can't get ird of a feeling of
>>> 'cheating' when using them. Maybe with some kind of string  
>>> interpolation
>>> they could be made more palatable to some?
>>  I find that using token strings, q{ ... }, rather than ordinary "..."
>> strings, sometimes makes string mixins feel less like a hack.   
>> Especially
>> considering that my editor (vim) highlights token strings like ordinary
>> code -- or, more likely, it doesn't recognise them as strings. ;)
>
> Personally, I find it *more* like a hack. q{...} is just a way to  
> disguise a string as not being one, it's like using a second hack to  
> better hide the first hack. But it's too hacks instead of one, and thus  
> it's more obscure.
>
> That said, I don't feel like I'm cheating when using string mixins. I  
> find them a quite good substitute to AST macros. And perhaps string  
> mixins are simpler too: you don't have to learn a new macro syntax, you  
> just manipulate strings. Though I'm still waiting for the day we can use  
> string mixins in expressions to do things like this:
>
> 	int num = 1;
> 	string result = substitute!"Number: $num";
> 	assert(result == "Number: 1");
>

someone already made something like that, I forget where it was. Its old  
now.


More information about the Digitalmars-d mailing list