// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// THE ASSEMBLY BUILT FROM THIS SOURCE FILE HAS BEEN DEPRECATED FOR YEARS. IT IS BUILT ONLY TO PROVIDE
// BACKWARD COMPATIBILITY FOR API USERS WHO HAVE NOT YET MOVED TO UPDATED APIS. PLEASE DO NOT SEND PULL
// REQUESTS THAT CHANGE THIS FILE WITHOUT FIRST CHECKING WITH THE MAINTAINERS THAT THE FIX IS REQUIRED.
namespace Microsoft.Build.BuildEngine
{
/// <summary>
/// Performs logical NOT on left child
/// Does not update conditioned properties table
/// </summary>
internal sealed class NotExpressionNode : OperatorExpressionNode
{
/// <summary>
/// Evaluate as boolean
/// </summary>
internal override bool BoolEvaluate(ConditionEvaluationState state)
{
return !LeftChild.BoolEvaluate(state);
}
internal override bool CanBoolEvaluate(ConditionEvaluationState state)
{
return LeftChild.CanBoolEvaluate(state);
}
/// <summary>
/// Returns unexpanded value with '!' prepended. Useful for error messages.
/// </summary>
internal override string GetUnexpandedValue(ConditionEvaluationState state)
{
return "!" + LeftChild.GetUnexpandedValue(state);
}
/// <summary>
/// Returns expanded value with '!' prepended. Useful for error messages.
/// </summary>
internal override string GetExpandedValue(ConditionEvaluationState state)
{
return "!" + LeftChild.GetExpandedValue(state);
}
}
}
|