func parseIfHeader(httpHeader string) (h ifHeader, ok bool) {
	s := strings.TrimSpace(httpHeader)
	switch tokenType, _, _ := lex(s); tokenType {
	case '(':
		return parseNoTagLists(s)
	case angleTokenType:
		return parseTaggedLists(s)
	default:
		return ifHeader{}, false
	}
}
parseIfHeader parses the "If: foo bar" HTTP header. The httpHeader string
should omit the "If:" prefix and have any "\r\n"s collapsed to a " ", as is
returned by req.Header.Get("If") for a http.Request req.
package webdav
import (
	"strings"
)
type ifHeader struct {
	lists []ifList
}
type ifList struct {
	resourceTag string
	conditions  []Condition
}