code: def add_child_to_subtree( self, parent_word_id, tree ):
          ''' Searches for the tree with *parent_word_id* from the current subtree 
              (from this tree and from all of its subtrees). If the parent tree is 
              found, attaches the given *tree* as its child. If the parent tree is
              not found, the current tree is not changed.
          '''
          if (self.word_id == parent_word_id):
              self.add_child_to_self( tree )
          elif (self.children):
              for child in self.children:
                  child.add_child_to_subtree(parent_word_id, treef add_child_to_subtree( self, parent_word_id, tree ):
          ''' Searches for the tree with *parent_word_id* from the current subtree 
              (from this tree and from all of its subtrees). If the parent tree is 
              found, attaches the given *tree* as its child. If the parent tree is
              not found, the current tree is not changed.
          '''
          if (self.word_id == parent_word_id):
              self.add_child_to_self( tree )
          elif (self.children):
              for child in self.children:
                  child.add_child_to_subtree(parent_word_id, tree)
docs: Searches for the tree with *parent_word_id* from the current subtree 
              (from this tree and from all of its subtrees). If the parent tree is 
              found, attaches the given *tree* as its child. If the parent tree is
              not found, the current tree is not changed.