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