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
<[email protected]> 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
>
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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/il-antlr-interest?hl=en.