github.com/go-xe2/third@v1.0.3/golang.org/x/text/unicode/bidi/gen_trieval.go (about)

     1  // Copyright 2015 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  package main
     8  
     9  // Class is the Unicode BiDi class. Each rune has a single class.
    10  type Class uint
    11  
    12  const (
    13  	L       Class = iota // LeftToRight
    14  	R                    // RightToLeft
    15  	EN                   // EuropeanNumber
    16  	ES                   // EuropeanSeparator
    17  	ET                   // EuropeanTerminator
    18  	AN                   // ArabicNumber
    19  	CS                   // CommonSeparator
    20  	B                    // ParagraphSeparator
    21  	S                    // SegmentSeparator
    22  	WS                   // WhiteSpace
    23  	ON                   // OtherNeutral
    24  	BN                   // BoundaryNeutral
    25  	NSM                  // NonspacingMark
    26  	AL                   // ArabicLetter
    27  	Control              // Control LRO - PDI
    28  
    29  	numClass
    30  
    31  	LRO // LeftToRightOverride
    32  	RLO // RightToLeftOverride
    33  	LRE // LeftToRightEmbedding
    34  	RLE // RightToLeftEmbedding
    35  	PDF // PopDirectionalFormat
    36  	LRI // LeftToRightIsolate
    37  	RLI // RightToLeftIsolate
    38  	FSI // FirstStrongIsolate
    39  	PDI // PopDirectionalIsolate
    40  
    41  	unknownClass = ^Class(0)
    42  )
    43  
    44  var controlToClass = map[rune]Class{
    45  	0x202D: LRO, // LeftToRightOverride,
    46  	0x202E: RLO, // RightToLeftOverride,
    47  	0x202A: LRE, // LeftToRightEmbedding,
    48  	0x202B: RLE, // RightToLeftEmbedding,
    49  	0x202C: PDF, // PopDirectionalFormat,
    50  	0x2066: LRI, // LeftToRightIsolate,
    51  	0x2067: RLI, // RightToLeftIsolate,
    52  	0x2068: FSI, // FirstStrongIsolate,
    53  	0x2069: PDI, // PopDirectionalIsolate,
    54  }
    55  
    56  // A trie entry has the following bits:
    57  // 7..5  XOR mask for brackets
    58  // 4     1: Bracket open, 0: Bracket close
    59  // 3..0  Class type
    60  
    61  const (
    62  	openMask     = 0x10
    63  	xorMaskShift = 5
    64  )