On 3/20/11 1:11 PM, "Matt Fowles" <matt.fow...@gmail.com> wrote:

Hi Matt,

> Ruslan,

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

Well,  $  not helps.   Still same
       error 165 uses rewrite syntax and also an ast operator

As I understand, 
    ->   is re-write syntax
    ^    is AST operator ...


 
> Matt
> 
> On Sun, Mar 20, 2011 at 10:40 AM, Ruslan Zasukhin
> <ruslan_zasuk...@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

-- 
You received this message because you are subscribed to the Google Groups 
"il-antlr-interest" group.
To post to this group, send email to il-antlr-inter...@googlegroups.com.
To unsubscribe from this group, send email to 
il-antlr-interest+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/il-antlr-interest?hl=en.

Reply via email to