Beispiel #1
0
func insertCollation(builder *build.Builder, locale string, c *Collation) {
	t := builder.Tailoring(locale)
	for _, r := range c.Rules.Any {
		switch r.XMLName.Local {
		case "reset":
			if r.Before == "" {
				failOnError(t.SetAnchor(r.Value))
			} else {
				failOnError(t.SetAnchorBefore(r.Value))
			}
		case "x":
			var context, extend string
			for _, r1 := range r.Any {
				switch r1.XMLName.Local {
				case "context":
					context = r1.Value
				case "extend":
					extend = r1.Value
				}
			}
			for _, r1 := range r.Any {
				if t := r1.XMLName.Local; t == "context" || t == "extend" {
					continue
				}
				insertTailoring(t, r1, context, extend)
			}
		default:
			insertTailoring(t, r, "", "")
		}
	}
}