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);
     }
 }