/** * Get matched token by token type. * * @param tokenType token type * @return matched token * @throws RecognitionException mismatch throw exception */ public Token getMatchedToken(final int tokenType) throws RecognitionException { Token result = parser.getCurrentToken(); boolean isIdentifierCompatible = false; if (identifierTokenIndex == tokenType && identifierTokenIndex > result.getType()) { isIdentifierCompatible = true; } if (result.getType() == tokenType || isIdentifierCompatible) { if (Token.EOF != tokenType && isIdentifierCompatible && result instanceof CommonToken) { ((CommonToken) result).setType(identifierTokenIndex); } parser.getErrorHandler().reportMatch(parser); parser.consume(); } else { result = parser.getErrorHandler().recoverInline(parser); if (parser.getBuildParseTree() && -1 == result.getTokenIndex()) { parser.getContext().addErrorNode(parser.createErrorNode(parser.getContext(), result)); } } return result; } }
_ctx.addErrorNode(createErrorNode(_ctx,t));
_ctx.addErrorNode(createErrorNode(_ctx,t));
if (_buildParseTrees || hasListener) { if ( _errHandler.inErrorRecoveryMode(this) ) { ErrorNode node = _ctx.addErrorNode(createErrorNode(_ctx,o)); if (_parseListeners != null) { for (ParseTreeListener listener : _parseListeners) {
-1, -1, // invalid start/stop tok.getLine(), tok.getCharPositionInLine()); _ctx.addErrorNode(createErrorNode(_ctx,errToken)); -1, -1, // invalid start/stop tok.getLine(), tok.getCharPositionInLine()); _ctx.addErrorNode(createErrorNode(_ctx,errToken));
@Override protected void consumeUntil(Parser recognizer, IntervalSet set) { Token o = recognizer.getCurrentToken(); if ( o.getType()==Token.EOF ) { recognizer.getRuleContext().addErrorNode(o); } super.consumeUntil(recognizer, set); }
/** * Create an error node with the text of the current line and insert it into parse tree * * @param recognizer The recognizer with which to create the error node * @param separator The token that ends the unrecognized link. This is also used to determine the * index of the line to return in error messages. * @return The token contained in the error node */ private Token createErrorNode(Parser recognizer, ParserRuleContext ctx, Token separator) { if (_recoveredAtEof) { _recoveredAtEof = false; throw new BatfishRecognitionException(recognizer, recognizer.getInputStream(), ctx); } if (separator.getType() == Lexer.EOF) { _recoveredAtEof = true; } String lineText = _lines[separator.getLine() - 1] + separator.getText(); Token lineToken = new UnrecognizedLineToken(lineText, separator.getLine(), _parserStateAtRecovery); ErrorNode errorNode = recognizer.createErrorNode(ctx, lineToken); ctx.addErrorNode(errorNode); return lineToken; }
_ctx.addErrorNode(createErrorNode(_ctx,t));
_ctx.addErrorNode(createErrorNode(_ctx,t));
_ctx.addErrorNode(createErrorNode(_ctx,t));
_ctx.addErrorNode(createErrorNode(_ctx,t));
-1, -1, // invalid start/stop tok.getLine(), tok.getCharPositionInLine()); _ctx.addErrorNode(errToken); -1, -1, // invalid start/stop tok.getLine(), tok.getCharPositionInLine()); _ctx.addErrorNode(errToken);
if (_buildParseTrees || hasListener) { if ( _errHandler.inErrorRecoveryMode(this) ) { ErrorNode node = _ctx.addErrorNode(createErrorNode(_ctx,o)); if (_parseListeners != null) { for (ParseTreeListener listener : _parseListeners) {
if (_buildParseTrees || hasListener) { if ( _errHandler.inErrorRecoveryMode(this) ) { ErrorNode node = _ctx.addErrorNode(createErrorNode(_ctx,o)); if (_parseListeners != null) { for (ParseTreeListener listener : _parseListeners) {
-1, -1, // invalid start/stop tok.getLine(), tok.getCharPositionInLine()); _ctx.addErrorNode(createErrorNode(_ctx,errToken)); -1, -1, // invalid start/stop tok.getLine(), tok.getCharPositionInLine()); _ctx.addErrorNode(createErrorNode(_ctx,errToken));
-1, -1, // invalid start/stop tok.getLine(), tok.getCharPositionInLine()); _ctx.addErrorNode(createErrorNode(_ctx,errToken)); -1, -1, // invalid start/stop tok.getLine(), tok.getCharPositionInLine()); _ctx.addErrorNode(createErrorNode(_ctx,errToken));