This is the uax-9 Reference Manual, version 1.0.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Sep 15 06:59:59 2024 GMT+0.
The main system appears first, followed by any subsystem dependency.
uax-9
Implementation of the Unicode Standards Annex #9’s bidirectional text algorithm
Yukari Hafner <shinmera@tymoon.eu>
Yukari Hafner <shinmera@tymoon.eu>
(GIT https://github.com/Shinmera/uax-9.git)
zlib
1.0.0
documentation-utils
(system).
package.lisp
(file).
database.lisp
(file).
status-stack.lisp
(file).
isolating-run-sequence.lisp
(file).
uax-9.lisp
(file).
documentation.lisp
(file).
Files are sorted by type and then listed depth-first from the systems components trees.
uax-9/uax-9.asd
uax-9/package.lisp
uax-9/database.lisp
uax-9/status-stack.lisp
uax-9/isolating-run-sequence.lisp
uax-9/uax-9.lisp
uax-9/documentation.lisp
uax-9/database.lisp
package.lisp
(file).
uax-9
(system).
*bidi-brackets-table-file*
(special variable).
*bidi-class-database-file*
(special variable).
*bidi-mirroring-table-file*
(special variable).
compile-databases
(function).
levels
(type).
load-databases
(function).
mirror-at
(function).
no-database-files
(condition).
*here*
(special variable).
bidi-class
(function).
bracket-sibling
(function).
bracket-sibling-at
(function).
bracket-type
(function).
bracket-type-at
(function).
class
(type).
class-at
(function).
class-id
(compiler macro).
class-id
(function).
class-ids
(compiler macro).
class-ids
(function).
class<=
(compiler macro).
class<=
(function).
class=
(compiler macro).
class=
(function).
classes
(type).
code
(type).
code-at
(function).
defglobal
(macro).
idx
(type).
level
(type).
load-bidi-brackets-table
(function).
load-bidi-class-database
(function).
load-bidi-mirroring-table
(function).
max-depth
(constant).
max-pairing-depth
(constant).
mirror
(function).
neutral-type-p
(function).
normalize-strong-type-n0
(function).
read-u32le
(function).
removed-by-x9-p
(function).
stack
(type).
type-for-level
(function).
whitespace-p
(function).
uax-9/status-stack.lisp
database.lisp
(file).
uax-9
(system).
empty-stack
(function).
last-isolate
(function).
last-level
(function).
last-override
(function).
make-status-stack
(function).
pop-status
(function).
push-status
(function).
stack-depth
(function).
stack-empty-p
(function).
uax-9/isolating-run-sequence.lisp
status-stack.lisp
(file).
uax-9
(system).
apply-levels-and-types
(function).
class-before-pair
(function).
classify-pair-content
(function).
find-run-limit
(function).
make-isolating-run-sequence
(function).
make-seq
(function).
resolve-implicit-levels
(function).
resolve-neutral-types
(function).
resolve-paired-brackets
(function).
resolve-weak-types
(function).
seq
(structure).
seq-eos
(reader).
(setf seq-eos)
(writer).
seq-indices
(reader).
(setf seq-indices)
(writer).
seq-level
(reader).
(setf seq-level)
(writer).
seq-levels
(reader).
(setf seq-levels)
(writer).
seq-p
(function).
seq-sos
(reader).
(setf seq-sos)
(writer).
seq-types
(reader).
(setf seq-types)
(writer).
set-brackets-to-type
(function).
uax-9/uax-9.lisp
isolating-run-sequence.lisp
(file).
uax-9
(system).
call-in-order
(function).
do-in-order
(macro).
levels
(function).
reorder
(function).
assign-levels-to-characters-removed-by-x9
(function).
bidi-string-p
(function).
compute-reordering
(function).
determine-explicit-embedding-levels
(function).
determine-isolating-run-sequences
(function).
determine-level-runs
(function).
determine-matching-isolates
(function).
determine-paragraph-embedding-level
(function).
index-array-reverse
(function).
make-class-array
(function).
make-reorder-array
(function).
run-algorithm
(function).
uax-9/documentation.lisp
uax-9.lisp
(file).
uax-9
(system).
Packages are listed by definition order.
org.shirakumo.alloy.uax-9
common-lisp
.
*bidi-brackets-table-file*
(special variable).
*bidi-class-database-file*
(special variable).
*bidi-mirroring-table-file*
(special variable).
call-in-order
(function).
compile-databases
(function).
do-in-order
(macro).
levels
(function).
levels
(type).
load-databases
(function).
mirror-at
(function).
no-database-files
(condition).
reorder
(function).
*here*
(special variable).
apply-levels-and-types
(function).
assign-levels-to-characters-removed-by-x9
(function).
bidi-class
(function).
bidi-string-p
(function).
bracket-sibling
(function).
bracket-sibling-at
(function).
bracket-type
(function).
bracket-type-at
(function).
class
(type).
class-at
(function).
class-before-pair
(function).
class-id
(compiler macro).
class-id
(function).
class-ids
(compiler macro).
class-ids
(function).
class<=
(compiler macro).
class<=
(function).
class=
(compiler macro).
class=
(function).
classes
(type).
classify-pair-content
(function).
code
(type).
code-at
(function).
compute-reordering
(function).
defglobal
(macro).
determine-explicit-embedding-levels
(function).
determine-isolating-run-sequences
(function).
determine-level-runs
(function).
determine-matching-isolates
(function).
determine-paragraph-embedding-level
(function).
empty-stack
(function).
find-run-limit
(function).
idx
(type).
index-array-reverse
(function).
last-isolate
(function).
last-level
(function).
last-override
(function).
level
(type).
load-bidi-brackets-table
(function).
load-bidi-class-database
(function).
load-bidi-mirroring-table
(function).
make-class-array
(function).
make-isolating-run-sequence
(function).
make-reorder-array
(function).
make-seq
(function).
make-status-stack
(function).
max-depth
(constant).
max-pairing-depth
(constant).
mirror
(function).
neutral-type-p
(function).
normalize-strong-type-n0
(function).
pop-status
(function).
push-status
(function).
read-u32le
(function).
removed-by-x9-p
(function).
resolve-implicit-levels
(function).
resolve-neutral-types
(function).
resolve-paired-brackets
(function).
resolve-weak-types
(function).
run-algorithm
(function).
seq
(structure).
seq-eos
(reader).
(setf seq-eos)
(writer).
seq-indices
(reader).
(setf seq-indices)
(writer).
seq-level
(reader).
(setf seq-level)
(writer).
seq-levels
(reader).
(setf seq-levels)
(writer).
seq-p
(function).
seq-sos
(reader).
(setf seq-sos)
(writer).
seq-types
(reader).
(setf seq-types)
(writer).
set-brackets-to-type
(function).
stack
(type).
stack-depth
(function).
stack-empty-p
(function).
type-for-level
(function).
whitespace-p
(function).
Definitions are sorted by export status, category, package, and then by lexicographic order.
Variable containing the absolute path of the brackets table file.
See LOAD-DATABASES
See COMPILE-DATABASES
Variable containing the absolute path of the bidi class database file.
See LOAD-DATABASES
See COMPILE-DATABASES
Variable containing the absolute path of the mirroring table file.
See LOAD-DATABASES
See COMPILE-DATABASES
Iterates over the string in bidirectional order, binding CHARACTER and MANUAL-MIRROR for each character.
This is a convenience macro around CALL-IN-ORDER.
See CALL-IN-ORDER
Calls the function per character in proper order over the string.
The function must accept two arguments:
CHARACTER — The character to display.
MANUAL-MIRROR — Whether the rendering engine should draw the
character mirrored.
This function will iterate over the string in the proper order to
respect bidirectionality.
If indexes is not passed, it is automatically computed through REORDER
on the levels. If levels is not passed, it is automatically computed
through LEVELS on the string.
Note that the CHARACTER passed to the function is already mirrored if
a mirrored character exists in unicode. This means you do not need to
call MIRROR-AT yourself.
See LEVELS
See REORDER
See MIRROR-AT
See DO-IN-ORDER
Compiles the database files from their sources.
This will load an optional part of the system and compile the database
files to an efficient byte representation. If the compilation is
successful, LOAD-DATABASES is called automatically.
See *BIDI-CLASS-DATABASE-FILE*
See *BIDI-BRACKETS-TABLE-FILE*
See *BIDI-CLASS-DATABASE-FILE*
See LOAD-DATABASES
Computes the directional level for every code point in the string.
Returns two values:
LEVELS — A vector of levels for each code point in the
input string. Has the length of the input
string.
BASE-DIRECTION — Returns the base direction of the string. If
BASE-DIRECTION was not :AUTO, this is the
determined direction.
BASE-DIRECTION must be one of three values:
:LEFT-TO-RIGHT
:RIGHT-TO-LEFT
:AUTO (default)
This designates how the text is interpreted at its base level. When
this level is :AUTO, the base level is determined automatically by
scanning for the first directional code point in the string.
LINE-BREAKS should be a list of indexes into the string. Each index
designates a code point after which a line break is inserted. This is
used to normalise the levels across breaks. If you pass this argument,
you must pass the same argument to REORDER. If you do not pass this,
the line end is assumed to be at the end of the string.
The values in the levels vector designate which direction the code
point at this index should have. If the level is even, the direction
is LEFT-TO-RIGHT; if it is odd, RIGHT-TO-LEFT. You will need this
information yourself to determine whether to display code points
mirrored or not when rendering their glyphs.
See REORDER
See MIRROR-AT
Loads the databases from their files into memory.
If one of the files is missing, a warning of type NO-DATABASE-FILES is
signalled. If the loading succeeds, T is returned.
See *BIDI-CLASS-DATABASE-FILE*
See *BIDI-BRACKETS-TABLE-FILE*
See *BIDI-CLASS-DATABASE-FILE*
See NO-DATABASE-FILES
Returns the mirrored character at the given position in the string.
Returns two values:
CHARACTER — The character to display. This may either be same
character as was passed in, or its mirror sibling.
MANUAL-MIRROR — Whether the character needs to be displayed in a
mirrored way in the renderer.
If MANUAL-MIRROR is T, the returned character will be the same as the
character at that point in the string. The rendering engine displaying
the character must ensure that it is drawn mirrored instead.
If MANUAL-MIRROR is NIL, the returned character can be drawn in all
cases to achieve the correct mirroring behaviour.
Note that you should only invoke this function to retrieve the mirror pair if the level of the character at the point is uneven and thus right-to-left.
Computes a reordering of indexes into the string to process the code points in the correct order.
Returns one value, the reordered index vector, the same length as the
input LEVELS vector. The vector should be filled with indices into the
original string. Iterating through this index vector in order should
provide the correct ordering for the resulting code points when
rendering along the base direction.
LINE-BREAKS should be a list of indexes into the string. Each index
designates a code point after which a line break is inserted. This
argument must be the same as what you passed to LEVELS to get the
levels vector.
INDEXES is the index vector that’s permuted and returned. You can pass
this to save on allocation. If not passed, a vector the length of the
levels vector is created. If passed, you should make sure that the
indices in the vector make sense – meaning they should typically be
in ascending order starting with 0.
See LEVELS
Warning signalled when LOAD-DATABASES is called and the files are not present.
Two restarts must be active when this condition is signalled:
COMPILE — Call COMPILE-DATABASES
ABORT — Abort loading the databases, leaving them at their
previous state.
See LOAD-DATABASES
warning
.
structure-object
.
(simple-array org.shirakumo.alloy.uax-9::idx (*))
(simple-array (unsigned-byte 8) (*))
(simple-array (unsigned-byte 8) (*))
(unsigned-byte 8)
0
(unsigned-byte 8)
0
(unsigned-byte 8)
0
Jump to: | (
A B C D E F I L M N P R S T W |
---|
Jump to: | (
A B C D E F I L M N P R S T W |
---|
Jump to: | *
C E I L M S T |
---|
Jump to: | *
C E I L M S T |
---|
Jump to: | C D F I L N O P S T U |
---|
Jump to: | C D F I L N O P S T U |
---|