aboutsummaryrefslogtreecommitdiffstats
path: root/src/dma/vendor/golang.org/x/text/internal/language/compact/gen_parents.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/dma/vendor/golang.org/x/text/internal/language/compact/gen_parents.go')
-rw-r--r--src/dma/vendor/golang.org/x/text/internal/language/compact/gen_parents.go54
1 files changed, 54 insertions, 0 deletions
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
index 00000000..9543d583
--- /dev/null
+++ b/src/dma/vendor/golang.org/x/text/internal/language/compact/gen_parents.go
@@ -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)
+}