[antlr-interest] newbie question - mismatched input/token

Mark Volkmann r.mark.volkmann at gmail.com
Thu Jan 17 15:37:34 PST 2008


On Jan 17, 2008 5:15 PM, Ashish <asengine at gmail.com> wrote:
> Hi,
> I'm trying to come up with a custom select statement. However, for the
> simple grammar and input I get a mismatched-token error - see details below.
> Obviously I'm missing something basic here. Thanks in advance

Try changing "select : SELECT ID+ ;" to "select : SELECT ID ;"
Maybe the + is making it pick up the FROM token.
Also remove the + from your from rule.
There is already a + in the ID rule to match multiple letters.

> -Ashish
>
> //Input
> SELECT a FROM b
>
> //Error message:
> recoverFromMismatchedToken
> BR.recoverFromMismatchedToken
> line 1:0 mismatched input 'SELECT' expecting FROM
>
> //Select.g:
> grammar Select;
>
> prog : sstmt;
>
> sstmt : select (from)?;
>
> select : SELECT ID+ ;
>
> from  : FROM ID+   ;
>
> SELECT : 'select'|'SELECT';
> FROM : 'from'|'FROM';
> WHERE : 'where'|'WHERE';
> ID :  ('a'..'z'|'A'..'Z')+;
> INT :  ('0'..'9')+;
> WS : (' '|'\t')+ {$channel=HIDDEN;};
> NEWLINE : ('\r'|'\n')+ {$channel=HIDDEN;};
>



-- 
R. Mark Volkmann
Object Computing, Inc.


More information about the antlr-interest mailing list