def print_tree(self, ast_obj=None):
        """Convert AST object to tree view of BEL AST

        Returns:
            prints tree of BEL AST to STDOUT
        """

        if not ast_obj:
            ast_obj = self

        if hasattr(self, "bel_subject"):
            print("Subject:")
            self.bel_subject.print_tree(self.bel_subject, indent=0)

        if hasattr(self, "bel_relation"):
            print("Relation:", self.bel_relation)

        if hasattr(self, "bel_object"):
            if self.bel_object.type == "BELAst":
                if hasattr(self, "bel_subject"):
                    print("Nested Subject:")
                    self.bel_object.bel_subject.print_tree(indent=0)

                if hasattr(self, "bel_relation"):
                    print("Nested Relation:", self.bel_object.bel_relation)

                if hasattr(self, "bel_object"):
                    print("Nested Object:")
                    self.bel_object.bel_object.print_tree(indent=0)
            else:
                print("Object:")
                self.bel_object.print_tree(self.bel_object, indent=0)

        return self