Skip to content

Introduce simplification rules #224

Open
@sys27

Description

@sys27

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?

Metadata

Metadata

Assignees

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions