match method
Match current input symbol against ttype
. If the symbol type
matches, {@link ANTLRErrorStrategy#reportMatch} and {@link #consume} are
called to complete the match process.
If the symbol type does not match, {@link ANTLRErrorStrategy#recoverInline} is called on the current error strategy to attempt recovery. If {@link #getBuildParseTree} is [true] and the token index of the symbol returned by {@link ANTLRErrorStrategy#recoverInline} is -1, the symbol is added to the parse tree by calling {@link #createErrorNode(ParserRuleContext, Token)} then {@link ParserRuleContext#addErrorNode(ErrorNode)}.
@param ttype the token type to match
@return the matched symbol
@throws RecognitionException if the current input symbol did not match
ttype
and the error strategy could not recover from the
mismatched symbol
Implementation
Token match(int ttype) {
var t = currentToken;
if (t.type == ttype) {
if (ttype == Token.EOF) {
matchedEOF = true;
}
errorHandler.reportMatch(this);
consume();
} else {
t = errorHandler.recoverInline(this);
if (buildParseTree && t.tokenIndex == -1) {
// we must have conjured up a new token during single token insertion
// if it's not the current symbol
context!.addErrorNode(createErrorNode(context!, t));
}
}
return t;
}