// 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) }