failOrAccept method

int failOrAccept(
  1. SimState prevAccept,
  2. CharStream input,
  3. ATNConfigSet reach,
  4. int t,
)

Implementation

int failOrAccept(
  SimState prevAccept,
  CharStream input,
  ATNConfigSet reach,
  int t,
) {
  if (prevAccept.dfaState != null) {
    final lexerActionExecutor = prevAccept.dfaState!.lexerActionExecutor;
    accept(
      input,
      lexerActionExecutor,
      startIndex,
      prevAccept.index,
      prevAccept.line,
      prevAccept.charPos,
    );
    return prevAccept.dfaState!.prediction;
  } else {
    // if no accept and EOF is first char, return EOF
    if (t == IntStream.EOF && input.index == startIndex) {
      return Token.EOF;
    }

    throw LexerNoViableAltException(recog, input, startIndex, reach);
  }
}