func combinePhrases(words []string) []string {
	var ret []string
	startIndex := -1
	for i, w := range words {
		if startIndex == -1 {
			// looking for start of phrase
			// this could either be " or -"
			ww := w
			if len(w) > 0 && w[0] == notPrefix {
				ww = w[1:]
			}
			if len(ww) > 0 && ww[0] == phraseChar && (len(ww) < 2 || ww[len(ww)-1] != phraseChar) {
				startIndex = i
				continue
			}

			ret = append(ret, w)
		} else if len(w) > 0 && w[len(w)-1] == phraseChar { // looking for end of phrase
			// combine words
			phrase := strings.Join(words[startIndex:i+1], " ")

			// add to return value
			ret = append(ret, phrase)
			startIndex = -1
		}
	}

	if startIndex != -1 {
		ret = append(ret, words[startIndex:]...)
	}

	return ret
}
// combinePhrases detects quote characters at the start and end of
// words and combines the contents into a single word.
combinePhrases detects quote characters at the start and end of
words and combines the contents into a single word.
// combinePhrases detects quote characters at the start and end of // words and combines the contents into a single word .
func combinePhrases(words []string) []string {
	var ret []string
	startIndex := -1
	for i, w := range words {
		if startIndex == -1 {
			ww := w
			if len(w) > 0 && w[0] == notPrefix {
				ww = w[1:]
			}
			if len(ww) > 0 && ww[0] == phraseChar && (len(ww) < 2 || ww[len(ww)-1] != phraseChar) {
				startIndex = i
				continue
			}
			ret = append(ret, w)
		} else if len(w) > 0 && w[len(w)-1] == phraseChar { 
			phrase := strings.Join(words[startIndex:i+1], " ")
			ret = append(ret, phrase)
			startIndex = -1
		}
	}
	if startIndex != -1 {
		ret = append(ret, words[startIndex:]...)
	}
	return ret
}
func combinePhrases ( words [ ] string ) [ ] string { var ret [ ] string startIndex := - 1 for i , w := range words { if startIndex == - 1 { ww := w if len ( w ) > 0 && w [ 0 ] == notPrefix { ww = w [ 1 : ] } if len ( ww ) > 0 && ww [ 0 ] == phraseChar && ( len ( ww ) < 2 || ww [ len ( ww ) - 1 ] != phraseChar ) { startIndex = i continue } ret = append ( ret , w ) } else if len ( w ) > 0 && w [ len ( w ) - 1 ] == phraseChar { phrase := strings . Join ( words [ startIndex : i + 1 ] , " " ) ret = append ( ret , phrase ) startIndex = - 1 } } if startIndex != - 1 { ret = append ( ret , words [ startIndex : ] ... ) } return ret }
combinePhrases detects quote characters at the start and end of
words and combines the contents into a single word.
combinePhrases detects quote characters at the start and end of words and combines the contents into a single word .
// looking for start of phrase // this could either be " or -" // looking for end of phrase // combine words // add to return value