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 -- 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.