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

Loring Craymer lgcraymer at yahoo.com
Wed Jul 20 10:15:15 PDT 2011


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


More information about the antlr-interest mailing list