[antlr-interest] Q: move from v2 to v3 parser grammar. Rewrite tree	rule
    Ruslan Zasukhin 
    ruslan_zasukhin at valentina-db.com
       
    Sun Mar 20 03:40:41 PDT 2011
    
    
  
Hi All,
In v2 grammar we have rule as
===========================================
query_expression
    :    query_term (( "union"^ | "except"^ ) ( "all" )? query_term)*
        {    ## = #([QUERY_EXPRESSION,"QUERY_EXPRESSION"], ##);    }
    ;
===========================================
We try change it to v3
===========================================
query_expression
    :    query_term (( "union"^ | "except"^ ) ( "all" )? query_term)*
            ->(QUERY_EXPRESSION  ???? )
    ;
===========================================
Ops, we cannot specify top node, because it can be  union OR except.
For now the only way we have found is:
===========================================
query_expression
    :    query_expression2  ->(QUERY_EXPRESSION  query_expression2)
    ;
query_expression2
    :    query_term (( "union"^ | "except"^ ) ( "all" )? query_term)*
    ;
===========================================
Question is. May be exists more elegant way for v3
Without additional rule?
-- 
Best regards,
Ruslan Zasukhin
VP Engineering and New Technology
Paradigma Software, Inc
Valentina - Joining Worlds of Information
http://www.paradigmasoft.com
[I feel the need: the need for speed]
    
    
More information about the antlr-interest
mailing list