using System.Collections.Generic;
using System.Linq.Expressions;
public static void Main()
var context = new EvalContext();
var compiled = context.Compile<Func<int>>(expression);
var lastExpression = context.LastCompiledExpression;
Console.WriteLine($"Constant Folding Enabled; NodeType: {lastExpression.NodeType}; Value {((ConstantExpression)lastExpression).Value}");
var context = new EvalContext();
context.DisableConstantFolding = true;
var compiled = context.Compile<Func<int>>(expression);
var lastExpression = context.LastCompiledExpression;
Console.WriteLine($"Constant Folding Disabled; NodeType: {lastExpression.NodeType}; LeftValue: {((ConstantExpression)((BinaryExpression)lastExpression).Left).Value}; RightValue: {((ConstantExpression)((BinaryExpression)lastExpression).Right).Value};");