code: func (cl *CommandLine) BuildArgs() []string {
  	targetArgs := cl.Target.buildArgsForTarget()
  	args := make([]string, 0, len(cl.Flags)+1+len(targetArgs)+len(cl.Args))
  	for _, flag := range cl.Flags {
  		args = append(args, flag.String())
  	}
  
  	var flagSeparator []string
  	if cl.FlagSeparator {
  		flagSeparator = []string{"--"}
  	}
  
  	// If our target is specified as a flag, we need to emit it before the flag
  	// separator. If our target is specified as a positional argument (e.g.,
  	// CommandTarget), we can emit it on either side.
  	if !cl.Target.followsFlagSeparator() {
  		args = append(args, targetArgs...)
  		args = append(args, flagSeparator...)
  	} else {
  		args = append(args, flagSeparator...)
  		args = append(args, targetArgs...)
  	}
  
  	args = append(args, cl.Args...)
  	return args
  }
docs: // BuildArgs returns an array of Python interpreter arguments for cl.