[antlr-interest] Treeparser inheritance?

Jos Fries ga-fries at veenendaalnet.nl
Fri Nov 18 08:58:00 PST 2005


Ofcause! I renamed the second rule and it now works as expected. Thanks for 
you help!

Jos
----- Original Message ----- 
From: "Terence Parr" <parrt at cs.usfca.edu>
To: "antlr-interest Interest" <antlr-interest at antlr.org>
Sent: Friday, November 18, 2005 5:12 PM
Subject: Re: [antlr-interest] Treeparser inheritance?


>
> On Nov 18, 2005, at 7:24 AM, Jos Fries wrote:
>> class PredicateTreeWalker extends TreeParser;
>>
>> expr returns [ String s ]
>> { String e1, e2 = new String (); s = new String (); }
>> : #(FORALL v1:VPSNAME c1:VPSNAME e1=expr) { s = "forAll (" + v1 +  ", " + 
>> c1 + ", " + e1 + ")"; }
>> | #(EXISTS v2:VPSNAME c2:VPSNAME e2=expr) { s = "exists (" + v2 +  ", " + 
>> c1 + ", " + e2 + ")"; }
>> | #(OR e1=expr e2=expr) { s = e1 + " + " + e2; }
>> | #(AND e1=expr e2=expr) { s = e1 + " * " + e2; }
>> | #(LPAREN e1=expr) { s = "( " + e1 + " )"; }
>> | #(NOT e1=expr) { s = ".N. " + e1; }
>> | n:VPSNAME { s = n.getText (); };
>>
>> Now I would like to extend this AST with an assignment statement:
>>
>> class StateExprTreeWalker extends PredicateTreeWalker;
>> options { importVocab = PredicateLexer; }
>>
>> expr returns [ String s ]
>> { String e1 = new String(); s = new String (); }
>> : #(EQUALS v1:VPSNAME e1=expr) { s = v1 + " = " + e1; }
>> ;
>>
>> The generated class StateExprTreeWalker only contains its own  actions. 
>> How can I get it to contain also the actions from  PredicateTreeWalker?
>
> You have overridden rule expr so it doesn't contain the original.  It 
> mirrors how method overriding workings too.  You cannot bring in just  a 
> few alts from above.  Sorry.
> Ter
>
>
>
> -- 
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.1.362 / Virus Database: 267.13.3/174 - Release Date: 17-11-2005
>
> 



More information about the antlr-interest mailing list