code: def _convert_simple_value_boolean_query_to_and_boolean_queries(tree, keyword):
      
  
      def _create_operator_node(value_node):
          """Creates a KeywordOp or a ValueOp node."""
          base_node = value_node.op if isinstance(value_node, NotOp) else value_node
          updated_base_node = KeywordOp(keyword, base_node) if keyword else ValueOp(base_node)
  
          return NotOp(updated_base_node) if isinstance(value_node, NotOp) else updated_base_node
  
      def _get_bool_op_type(bool_op):
          return AndOp if isinstance(bool_op, And) else OrOp
  
      new_tree_root = _get_bool_op_type(tree.bool_op)(None, None)
      current_tree = new_tree_root
      previous_tree = tree
  
      while True:  # Walk down the tree while building the new AndOp queries subtree.
          current_tree.left = _create_operator_node(previous_tree.left)
  
          if not isinstance(previous_tree.right, SimpleValueBooleanQuery):
              current_tree.right = _create_operator_node(previous_tree.right)
              break
  
          previous_tree = previous_tree.right
          current_tree.right = _get_bool_op_type(previous_tree.bool_op)(None, None)
          current_tree = current_tree.right
  
      return new_tree_root
docs: Chain SimpleValueBooleanQuery values into chained AndOp queries with the given current Keyword.