[antlr-interest] Helpfulness of exception messages
Michael Sielemann
michael.sielemann at asdl.gatech.edu
Mon Oct 17 08:31:47 PDT 2005
Hi list,
Now that I understand more and more about ANTLR I am getting really
impressed and would like to say a big "Thanks!" to everybody involved in
this.
I have one question though: Due to the nature of the input I am parsing I
have to distinguish various ways to define a construct. In the example
below, these alternatives are in the rule 'body'. If someone providing an
input file to the parser forgets a semicolon or makes a similar minor
mistake inside the rule 'composition' for example, ANTLR assumes that (
IDENT composition END ) is not the appropriate alternative to choose (but it
actually is the right alternative, some user just messed up a part of the
syntax). The other alternatives do not work in that case either.
Consequently, ANTLR raises a no viable alternative exception and says that
he could not match the token IDENT. It would be more helpful to get a
message like "Expected token SEMI" however. For me, it would thus be helpful
to have some sort of ANTLR directive at a point in the rule 'composition'
saying "If you're this far then assume that you chose the right alternative
and consume all the tokens until here". Is there such a feature in ANTLR? If
someone had some hints on how to get this done I would seriously appreciate
the help.
Thank you guys in any case MICHAEL
class ExampleParser extends parser;
start_rule
: (
( WITHIN (name)? SEMI! )?
( ( CLASS | PACKAGE )
body
SEMI!
)*
)
;
body : (
( IDENT composition END )
| ( IDENT EQ name (modification)? )
)
;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/antlr-interest/attachments/20051017/3eb43ddb/attachment.html
More information about the antlr-interest
mailing list