@@ -4,6 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
44-/
55module
66public import UnicodeBasic.Types
7+ public import UnicodeBasic.Bidi
78import UnicodeData.Core.BidiBrackets
89import UnicodeData.Core.BidiMirroring
910import UnicodeData.Core.Blocks
@@ -531,6 +532,103 @@ public def isBidiControl (char : Char) : Bool :=
531532 || char.val <= 0x202E && char.val >= 0x202A
532533 || char.val <= 0x2069 && char.val >= 0x2066
533534
535+ /-- Check whether a character has a specific bidi class. -/
536+ @[inline]
537+ public def isBidiClass (bc : BidiClass) (char : Char) : Bool :=
538+ getBidiClass char == bc
539+
540+ /-- Check if bidirectional left-to-right character -/
541+ @[inline]
542+ public def isBidiLeftToRight (char : Char) : Bool := isBidiClass .L char
543+
544+ /-- Check if bidirectional right-to-left character -/
545+ @[inline]
546+ public def isBidiRightToLeft (char : Char) : Bool := isBidiClass .R char
547+
548+ /-- Check if bidirectional arabic letter character -/
549+ @[inline]
550+ public def isBidiArabicLetter (char : Char) : Bool := isBidiClass .AL char
551+
552+ /-- Check if bidirectional european number character -/
553+ @[inline]
554+ public def isBidiEuropeanNumber (char : Char) : Bool := isBidiClass .EN char
555+
556+ /-- Check if bidirectional arabic number character -/
557+ @[inline]
558+ public def isBidiArabicNumber (char : Char) : Bool := isBidiClass .AN char
559+
560+ /-- Check if bidirectional european separator character -/
561+ @[inline]
562+ public def isBidiEuropeanSeparator (char : Char) : Bool := isBidiClass .ES char
563+
564+ /-- Check if bidirectional european terminator character -/
565+ @[inline]
566+ public def isBidiEuropeanTerminator (char : Char) : Bool := isBidiClass .ET char
567+
568+ /-- Check if bidirectional common separator character -/
569+ @[inline]
570+ public def isBidiCommonSeparator (char : Char) : Bool := isBidiClass .CS char
571+
572+ /-- Check if bidirectional nonspacing mark character -/
573+ @[inline]
574+ public def isBidiNonspacingMark (char : Char) : Bool := isBidiClass .NSM char
575+
576+ /-- Check if bidirectional boundary neutral character -/
577+ @[inline]
578+ public def isBidiBoundaryNeutral (char : Char) : Bool := isBidiClass .BN char
579+
580+ /-- Check if bidirectional paragraph separator character -/
581+ @[inline]
582+ public def isBidiParagraphSeparator (char : Char) : Bool := isBidiClass .B char
583+
584+ /-- Check if bidirectional segment separator character -/
585+ @[inline]
586+ public def isBidiSegmentSeparator (char : Char) : Bool := isBidiClass .S char
587+
588+ /-- Check if bidirectional white space character -/
589+ @[inline]
590+ public def isBidiWhiteSpace (char : Char) : Bool := isBidiClass .WS char
591+
592+ /-- Check if bidirectional other neutral character -/
593+ @[inline]
594+ public def isBidiOtherNeutral (char : Char) : Bool := isBidiClass .ON char
595+
596+ /-- Check if bidirectional left-to-right embedding character -/
597+ @[inline]
598+ public def isBidiLeftToRightEmbedding (char : Char) : Bool := isBidiClass .LRE char
599+
600+ /-- Check if bidirectional left-to-right override character -/
601+ @[inline]
602+ public def isBidiLeftToRightOverride (char : Char) : Bool := isBidiClass .LRO char
603+
604+ /-- Check if bidirectional right-to-left embedding character -/
605+ @[inline]
606+ public def isBidiRightToLeftEmbedding (char : Char) : Bool := isBidiClass .RLE char
607+
608+ /-- Check if bidirectional right-to-left override character -/
609+ @[inline]
610+ public def isBidiRightToLeftOverride (char : Char) : Bool := isBidiClass .RLO char
611+
612+ /-- Check if bidirectional pop directional format character -/
613+ @[inline]
614+ public def isBidiPopDirectionalFormat (char : Char) : Bool := isBidiClass .PDF char
615+
616+ /-- Check if bidirectional left-to-right isolate character -/
617+ @[inline]
618+ public def isBidiLeftToRightIsolate (char : Char) : Bool := isBidiClass .LRI char
619+
620+ /-- Check if bidirectional right-to-left isolate character -/
621+ @[inline]
622+ public def isBidiRightToLeftIsolate (char : Char) : Bool := isBidiClass .RLI char
623+
624+ /-- Check if bidirectional first strong isolate character -/
625+ @[inline]
626+ public def isBidiFirstStrongIsolate (char : Char) : Bool := isBidiClass .FSI char
627+
628+ /-- Check if bidirectional pop directional isolate character -/
629+ @[inline]
630+ public def isBidiPopDirectionalIsolate (char : Char) : Bool := isBidiClass .PDI char
631+
534632/-!
535633 ## General Category ##
536634-/
0 commit comments