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.

Reply via email to