Hi there,
I'd like to throw a Non-Antlr exception from one of my rules in a Parser. I'm
using ANTLR v3
I've tried to find some documentation and came across some stuff for ANTLR v2
that says the following:
"
To specify that your parser (or
tree parser rule) can throw a non-ANTLR specific exception, use the
exceptions clause. For example, here is a simple parser specification
with a rule that throws MyException:
class P extends Parser;
a throws MyException
: A
;
ANTLR generates the following for rule a:
public final void a()
throws RecognitionException,
TokenStreamException,
MyException
{
try {
match(A);
}
catch (RecognitionException ex) {
reportError(ex);
consume();
consumeUntil(_tokenSet_0);
}
}
"
I have implemented my rule as follows:
variable throws IdentifierIsKeywordException
@after {
if($i.text.equals("repeat")) { throw new
IdentifierIsKeywordException("\"repeat\"is a keyword, and may not be used as an
identifier.");}
}
: i=IDENTIFIER -> IDENTIFIER
;
but in the java file that is created for my parser, the method relating to this
rule still only throws the RecognitionException.
I really want to throw this exception and for it to be propagated right down to
the class that calls my Parser. I'd be grateful for any hints as to where I'm
going wrong and how I can get the method in the parser for my variable rule to
thow my IdentifierIsKeywordException.
Many thanks in advance
Joe
List: http://www.antlr.org/mailman/listinfo/antlr-interest
Unsubscribe:
http://www.antlr.org/mailman/options/antlr-interest/your-email-address
--
You received this message because you are subscribed to the Google Groups
"il-antlr-interest" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/il-antlr-interest?hl=en.