public static void ReplaceChildNode( ExprNode parentNode, ExprNode nodeToReplace, ExprNode newNode) { var index = FindChildNode(parentNode, nodeToReplace); if (index == -1) { parentNode.ReplaceUnlistedChildNode(nodeToReplace, newNode); } else { parentNode.SetChildNode(index, newNode); } }