code: func split(s string) <-chan string {
  	ch := make(chan string)
  	go func() {
  		s = strings.Replace(s, " ", "", -1)
  		if !strings.Contains(s, "(") {
  			ch <- s
  		} else {
  			last := 0
  			end := len(s)
  			for info := range scan(s) {
  				if last != info.openPos {
  					ch <- s[last:info.openPos]
  				}
  				ch <- s[info.openPos:info.closePos]
  				last = info.closePos
  			}
  			if last != end {
  				ch <- s[last:]
  			}
  		}
  		close(ch)
  	}()
  	return ch
  }
docs: // Split the string into tokens