/// <inheritdoc/>
        public override ParserRuleResult Execute(InputBuffer buffer)
        {
            var succeeded = _delegate(buffer, out var token);

            return(succeeded ?
                   ParserRuleResult.Success(token) :
                   ParserRuleResult.Fail());
        }
 /// <inheritdoc/>
 public override ParserRuleResult Execute(InputBuffer buffer)
 {
     return(_condition(buffer) ?
            ParserRuleResult.Success(token: null) :
            ParserRuleResult.Fail());
 }