text: public virtual IToken Consume(){IToken o = CurrentToken;if (o.Type != Eof){((ITokenStream)InputStream).Consume();}bool hasListener = _parseListeners != null && _parseListeners.Count != 0;if (_buildParseTrees || hasListener){if (_errHandler.InErrorRecoveryMode(this)){IErrorNode node = _ctx.AddErrorNode(o);if (_parseListeners != null){foreach (IParseTreeListener listener in _parseListeners){listener.VisitErrorNode(node);}}}else{ITerminalNode node = _ctx.AddChild(o);if (_parseListeners != null){foreach (IParseTreeListener listener in _parseListeners){listener.VisitTerminal(node);}}}}return o;}