[antlr-interest] Re: output code generation in c++

Scott Amort jsamort at gmail.com
Tue Aug 1 07:33:45 PDT 2006


Hi,

dotnet fr wrote:
> In the antlr steps :
> -create the grammar file (parse the file and generate AST)
> -generate code in c++.
> Now I want to use my AST to generate ouput code (for example .hpp, cpp)
> Is it available in Antlr 2.7.6 ? Is it possible ?

This is slightly different.  If I understand you correctly, you are 
attempting to convert some language construct to C++?  Certainly it is 
possible, but not in any automatic way.  Your options would be to: (1) 
create a TreeWalker and output your C++ code to stream or file from 
within the various nodes; or (2) take the AST generated by your grammar 
and manually walk it, outputting in a similar way to 1.

Of course, this option does not require that your actual 
lexer/parser/treewalker be C++ code.  You could set ANTLR to use a C#, 
Java or Python target, and then make use of the StringTemplate code 
available now.

Here are a couple of links to discussion for and against using a manual 
approach versus StringTemplate:

http://www.antlr.org/article/1136917339929/stringTemplate.html
http://www.codegeneration.net/tiki-read_article.php?articleId=77

Best,
Scott


More information about the antlr-interest mailing list