OSDN Git Service

new repo
[bytom/vapor.git] / vendor / golang.org / x / text / unicode / bidi / gen_trieval.go
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 )