code: def make_while_loop(test_and_body_instrs, else_body_instrs, context):
      
      top_of_loop = test_and_body_instrs[0]
  
      # The popped elements are the stack_builders for the loop test expression.
      # The top of the loop_body_instrs is either a POP_JUMP_IF_TRUE or a
      # POP_JUMP_IF_FALSE.
      test, body_instrs = make_while_loop_test_expr(test_and_body_instrs)
      body, orelse_body = make_loop_body_and_orelse(
          top_of_loop, body_instrs, else_body_instrs, context,
      )
  
      # while-else blocks are not yet supported or handled.
      return ast.While(test=test, body=body, orelse=orelse_body)
docs: Make an ast.While node.
  
      Parameters
      ----------
      test_and_body_instrs : deque
          Queue of instructions forming the loop test expression and body.
      else_body_instrs : deque
          Queue of instructions forming the else block of the loop.
      context : DecompilationContext