I was not aware of this kind of construction. Thank you for bringing  
it to my attention.  Where is there an article that specifically  
discusses this mechanism? I couldn't find it in my ANTLR book nor  
through (a few) google searches?

In other words, what exactly is "areStrings(...)" --- is it just a  
function that returns boolean? I'm assuming that the syntax here  
implies that you can have a sequence of these
     -> { .... }   TREE
lines and that ANTRL looks for the first expression in braces that is  
"true"

Is that correct?

D


On May 15, 2009, at 7:26 AM, Steve Ebersole wrote:

> someRule
>    : a PLUS b
>        -> { areStrings($a.tree,$b.tree) } ^(CONCATENATE a b)
>        -> ^(PLUS a b)
>
> On Thu, 2009-05-14 at 23:38 -0400, David Jameson wrote:
>> Is there any way to control the built-in tree generation (from an
>> initial parse phase) based on semantics of what is being parsed?
>>
>> As a simple example,    if   I see the expression
>>        a + b
>>
>> then I want to produce
>>     (PLUS a b)
>> or
>>    (CONCATENATE a b)
>>
>> depending on whether a and b are numeric or string.
>>
>>
>> How can I do this with rewrite rules (for example)?   Or do I have to
>> construct my own trees?
>>
>>
>> Thanks,
>> D
>>
>> List: http://www.antlr.org/mailman/listinfo/antlr-interest
>> Unsubscribe: 
>> http://www.antlr.org/mailman/options/antlr-interest/your-email-address
> -- 
> Steve Ebersole <st...@hibernate.org>
> Hibernate.org
>


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

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

Reply via email to