[antlr-interest] Q: move from v2 to v3 parser grammar. Rewrite tree rule

Matt Fowles matt.fowles at gmail.com
Sun Mar 20 04:11:20 PDT 2011


Rusian~

Try:

query_expression
    :    query_term (( "union" | "except" )^ "all"? query_term)*
         -> ^(QUERY_EXPRESSION $query_expression)
    ;

Matt

On Sun, Mar 20, 2011 at 10:40 AM, Ruslan Zasukhin
<ruslan_zasukhin at valentina-db.com> wrote:
> 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]
>
>
>
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address
>


More information about the antlr-interest mailing list