Blame vendor/golang.org/x/text/unicode/bidi/gen_trieval.go

Packit 63bb0d
// Copyright 2015 The Go Authors. All rights reserved.
Packit 63bb0d
// Use of this source code is governed by a BSD-style
Packit 63bb0d
// license that can be found in the LICENSE file.
Packit 63bb0d
Packit 63bb0d
// +build ignore
Packit 63bb0d
Packit 63bb0d
package main
Packit 63bb0d
Packit 63bb0d
// Class is the Unicode BiDi class. Each rune has a single class.
Packit 63bb0d
type Class uint
Packit 63bb0d
Packit 63bb0d
const (
Packit 63bb0d
	L       Class = iota // LeftToRight
Packit 63bb0d
	R                    // RightToLeft
Packit 63bb0d
	EN                   // EuropeanNumber
Packit 63bb0d
	ES                   // EuropeanSeparator
Packit 63bb0d
	ET                   // EuropeanTerminator
Packit 63bb0d
	AN                   // ArabicNumber
Packit 63bb0d
	CS                   // CommonSeparator
Packit 63bb0d
	B                    // ParagraphSeparator
Packit 63bb0d
	S                    // SegmentSeparator
Packit 63bb0d
	WS                   // WhiteSpace
Packit 63bb0d
	ON                   // OtherNeutral
Packit 63bb0d
	BN                   // BoundaryNeutral
Packit 63bb0d
	NSM                  // NonspacingMark
Packit 63bb0d
	AL                   // ArabicLetter
Packit 63bb0d
	Control              // Control LRO - PDI
Packit 63bb0d
Packit 63bb0d
	numClass
Packit 63bb0d
Packit 63bb0d
	LRO // LeftToRightOverride
Packit 63bb0d
	RLO // RightToLeftOverride
Packit 63bb0d
	LRE // LeftToRightEmbedding
Packit 63bb0d
	RLE // RightToLeftEmbedding
Packit 63bb0d
	PDF // PopDirectionalFormat
Packit 63bb0d
	LRI // LeftToRightIsolate
Packit 63bb0d
	RLI // RightToLeftIsolate
Packit 63bb0d
	FSI // FirstStrongIsolate
Packit 63bb0d
	PDI // PopDirectionalIsolate
Packit 63bb0d
Packit 63bb0d
	unknownClass = ^Class(0)
Packit 63bb0d
)
Packit 63bb0d
Packit 63bb0d
var controlToClass = map[rune]Class{
Packit 63bb0d
	0x202D: LRO, // LeftToRightOverride,
Packit 63bb0d
	0x202E: RLO, // RightToLeftOverride,
Packit 63bb0d
	0x202A: LRE, // LeftToRightEmbedding,
Packit 63bb0d
	0x202B: RLE, // RightToLeftEmbedding,
Packit 63bb0d
	0x202C: PDF, // PopDirectionalFormat,
Packit 63bb0d
	0x2066: LRI, // LeftToRightIsolate,
Packit 63bb0d
	0x2067: RLI, // RightToLeftIsolate,
Packit 63bb0d
	0x2068: FSI, // FirstStrongIsolate,
Packit 63bb0d
	0x2069: PDI, // PopDirectionalIsolate,
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
// A trie entry has the following bits:
Packit 63bb0d
// 7..5  XOR mask for brackets
Packit 63bb0d
// 4     1: Bracket open, 0: Bracket close
Packit 63bb0d
// 3..0  Class type
Packit 63bb0d
Packit 63bb0d
const (
Packit 63bb0d
	openMask     = 0x10
Packit 63bb0d
	xorMaskShift = 5
Packit 63bb0d
)