xFunc
xFunc copied to clipboard
Introduce simplification rules
Like:
public class /* struct */ AddZeroSimplifier : BaseSimplifier<Add>
{
public override IExpression Simplify(Add exp)
{
var result = AnalyzeBinaryArgument(exp);
return result switch
{
(Number(var number), _) when number == 0
=> exp.Right,
(_, Number(var number)) when number == 0
=> exp.Left,
_ => exp,
};
}
public string Name => "Add zero";
public string Description => "Removes unnecessary zeros from addition."
}
Simplification steps?