code: static INode addChild(INode parent, IContext context, String child) {
          INode result;
          if (null == parent) { //if this is true, then it is the root of the tree
              result = context.createRoot(child);
          } else {
              result = parent.createChild(child);
          }
  
          return result;
      }
docs: Adds a node to the tree.
  
  @param parent  parent node, if this is null then we are creating the root of the tree
  and the child parameter represents the name of the root
  @param context a tree being created
  @param child   child to be added
  @return inserted node