match method

Token match(
  1. int ttype
)
inherited

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;
}