What are AST Macros?

Robert Jacques sandford at jhu.edu
Thu Jul 8 18:43:57 PDT 2010


On Thu, 08 Jul 2010 20:43:39 -0400, Jonathan M Davis  
<jmdavisprog at gmail.com> wrote:

> Periodically, the term AST macros come up in the discussions here as a  
> possible
> addition to the language - they even get discussed briefly in TDPL as a  
> possible
> replacement for template mxins. However, I don't think that I've ever  
> seen an
> actual explanation for what exactly is meant by the term AST macro. This  
> raises
> two questions
>
> 1. What are AST macros and how do they differ from C-style macros? We  
> obviously
> aren't going to be adding macros like that to D, since that would be  
> dangerous.
> But what would a macro be then if it's not a textual replacement? The  
> best I can
> think of would be that you'd have to indicate the macros to be replaced  
> by
> surrounding them with macro() or something rather than letting any and  
> all text
> that matches  be replaced. So, I really don't know what AST macros are  
> supposed
> to be other than they're macros of some kind and better than C-style  
> macros.
>
> 2. What does AST stand for? The best that I can come up with for what it  
> could
> stand for would be Abstract Syntax Tree, which is a nice, Computer  
> Sciency,
> compiler-related term, but I haven't a clue how that would relate to  
> macros. So,
> maybe an answer to the first question would answer this one as well, but  
> an
> explanation would be nice.
>
> - Jonathan M Davis

Check out Walter's slides and/or talk from the D conference.  
(http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D.announce&article_id=12555)
AST does stand for abstract syntax tree and they are much more like Lisp  
macros as opposed to the C preprocessor.


More information about the Digitalmars-d mailing list