public static void Overview()
{
var value = Expression.Parameter(typeof(int), "value");
var result = Expression.Parameter(typeof(int), "result");
var label = Expression.Label(typeof(int));
var block = Expression.Block(
new[] { result },
Expression.Assign(result, Expression.Constant(1)),
Expression.Loop(
Expression.IfThenElse(
Expression.GreaterThan(value, Expression.Constant(1)),
Expression.MultiplyAssign(result,