mirror of
https://github.com/ergochat/ergo.git
synced 2024-12-23 11:12:44 +01:00
61 lines
1.6 KiB
Go
61 lines
1.6 KiB
Go
// 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
|
|
)
|