code: func CompileSolidityString(solc, source string) (map[string]*Contract, error) {
  	if len(source) == 0 {
  		return nil, errors.New("solc: empty source string")
  	}
  	s, err := SolidityVersion(solc)
  	if err != nil {
  		return nil, err
  	}
  	args := append(s.makeArgs(), "--")
  	cmd := exec.Command(s.Path, append(args, "-")...)
  	cmd.Stdin = strings.NewReader(source)
  	return s.run(cmd, source)
  }
docs: // CompileSolidityString builds and returns all the contracts contained within a source string.