[antlr-interest] Deciphering the TreeWalker error message ...

Jim Idle jimi at temporal-wave.com
Wed Jul 20 15:46:04 PDT 2011


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-bounces at antlr.org [mailto:antlr-interest-
> bounces at antlr.org] On Behalf Of Gary Miller
> Sent: Wednesday, July 20, 2011 3:44 PM
> To: antlr-interest at 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 <lgcraymer at 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.pitchai at oracle.com>
> > >To: antlr-interest at antlr.org
> > >Cc: Terence Parr <parrt at 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


More information about the antlr-interest mailing list