[antlr-interest] Grammar not detecting extraneous input at end

Bart Kiers bkiers at gmail.com
Thu Jun 3 11:47:14 PDT 2010


Hi,

On Thu, Jun 3, 2010 at 8:38 PM, Karim Chichakly <karimc17 at gmail.com> wrote:

> Hi,
>
> I have a grammar that does not give an error (in ANTLR 3.2) if there are
> extraneous characters at the end of the input.  For example, I would expect
> "(a+b))" to generate an error, but it does not.  "(a+b)" is parsed fine and
> the extra ")" at the end is just ignored.
>

Since "(a+b))" does not contain any illegal tokens, the parser simply stops
after it (successfully) parses "(a+b)". You'll want to "force" the parser to
go through the entire token stream by adding an 'EOF' after your 'equation'
rule:

equation
  :  expr EOF
  ;


Regards,

Bart.


More information about the antlr-interest mailing list