On 3/22/11 8:11 PM, "Ruslan Zasukhin" <ruslan_zasuk...@valentina-db.com> wrote:
IF to remove ^ ( "union" | "except" )^ query_expression : query_term (( "union" | "except" ) "all"? query_term)* -> ^(QUERY_EXPRESSION $query_expression) then all looks correct, but tree is empty from $query_expression TREE: (SQL_STATEMENT QUERY_EXPRESSION) But it should looks as TREE: (SQL_STATEMENT (QUERY_EXPRESSION (select (SELECT_LIST (SELECT_ELEM_LIST ) (from (NON_JOIN_TABLE t1))))) > 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.