public override ILExpression BuildNew(PatternMatcher pm)
                {
                    var res = pm.Operator;

                    res.Arguments.Clear();
                    if (pm.SimpleLeftOperand)
                    {
                        res.Arguments.Add(pm.SimpleOperand);
                    }
                    res.Arguments.Add(VariableA.BuildNew(pm));
                    if (pm.B != null)
                    {
                        res.Arguments.Add(VariableB.BuildNew(pm));
                    }
                    else if (pm.SimpleOperand != null && !pm.SimpleLeftOperand)
                    {
                        res.Arguments.Add(pm.SimpleOperand);
                    }
                    return(res);
                }