aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/golang.org/x/text/unicode/bidi/trieval.go
blob: 4c459c4b72e0ebc286e0426f83b68b4c4bc7478a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.

package bidi

// Class is the Unicode BiDi class. Each rune has a single class.
type Class uint

const (
    L       Class = iota // LeftToRight
    R                    // RightToLeft
    EN                   // EuropeanNumber
    ES                   // EuropeanSeparator
    ET                   // EuropeanTerminator
    AN                   // ArabicNumber
    CS                   // CommonSeparator
    B                    // ParagraphSeparator
    S                    // SegmentSeparator
    WS                   // WhiteSpace
    ON                   // OtherNeutral
    BN                   // BoundaryNeutral
    NSM                  // NonspacingMark
    AL                   // ArabicLetter
    Control              // Control LRO - PDI

    numClass

    LRO // LeftToRightOverride
    RLO // RightToLeftOverride
    LRE // LeftToRightEmbedding
    RLE // RightToLeftEmbedding
    PDF // PopDirectionalFormat
    LRI // LeftToRightIsolate
    RLI // RightToLeftIsolate
    FSI // FirstStrongIsolate
    PDI // PopDirectionalIsolate

    unknownClass = ^Class(0)
)

var controlToClass = map[rune]Class{
    0x202D: LRO, // LeftToRightOverride,
    0x202E: RLO, // RightToLeftOverride,
    0x202A: LRE, // LeftToRightEmbedding,
    0x202B: RLE, // RightToLeftEmbedding,
    0x202C: PDF, // PopDirectionalFormat,
    0x2066: LRI, // LeftToRightIsolate,
    0x2067: RLI, // RightToLeftIsolate,
    0x2068: FSI, // FirstStrongIsolate,
    0x2069: PDI, // PopDirectionalIsolate,
}

// A trie entry has the following bits:
// 7..5  XOR mask for brackets
// 4     1: Bracket open, 0: Bracket close
// 3..0  Class type

const (
    openMask     = 0x10
    xorMaskShift = 5
)