github.com/go-enjin/golang-org-x-text@v0.12.1-enjin.2/internal/export/idna/gen_common.go (about)

     1  // Copyright 2016 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  package main
     9  
    10  // This file contains code that is common between the generation code and the
    11  // package's test code.
    12  
    13  import (
    14  	"log"
    15  
    16  	"github.com/go-enjin/golang-org-x-text/internal/ucd"
    17  )
    18  
    19  func catFromEntry(p *ucd.Parser) (cat category) {
    20  	r := p.Rune(0)
    21  	switch s := p.String(1); s {
    22  	case "valid":
    23  		cat = valid
    24  	case "disallowed":
    25  		cat = disallowed
    26  	case "disallowed_STD3_valid":
    27  		cat = disallowedSTD3Valid
    28  	case "disallowed_STD3_mapped":
    29  		cat = disallowedSTD3Mapped
    30  	case "mapped":
    31  		cat = mapped
    32  	case "deviation":
    33  		cat = deviation
    34  	case "ignored":
    35  		cat = ignored
    36  	default:
    37  		log.Fatalf("%U: Unknown category %q", r, s)
    38  	}
    39  	if s := p.String(3); s != "" {
    40  		if cat != valid {
    41  			log.Fatalf(`%U: %s defined for %q; want "valid"`, r, s, p.String(1))
    42  		}
    43  		switch s {
    44  		case "NV8":
    45  			cat = validNV8
    46  		case "XV8":
    47  			cat = validXV8
    48  		default:
    49  			log.Fatalf("%U: Unexpected exception %q", r, s)
    50  		}
    51  	}
    52  	return cat
    53  }
    54  
    55  var joinType = map[string]info{
    56  	"L": joiningL,
    57  	"D": joiningD,
    58  	"T": joiningT,
    59  	"R": joiningR,
    60  }