code: def add_child(self, node, as_last=True):
          
          if not isinstance(node, Tree):
              self.log_exc(u"node is not an instance of Tree", None, True, TypeError)
          if as_last:
              self.__children.append(node)
          else:
              self.__children = [node] + self.__children
          node.__parent = self
          new_height = 1 + self.level
          for n in node.subtree:
              n.__level += new_height
docs: Add the given child to the current list of children.
  
          The new child is appended as the last child if ``as_last``
          is ``True``, or as the first child if ``as_last`` is ``False``.
  
          This call updates the ``__parent`` and ``__level`` fields of ``node``.
  
          :param node: the child node to be added
          :type  node: :class:`~aeneas.tree.Tree`
          :param bool as_last: if ``True``, append the node as the last child;
                               if ``False``, append the node as the first child
          :raises: TypeError if ``node`` is not an instance of :class:`~aeneas.tree.Tree`