blob: 0c36a052f62f846e80df9d4effa8059c97381d92 [file] [log] [blame]
Don Newton98fd8812019-09-23 15:15:02 -04001// 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// +build ignore
6
7// Language tag table generator.
8// Data read from the web.
9
10package main
11
12import (
13 "flag"
14 "fmt"
15 "log"
16
17 "golang.org/x/text/internal/gen"
18 "golang.org/x/text/unicode/cldr"
19)
20
21var (
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
30func 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
44type builder struct {
45 w *gen.CodeWriter
46 data *cldr.CLDR
47 supp *cldr.SupplementalData
48}
49
50func 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}