[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