Jim, Gray, Loring, Thanks for pitching in to give me some direction to focus on.
ANTLR Gurus, I've solved the issue. Still I am unable to reason out my fix. I am providing the offending grammar snippet below and would appreciate your rationale to get an insight into the problem and how the fix works!! The below rule fails with the " no viable alt; token=[@-1,0:0='DOWN'" error message compoundExpression: ^(sclarSubExpression conversion_clause) | sclarSubExpression ; However when I change the rule like the following, i.e make the conversion_clause optional and then remove the second alternative every thing works fine!! In my mind both the rules are semantically identical. compoundExpression: ^(sclarSubExpression conversion_clause?) ; Thanks a ton. -Vasan On 7/21/2011 4:16 AM, Jim Idle wrote: > Or use the dot description producing methods and create a nice graphic > with graphviz. Much easier to see that way. > > Jim > >> -----Original Message----- >> From: antlr-interest-boun...@antlr.org [mailto:antlr-interest- >> boun...@antlr.org] On Behalf Of Gary Miller >> Sent: Wednesday, July 20, 2011 3:44 PM >> To: antlr-interest@antlr.org >> Subject: Re: [antlr-interest] Deciphering the TreeWalker error message >> ... >> >> I often find it usefully to print out the AST (toStringTree in Java) >> and walk through the tree grammar manually. >> >> Regards >> Gary >> >> On Thu, Jul 21, 2011 at 3:15 AM, Loring Craymer<lgcray...@yahoo.com> >> wrote: >> >>> "UP" and "DOWN" tokens (start/end of child list for tree) do not have >>> location information attached so no line/column error reporting. >>> Mostly the error says that you started a subtree that your grammar >>> does not match, probably an LPAREN or RPAREN rooted subtree from your >>> report of cases where you do or do not get the error. >>> >>> --Loring >>> >>> >>> >>>> ________________________________ >>>> From: srinivasan karthikeyan pitchai< >>> srinivasan.karthikeyan.pitc...@oracle.com> >>>> To: antlr-interest@antlr.org >>>> Cc: Terence Parr<pa...@cs.usfca.edu> >>>> Sent: Wednesday, July 20, 2011 9:46 AM >>>> Subject: [antlr-interest] Deciphering the TreeWalker error message >> ... >>>> Hi Folks, >>>> What does the ANTLR walker error message like the following mean? >>>> >>>> no viable alt; token=[@-1,0:0='DOWN' >>>> >>>> >>>> Would appreciate any general guidance/suggestions to zero in on the >>>> errors of this nature. >>>> >>>> Thanks, >>>> Vasan >>>> >>>> >>>> Input sql: >>>> ----------- >>>> >>>> select (1) from table1 >>>> where 2 between 3 and 4; >>>> >>>> >>>> Error Message: >>>> -------------------- >>>> >>>> TDWalker1.g: node from after line 2:8 [start1, startStatement, dml, >>>> query_term, query_expression, query, query_unit, where_clause, >>>> condition_list, condition_subexpression, condition] Walker1: no >>>> viable alt; token=[@-1,0:0='DOWN',<2>,0:-1] (decision=127 state 0) >>>> decision=<<590:1: condition options {backtrack=true; } : ( ^( >>>> comparison_operator ( condition_quantifier )? c1= condition c2= >>>> condition ) | ^( BETWEEN expression ^( and_or_operator c1= condition >>>> c2= condition ) ) | ^( condition_operator expression c1= condition >> ^( >>>> ESCAPE escape_character ) ) | ^( condition_operator expression c1= >>>> condition ) >>>> | ^( condition_operator expression_list c1= condition ) | ^( NOT c1= >>>> condition ) | ^( EXISTS expression ) | ^( IS_NOT_NULL expression ) | >>>> ^( IS_NULL expression ) | ^( IS_NOT expression UNTIL_CHANGED ) | ^( >>>> IS expression UNTIL_CHANGED ) | ^( IS_NOT expression UNTIL_CLOSED ) >> | >>>> ^( IS expression UNTIL_CLOSED ) | expression | condition_list );>> >>> context=...... >>>> >>>> However the following SQL, that just doesn't have the parenthesis >>>> around 1, works fine!!! >>>> >>>> select (1) from table1 >>>> where 2 between 3 and 4; >>>> >>>> >>>> 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 >> 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 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.