def traverse(self, strategy="<STR_LIT>", is_leaf_fn=None):
if strategy == "<STR_LIT>":<EOL><INDENT>return self._iter_descendants_preorder(is_leaf_fn=is_leaf_fn)<EOL><DEDENT>elif strategy == "<STR_LIT>":<EOL><INDENT>return self._iter_descendants_levelorder(is_leaf_fn=is_leaf_fn)<EOL><DEDENT>elif strategy == "<STR_LIT>":<EOL><INDENT>return self._iter_descendants_postorder(is_leaf_fn=is_leaf_fn)<EOL><DEDENT>
Returns an iterator to traverse tree under this node.

        Parameters:
        -----------
        strategy: 
            set the way in which tree will be traversed. Possible 
            values are: "preorder" (first parent and then children)
            'postorder' (first children and the parent) and 
            "levelorder" (nodes are visited in order from root to leaves)

        is_leaf_fn: 
            If supplied, ``is_leaf_fn`` function will be used to 
            interrogate nodes about if they are terminal or internal. 
            ``is_leaf_fn`` function should receive a node instance as first
            argument and return True or False. Use this argument to 
            traverse a tree by dynamically collapsing internal nodes matching
            ``is_leaf_fn``.