Also note that use use the decision number (24 here) by using -dfa option on
antlr and then loading your grammar-dec-24.dot into Graphviz. look at state 3
and you'll see that the token ALT (in this case) has no path to take.
Ter
> ASTVerifier.g: node from after line 150:17 [grammarSpec, rules, rule,
> altListAsBlock, altList, alternative, elements, element, ebnf, block,
> altList, alternative] no viable alt; toke...@-1,0:0='ALT',<84>,0:-1]
> (decision=24 state 3) decision=<<>>
> context=...DOWN BLOCK DOWN >>>ALT<<< DOWN DOC_COMMENT...
>
> Here's my code:
>
> public String getErrorMessage(RecognitionException e,
> String[] tokenNames)
> {
> List stack = getRuleInvocationStack(e, this.getClass().getName());
> String msg = null;
> String inputContext =
> ((Tree)input.LT(-3)).getText()+" "+
> ((Tree)input.LT(-2)).getText()+" "+
> ((Tree)input.LT(-1)).getText()+" >>>"+
> ((Tree)input.LT(1)).getText()+"<<< "+
> ((Tree)input.LT(2)).getText()+" "+
> ((Tree)input.LT(3)).getText();
> if ( e instanceof NoViableAltException ) {
> NoViableAltException nvae = (NoViableAltException)e;
> msg = " no viable alt; token="+e.token+
> " (decision="+nvae.decisionNumber+
> " state "+nvae.stateNumber+")"+
> " decision=<<"+nvae.grammarDecisionDescription+">>";
> }
> else {
> msg = super.getErrorMessage(e, tokenNames);
> }
> return stack+" "+msg+" context=..."+inputContext+"...";
> }
> public String getTokenErrorDisplay(Token t) {
> return t.toString();
> }
>
> Ter
>
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe:
> http://www.antlr.org/mailman/options/antlr-interest/your-email-address
>
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe:
> http://www.antlr.org/mailman/options/antlr-interest/your-email-address
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.