barometer: update DMA's vendoring packages
[barometer.git] / src / dma / vendor / golang.org / x / text / internal / language / compact / gen_parents.go
diff --git a/src/dma/vendor/golang.org/x/text/internal/language/compact/gen_parents.go b/src/dma/vendor/golang.org/x/text/internal/language/compact/gen_parents.go
new file mode 100644 (file)
index 0000000..9543d58
--- /dev/null
@@ -0,0 +1,54 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build ignore
+
+package main
+
+import (
+       "log"
+
+       "golang.org/x/text/internal/gen"
+       "golang.org/x/text/internal/language"
+       "golang.org/x/text/internal/language/compact"
+       "golang.org/x/text/unicode/cldr"
+)
+
+func main() {
+       r := gen.OpenCLDRCoreZip()
+       defer r.Close()
+
+       d := &cldr.Decoder{}
+       data, err := d.DecodeZip(r)
+       if err != nil {
+               log.Fatalf("DecodeZip: %v", err)
+       }
+
+       w := gen.NewCodeWriter()
+       defer w.WriteGoFile("parents.go", "compact")
+
+       // Create parents table.
+       type ID uint16
+       parents := make([]ID, compact.NumCompactTags)
+       for _, loc := range data.Locales() {
+               tag := language.MustParse(loc)
+               index, ok := compact.FromTag(tag)
+               if !ok {
+                       continue
+               }
+               parentIndex := compact.ID(0) // und
+               for p := tag.Parent(); p != language.Und; p = p.Parent() {
+                       if x, ok := compact.FromTag(p); ok {
+                               parentIndex = x
+                               break
+                       }
+               }
+               parents[index] = ID(parentIndex)
+       }
+
+       w.WriteComment(`
+       parents maps a compact index of a tag to the compact index of the parent of
+       this tag.`)
+       w.WriteVar("parents", parents)
+}