summaryrefslogtreecommitdiff
path: root/vendor/golang.org/x/text/internal/gen.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/golang.org/x/text/internal/gen.go')
-rw-r--r--vendor/golang.org/x/text/internal/gen.go52
1 files changed, 52 insertions, 0 deletions
diff --git a/vendor/golang.org/x/text/internal/gen.go b/vendor/golang.org/x/text/internal/gen.go
new file mode 100644
index 0000000..1d678af
--- /dev/null
+++ b/vendor/golang.org/x/text/internal/gen.go
@@ -0,0 +1,52 @@
+// Copyright 2015 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/language"
+ "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("tables.go", "internal")
+
+ // Create parents table.
+ parents := make([]uint16, language.NumCompactTags)
+ for _, loc := range data.Locales() {
+ tag := language.MustParse(loc)
+ index, ok := language.CompactIndex(tag)
+ if !ok {
+ continue
+ }
+ parentIndex := 0 // und
+ for p := tag.Parent(); p != language.Und; p = p.Parent() {
+ if x, ok := language.CompactIndex(p); ok {
+ parentIndex = x
+ break
+ }
+ }
+ parents[index] = uint16(parentIndex)
+ }
+
+ w.WriteComment(`
+ Parent maps a compact index of a tag to the compact index of the parent of
+ this tag.`)
+ w.WriteVar("Parent", parents)
+}