golang.org/x/text@v0.14.0/internal/language/compact/gen.go (about) 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 7 // Language tag table generator. 8 // Data read from the web. 9 10 package main 11 12 import ( 13 "flag" 14 "fmt" 15 "log" 16 17 "golang.org/x/text/internal/gen" 18 "golang.org/x/text/unicode/cldr" 19 ) 20 21 var ( 22 test = flag.Bool("test", 23 false, 24 "test existing tables; can be used to compare web data with package data.") 25 outputFile = flag.String("output", 26 "tables.go", 27 "output file for generated tables") 28 ) 29 30 func main() { 31 gen.Init() 32 33 w := gen.NewCodeWriter() 34 defer w.WriteGoFile("tables.go", "compact") 35 36 fmt.Fprintln(w, `import "golang.org/x/text/internal/language"`) 37 38 b := newBuilder(w) 39 gen.WriteCLDRVersion(w) 40 41 b.writeCompactIndex() 42 } 43 44 type builder struct { 45 w *gen.CodeWriter 46 data *cldr.CLDR 47 supp *cldr.SupplementalData 48 } 49 50 func newBuilder(w *gen.CodeWriter) *builder { 51 r := gen.OpenCLDRCoreZip() 52 defer r.Close() 53 d := &cldr.Decoder{} 54 data, err := d.DecodeZip(r) 55 if err != nil { 56 log.Fatal(err) 57 } 58 b := builder{ 59 w: w, 60 data: data, 61 supp: data.Supplemental(), 62 } 63 return &b 64 }