[antlr-interest] Modifying tree based on semantic content

Steve Ebersole steve at hibernate.org
Fri May 15 04:26:14 PDT 2009


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 <steve at hibernate.org>
Hibernate.org



More information about the antlr-interest mailing list