Hi, 

I have never considered using tree grammar earlier. But now I took a look at it 
as it sounded like a solution to my problem. But I still have one doubt. 

Suppose I write a grammar that parses the input file and constructs the AST. I 
have to next write a tree grammar that can operate on the generated AST (I 
guess this is called the tree walkers). My question is, is it possible to turn 
on rewrite in tree grammar? or it is necessary to describe the entire tree in 
the tree-grammar? I did some googling and found this page - 
http://www.antlr.org/wiki/display/~admin/2008/11/29/Woohoo%21+Tree+pattern+matching%2C+rewriting+a+reality
 . This sounds damn sexy! But has this been released? Does the latest release 
(3.1.2) include this? 

Thanks, Indhu 

----- Original Message ----- 
From: Sam Harwell <[email protected]> 
To: Indhu Bharathi <[email protected]>, [email protected] 
Sent: Thursday, March 5, 2009 8:34:25 AM GMT+0530 Asia/Calcutta 
Subject: RE: [antlr-interest] Seperating grammar and actions 




You have a few options: 



1. Only build an AST in the parser, then use a tree walker to perform your 
needed operations. This is the “v3” way to do it, especially with the new 
filter-mode tree parsers on the way. 

2. Call virtual functions from your actions, and implement those functions as 
empty stubs. Derive a class from the parser and implement the functions as 
necessary. This seems to be a “v2” way to do it, as it’s used in one of the v2 
grammars in the ANTLR Tool. 



Sam 





From: [email protected] 
[mailto:[email protected]] On Behalf Of Indhu Bharathi 
Sent: Wednesday, March 04, 2009 8:44 PM 
To: [email protected] 
Subject: [antlr-interest] Seperating grammar and actions 



Hi, 



Is there a way to separate grammar and actions into two different files? This 
will be helpful when multiple people are working with the same grammar file 
(each might write their own actions for the same production) and don’t want to 
create redundant copies of the grammar file. 



One way I thought was to implement observer pattern. The parser will be the 
subject and multiple observers can register to the same production and do 
different things. Another way would be to write a tool to separate the actions 
from the grammar file and reattach it. This way, actions can be separated out 
and maintained in a separate file and can be reattached when necessary and 
changes to grammar can be done in one centralized file. 



Is there any other way to do this? Any hint might be useful. 



Thanks, Indhu 




--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"il-antlr-interest" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/il-antlr-interest?hl=en
-~----------~----~----~----~------~----~------~--~---

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

Reply via email to