public Token consume() {Token o = getCurrentToken();if (o.getType() != EOF) {getInputStream().consume();}boolean hasListener = _parseListeners != null && !_parseListeners.isEmpty();if (_buildParseTrees || hasListener) {if ( _errHandler.inErrorRecoveryMode(this) ) {ErrorNode node = _ctx.addErrorNode(createErrorNode(_ctx,o));if (_parseListeners != null) {for (ParseTreeListener listener : _parseListeners) {listener.visitErrorNode(node);}}}else {TerminalNode node = _ctx.addChild(createTerminalNode(_ctx,o));if (_parseListeners != null) {for (ParseTreeListener listener : _parseListeners) {listener.visitTerminal(node);}}}}return o;}

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