docs: def _parse_arguments():
      """
      Constructs and parses the command line arguments for eg. Returns an args
      object as returned by parser.parse_args().
      """
      parser = argparse.ArgumentParser(
          description='eg provides examples of common command usage.'
      )
  
      parser.add_argument(
          '-v',
          '--version',
          action='store_true',
          help='Display version information about eg'
      )
  
      parser.add_argument(
          '-f',
          '--config-file',
          help='Path to the .egrc file, if it is not in the default location.'
      )
  
      parser.add_argument(
          '-e',
          '--edit',
          action='store_true',
          help="""Edit the custom examples for the given command. If editor-cmd
          is not set in your .egrc and $VISUAL and $EDITOR are not set, prints a
          message and does nothing."""
      )
  
      parser.add_argument(
          '--examples-dir',
          help='The location to the examples/ dir that ships with eg'
      )
  
      parser.add_argument(
          '-c',
          '--custom-dir',
          help='Path to a directory containing user-defined examples.'
      )
  
      parser.add_argument(
          '-p',
          '--pager-cmd',
          help='String literal that will be invoked to page output.'
      )
  
      parser.add_argument(
          '-l',
          '--list',
          action='store_true',
          help='Show all the programs with eg entries.'
      )
  
      parser.add_argument(
          '--color',
          action='store_true',
          dest='use_color',
          default=None,
          help='Colorize output.'
      )
  
      parser.add_argument(
          '-s',
          '--squeeze',
          action='store_true',
          default=None,
          help='Show fewer blank lines in output.'
      )
  
      parser.add_argument(
          '--no-color',
          action='store_false',
          dest='use_color',
          help='Do not colorize output.'
      )
  
      parser.add_argument(
          'program',
          nargs='?',
          help='The program for which to display examples.'
      )
  
      args = parser.parse_args()
  
      if len(sys.argv) < 2:
          # Too few arguments. We can't specify this using argparse alone, so we
          # have to manually check.
          parser.print_help()
          parser.exit()
      elif not args.version and not args.list and not args.program:
          parser.error(_MSG_BAD_ARGS)
      else:
          return args