public override AstVisitAction VisitUnaryExpression(UnaryExpressionAst unaryExpressionAst)
{
switch (unaryExpressionAst.TokenKind)
{
case TokenKind.PostfixPlusPlus:
case TokenKind.PlusPlus:
case TokenKind.MinusMinus:
case TokenKind.PostfixMinusMinus:
VisitIncrementDecrementExpression(unaryExpressionAst);
break;
case TokenKind.Not:
var value = EvaluateAst(unaryExpressionAst.Child, _writeSideEffectsToPipeline);
var boolValue = (bool) LanguagePrimitives.ConvertTo(value, typeof(bool));
_pipelineCommandRuntime.WriteObject(!boolValue);
break;
default:
throw new NotImplementedException(unaryExpressionAst.ToString());
}
return AstVisitAction.SkipChildren;
}