protected override BaseNode VisitNot(NotNode node) { Visit(node.Left); if (_currentResult.HasValue) { _currentResult = !_currentResult.Value; } return(node); }
protected virtual BaseNode VisitNot(NotNode node) { var left = Visit(node.Left); return(left == node.Left ? node : new NotNode(left)); }