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 -~----------~----~----~----~------~----~------~--~---