Shows processing of a single paragraph of text by the Unicode Bidirectional Algorithm (UBA), Versions6.2 through14.0, using the C Reference Implementation, Version14.0.
Source
Resolved Levels
Memory pos.
0
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
Level
1
1
1
1
1
1
1
2
2
2
2
1
1
2
2
2
2
2
2
2
2
2
2
2
2
1
Reordered Display
Display pos.
0
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
Memory pos.
25
13
14
15
16
17
18
19
20
21
22
23
24
12
11
7
8
9
10
6
5
4
3
2
1
0
Character
!
m
a
r
k
(
ͦ
v
.
2
)
ͨ
1
–
3
%
ك
ْ
ر
ا
م
Code point
0021
006D
0061
0072
006B
0020
0028
0366
0076
002E
0032
0029
0368
0020
2069
0031
2013
0033
0025
2066
0020
0643
0652
0631
0627
0645
Analysis
Note: Initialized bidiref 17.0.0 library for UBA version 17.0Trace: Entering br_UBA_63Trace: Entering br_UBA63_ParagraphEmbeddingLevel [P2, P3]Current State: 2Paragraph Dir: 2 (Dir_Auto), Paragraph Embed Level: 1, TextLen: 26 Text: 0645 0627 0631 0652 0643 0020 2066 0031 2013 0033 0025 2069 0020 006D 0061 0072 006B 0020 0028 0366 0076 002E 0032 0029 0368 0021 Bidi_Class: AL AL AL NSM AL WS LRI EN ON EN ET PDI WS L L L L WS ON NSM L CS EN ON NSM ON Levels: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0Trace: Entering br_UBA63_ExplicitEmbeddingLevels [X1-X8]Current State: 3 Text: 0645 0627 0631 0652 0643 0020 2066 0031 2013 0033 0025 2069 0020 006D 0061 0072 006B 0020 0028 0366 0076 002E 0032 0029 0368 0021 Bidi_Class: AL AL AL NSM AL WS LRI EN ON EN ET PDI WS L L L L WS ON NSM L CS EN ON NSM ON Levels: 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1Trace: Entering br_UBA_DeleteFormatCharacters [X9]Trace: Entering br_UBA_IdentifyRuns [X10]Current State: 5 Position: 0 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 Text: 0645 0627 0631 0652 0643 0020 2066 0031 2013 0033 0025 2069 0020 006D 0061 0072 006B 0020 0028 0366 0076 002E 0032 0029 0368 0021 Bidi_Class: AL AL AL NSM AL WS LRI EN ON EN ET PDI WS L L L L WS ON NSM L CS EN ON NSM ON Levels: 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Runs: <R------------------------------L> <L---------------L> <L----------------------------------------------------------------------R>Trace: Entering br_UBA_IdentifyIsolatingRunSequences [X10]Current State: 6 Position: 0 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 Text: 0645 0627 0631 0652 0643 0020 2066 0031 2013 0033 0025 2069 0020 006D 0061 0072 006B 0020 0028 0366 0076 002E 0032 0029 0368 0021 Bidi_Class: AL AL AL NSM AL WS LRI EN ON EN ET PDI WS L L L L WS ON NSM L CS EN ON NSM ON Levels: 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Runs: <R------------------------------L> <L---------------L> <L----------------------------------------------------------------------R> Seqs (L= 1): <R-------------------------------[.....................]-----------------------------------------------------------------------R> Seqs (L= 2): <L---------------L>Trace: Entering br_UBA_ResolveCombiningMarks [W1]Current State: 7 Text: 0645 0627 0631 0652 0643 0020 2066 0031 2013 0033 0025 2069 0020 006D 0061 0072 006B 0020 0028 0366 0076 002E 0032 0029 0368 0021 Bidi_Class: AL AL AL AL AL WS LRI EN ON EN ET PDI WS L L L L WS ON ON L CS EN ON ON ON Levels: 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Runs: <R------------------------------L> <L---------------L> <L----------------------------------------------------------------------R>Trace: Entering br_UBA_ResolveEuropeanNumbers [W2]Trace: Entering br_UBA_ResolveAL [W3]Current State: 9 Text: 0645 0627 0631 0652 0643 0020 2066 0031 2013 0033 0025 2069 0020 006D 0061 0072 006B 0020 0028 0366 0076 002E 0032 0029 0368 0021 Bidi_Class: R R R R R WS LRI EN ON EN ET PDI WS L L L L WS ON ON L CS EN ON ON ON Levels: 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Runs: <R------------------------------L> <L---------------L> <L----------------------------------------------------------------------R>Trace: Entering br_UBA_ResolveSeparators [W4]Trace: Entering br_UBA_ResolveTerminators [W5]Current State: 11 Text: 0645 0627 0631 0652 0643 0020 2066 0031 2013 0033 0025 2069 0020 006D 0061 0072 006B 0020 0028 0366 0076 002E 0032 0029 0368 0021 Bidi_Class: R R R R R WS LRI EN ON EN EN PDI WS L L L L WS ON ON L CS EN ON ON ON Levels: 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Runs: <R------------------------------L> <L---------------L> <L----------------------------------------------------------------------R>Trace: Entering br_UBA_ResolveESCSET [W6]Current State: 12 Text: 0645 0627 0631 0652 0643 0020 2066 0031 2013 0033 0025 2069 0020 006D 0061 0072 006B 0020 0028 0366 0076 002E 0032 0029 0368 0021 Bidi_Class: R R R R R WS LRI EN ON EN EN PDI WS L L L L WS ON ON L ON EN ON ON ON Levels: 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Runs: <R------------------------------L> <L---------------L> <L----------------------------------------------------------------------R>Trace: Entering br_UBA_ResolveEN [W7]Current State: 13 Text: 0645 0627 0631 0652 0643 0020 2066 0031 2013 0033 0025 2069 0020 006D 0061 0072 006B 0020 0028 0366 0076 002E 0032 0029 0368 0021 Bidi_Class: R R R R R WS LRI L ON L L PDI WS L L L L WS ON ON L ON L ON ON ON Levels: 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Runs: <R------------------------------L> <L---------------L> <L----------------------------------------------------------------------R>Trace: Entering br_UBA_ResolvePairedBrackets [N0]Current State: 14 Text: 0645 0627 0631 0652 0643 0020 2066 0031 2013 0033 0025 2069 0020 006D 0061 0072 006B 0020 0028 0366 0076 002E 0032 0029 0368 0021 Bidi_Class: R R R R R WS LRI L ON L L PDI WS L L L L WS L L L ON L L L ON Levels: 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Runs: <R------------------------------L> <L---------------L> <L----------------------------------------------------------------------R>Trace: Entering br_UBA_ResolveNeutralsByContext [N1]Current State: 15 Text: 0645 0627 0631 0652 0643 0020 2066 0031 2013 0033 0025 2069 0020 006D 0061 0072 006B 0020 0028 0366 0076 002E 0032 0029 0368 0021 Bidi_Class: R R R R R WS LRI L L L L PDI WS L L L L L L L L L L L L ON Levels: 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Runs: <R------------------------------L> <L---------------L> <L----------------------------------------------------------------------R>Trace: Entering br_UBA_ResolveNeutralsByLevel [N2]Current State: 16 Text: 0645 0627 0631 0652 0643 0020 2066 0031 2013 0033 0025 2069 0020 006D 0061 0072 006B 0020 0028 0366 0076 002E 0032 0029 0368 0021 Bidi_Class: R R R R R R R L L L L R R L L L L L L L L L L L L R Levels: 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Runs: <R------------------------------L> <L---------------L> <L----------------------------------------------------------------------R>Trace: Entering br_UBA_ResolveImplicitLevels [I1, I2]Current State: 17 Text: 0645 0627 0631 0652 0643 0020 2066 0031 2013 0033 0025 2069 0020 006D 0061 0072 006B 0020 0028 0366 0076 002E 0032 0029 0368 0021 Bidi_Class: R R R R R R R L L L L R R L L L L L L L L L L L L R Levels: 1 1 1 1 1 1 1 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 Runs: <R------------------------------L> <L---------------L> <L----------------------------------------------------------------------R>Trace: Entering br_UBA63_ResetWhitespaceLevels [L1]Trace: Entering br_UBA_ReverseLevels [L2]Current State: 19 Text: 0645 0627 0631 0652 0643 0020 2066 0031 2013 0033 0025 2069 0020 006D 0061 0072 006B 0020 0028 0366 0076 002E 0032 0029 0368 0021 Bidi_Class: R R R R R R R L L L L R R L L L L L L L L L L L L R Levels: 1 1 1 1 1 1 1 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 Runs: <R------------------------------L> <L---------------L> <L----------------------------------------------------------------------R> Order: [25 13 14 15 16 17 18 19 20 21 22 23 24 12 11 7 8 9 10 6 5 4 3 2 1 0]Paragraph Embedding Level: 1Resolved Levels: [1 1 1 1 1 1 1 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1]Resolved Order: [25 13 14 15 16 17 18 19 20 21 22 23 24 12 11 7 8 9 10 6 5 4 3 2 1 0]