[antlr-interest] Newbie question (not seeing expected error)

Arnar Birgisson arnarb at oddi.is
Thu Dec 2 10:00:55 PST 2004


Hello Derek,

> So far so good.  However, I don't get the expected error if my
mistake
> is in the SECOND sphere:
> 
>   sphere 10
>   20 sphere
> 
> Now the first statement is parsed correctly, but there is no error
on
> the second one.  It's just silently ignored and my ouput is this:
> 
>   Sphere(radius=10)
> 
> Why is there no error about the second sphere?  Clearly the "20
> sphere" line is wrong, so why does my parser bail silently after the
> error?

After parsing the first line, the parser is at the end of your start
rule. From there, it doesn't expect to see NUMBER (20) so it assumes
that it's done parsing and the rest of the input is just some garbage
(which is sometimes allowed in language definitions). This is normal
behaviour when you are at the end of the start-rule, I think.

If you want to parse the whole file, you need to add the token EOF
(end-of-file) to the end of your start rule:

  class P extends Parser;
  start  : (shape)+ EOF;

Given the above example you should get an error in the lines of
"Unexpected token NUMBER, expecting SPHERE or EOF."

Hope this helps. :o)

Arnar


 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/antlr-interest/

<*> To unsubscribe from this group, send an email to:
    antlr-interest-unsubscribe at yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 





More information about the antlr-interest mailing list