java: public void recover(Parser recognizer, RecognitionException e) {if ( lastErrorIndex==recognizer.getInputStream().index() &&lastErrorStates != null &&lastErrorStates.contains(recognizer.getState()) ) {recognizer.consume();}lastErrorIndex = recognizer.getInputStream().index();if ( lastErrorStates==null ) lastErrorStates = new IntervalSet();lastErrorStates.add(recognizer.getState());IntervalSet followSet = getErrorRecoverySet(recognizer);consumeUntil(recognizer, followSet);}
C#: public virtual void Recover(Parser recognizer, RecognitionException e){if (lastErrorIndex == ((ITokenStream)recognizer.InputStream).Index && lastErrorStates != null && lastErrorStates.Contains(recognizer.State)){recognizer.Consume();}lastErrorIndex = ((ITokenStream)recognizer.InputStream).Index;if (lastErrorStates == null){lastErrorStates = new IntervalSet();}lastErrorStates.Add(recognizer.State);IntervalSet followSet = GetErrorRecoverySet(recognizer);ConsumeUntil(recognizer, followSet);}