public override RCValue Edit(RCRunner runner, RCValueDelegate editor) { RCOperator result = (RCOperator)base.Edit(runner, editor); if (result != null) { return(result); } RCValue left = null; if (_left != null) { left = _left.Edit(runner, editor); } RCValue right = _right.Edit(runner, editor); if (left != null || right != null) { if (left == null) { left = _left; } if (right == null) { right = _right; } result = runner.New(_name, left, right); return(result); } else { return(null); } }