1// Copyright 2013 The Go Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style 3// license that can be found in the LICENSE file. 4 5//go:build ignore 6// +build ignore 7 8// Language tag table generator. 9// Data read from the web. 10 11package main 12 13import ( 14 "flag" 15 "fmt" 16 "log" 17 18 "golang.org/x/text/internal/gen" 19 "golang.org/x/text/unicode/cldr" 20) 21 22var ( 23 test = flag.Bool("test", 24 false, 25 "test existing tables; can be used to compare web data with package data.") 26 outputFile = flag.String("output", 27 "tables.go", 28 "output file for generated tables") 29) 30 31func main() { 32 gen.Init() 33 34 w := gen.NewCodeWriter() 35 defer w.WriteGoFile("tables.go", "compact") 36 37 fmt.Fprintln(w, `import "golang.org/x/text/internal/language"`) 38 39 b := newBuilder(w) 40 gen.WriteCLDRVersion(w) 41 42 b.writeCompactIndex() 43} 44 45type builder struct { 46 w *gen.CodeWriter 47 data *cldr.CLDR 48 supp *cldr.SupplementalData 49} 50 51func newBuilder(w *gen.CodeWriter) *builder { 52 r := gen.OpenCLDRCoreZip() 53 defer r.Close() 54 d := &cldr.Decoder{} 55 data, err := d.DecodeZip(r) 56 if err != nil { 57 log.Fatal(err) 58 } 59 b := builder{ 60 w: w, 61 data: data, 62 supp: data.Supplemental(), 63 } 64 return &b 65} 66