[antlr-interest] Producing multiple output file (at the same time) from a single AST - best strategy?

Voelkel, Andy andy.voelkel at plantronics.com
Fri Oct 28 07:47:46 PDT 2011


I think maybe my original post was confusing. What I meant was is that I need to produce multiple output files from a single AST, not alternative output formats like in cminus. That is, I need to generate a structure definition header file, a structure initialization C file, etc. So ideally, a single run through a single tree grammar would produce multiple string template "streams".

I had one more thought. Is it possible to use ANTLR StringTemplate integration and produce more than one StringTemplate from a rule, if I explicitly declare the rule to have multiple StringValues as the rule return type?


-          Andy

From: Eric [mailto:researcher0x00 at gmail.com]
Sent: Friday, October 28, 2011 4:13 AM
To: Voelkel, Andy; ANTLR interest
Subject: Re: [antlr-interest] Producing multiple output file from a single AST - best strategy?


On Fri, Oct 28, 2011 at 1:50 AM, Voelkel, Andy <andy.voelkel at plantronics.com<mailto:andy.voelkel at plantronics.com>> wrote:
Hi,

I have a project where I have to produce multiple output files (C source files) from a single AST. It seems clear at this point that using StringTemplate to produce the output files makes the most sense. So how do I get multiple StringTemplate "streams" from a single AST? I can think two ways:


1.       Write separate tree grammars to produce the separate outputs, using built-in ANTLR-to-StringTemplate integration.

2.       Write one tree grammar, and use helper functions to build the separate outputs using manual creation of StringTemplates.

3.       Or is there another way?

Approach #1 has the advantage of being able to use the built in integration between ANTLR and StringTemplate. But the disadvantage is that if I change the AST structure, I have to change all the tree grammar files, rerun the code generation, etc. Right now I'm leaning towards the helper functions which construct StringTemplates manually. Does anyone have any advice? I'm assuming that I can't use ANTLR-StringTemplate integration and also produce multiple StringTemplates with a single tree grammar. Do I have this right?


-          Andy

Hi Andy,

Take a look at the cminus example in http://www.antlr.org/download/examples-v3.tar.gz. Cminus demonstrates String Templates by emitting source code for Python, Java, and Bytecode.



Hope that helps, Eric


________________________________

CONFIDENTIALITY NOTICE: This e-mail transmission, and any documents, files or previous e-mail messages attached to it, may contain information that is confidential and/or legally privileged. If you are not the intended recipient, or a person responsible for delivering it to the intended recipient, please DO NOT disclose the contents to another person, store or copy the information in any medium, or use any of the information contained in or attached to this transmission for any purpose. If you have received this transmission in error, please immediately notify the sender by reply email or at privacy at plantronics.com<mailto:privacy at plantronics.com>, and destroy the original transmission and its attachments without reading or saving in any manner.

For further information about Plantronics - the Company, its products, brands, partners, please visit our website www.plantronics.com<http://www.plantronics.com>.

List: http://www.antlr.org/mailman/listinfo/antlr-interest
Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address


________________________________

CONFIDENTIALITY NOTICE: This e-mail transmission, and any documents, files or previous e-mail messages attached to it, may contain information that is confidential and/or legally privileged. If you are not the intended recipient, or a person responsible for delivering it to the intended recipient, please DO NOT disclose the contents to another person, store or copy the information in any medium, or use any of the information contained in or attached to this transmission for any purpose. If you have received this transmission in error, please immediately notify the sender by reply email or at privacy at plantronics.com, and destroy the original transmission and its attachments without reading or saving in any manner.

For further information about Plantronics - the Company, its products, brands, partners, please visit our website www.plantronics.com.


More information about the antlr-interest mailing list