The uax-9 Reference Manual

Next: , Previous: , Up: (dir)   [Contents][Index]

The uax-9 Reference Manual

This is the uax-9 Reference Manual, version 1.0.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Thu Sep 15 06:25:34 2022 GMT+0.

Table of Contents


1 Introduction

## About UAX-9
This is an implementation of the "Unicode Standards Annex #9"(https://www.unicod.org/reports/tr9/)'s bidirectional text algorithm. It provides a convenient way to handle text bidirectionality.

Bidirectional text occurs when text of different directionality is mixed. For instance, if arabic text, which is typically right-to-left, intersperses roman numerals, which is typically left-to-right, then the roman numerals need to be rendered in reversed order to produce the correct display order. 

The Unicode Bidirectional algorithm implemented by this library handles the reordering of such text into a canonical order that can then be used by text rendering engines to produce correctly laid out text.

Note that this algorithm does not analyse line breaking. You must provide the appropriate line breaking opportunities yourself, see "UAX-14"(https://shinmera.github.io/uax-14/). The algorithm will also not handle paragraph breaks, but instead expects you to deliver properly segmented strings for analysis.

## How To
The system will compile binary database files on first load. Should anything go wrong during this process, a note is produced on load. If you would like to prevent this automated loading, push ``uax-9-no-load`` to ``*features*`` before loading. You can then manually load the database files when convenient through ``load-databases``.

Once loaded, you can compute the line breaking levels of a string with the ``levels`` function. To use this information and produce a reordering index vector, pass its result to the ``reorder`` function. Note that when iterating through these characters, the level of the character needs to be taken into consideration, as some characters need to be mirrored when right-to-left oriented. You can detect right-to-left levels by testing whether they are odd. You can then retrieve the potentially mirrored variant of the character through ``mirror-at``.

Alternatively you can also iterate through the string directly in the correct character order (including mirroring) using ``do-in-order``. Also note that some characters will require manual mirroring in the rendering engine as no equivalent mirrored characters exist in Unicode.

## External Files
The following files were retrieved from external resources, last accessed on 4.9.2019.

- ``BidiBrackets.txt`` https://www.unicode.org/Public/UCD/latest/ucd/BidiBrackets.txt
- ``BidiCharacterTest.txt`` https://www.unicode.org/Public/UCD/latest/ucd/BidiCharacterTest.txt
- ``BidiMirroring.txt`` https://www.unicode.org/Public/UCD/latest/ucd/BidiMirroring.txt
- ``BidiTest.txt`` https://www.unicode.org/Public/UCD/latest/ucd/BidiTest.txt
- ``DerivedBidiClass.txt`` https://www.unicode.org/Public/UCD/latest/ucd/DerivedBidiClass.txt

At the time, Unicode 12.1 was considered the latest version.


2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 uax-9

Implementation of the Unicode Standards Annex #9’s bidirectional text algorithm

Maintainer

Nicolas Hafner <shinmera@tymoon.eu>

Author

Nicolas Hafner <shinmera@tymoon.eu>

Home Page

https://github.com/Shinmera/uax-9

Source Control

(GIT https://github.com/Shinmera/uax-9.git)

Bug Tracker

https://github.com/Shinmera/uax-9/issues

License

zlib

Version

1.0.0

Dependency

documentation-utils (system).

Source

uax-9.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


Next: , Previous: , Up: Lisp   [Contents][Index]

3.1.1 uax-9/uax-9.asd

Source

uax-9.asd.

Parent Component

uax-9 (system).

ASDF Systems

uax-9.


Next: , Previous: , Up: Lisp   [Contents][Index]

3.1.2 uax-9/package.lisp

Source

uax-9.asd.

Parent Component

uax-9 (system).

Packages

org.shirakumo.alloy.uax-9.


3.1.3 uax-9/database.lisp

Dependency

package.lisp (file).

Source

uax-9.asd.

Parent Component

uax-9 (system).

Public Interface
Internals

3.1.4 uax-9/status-stack.lisp

Dependency

database.lisp (file).

Source

uax-9.asd.

Parent Component

uax-9 (system).

Internals

3.1.5 uax-9/isolating-run-sequence.lisp

Dependency

status-stack.lisp (file).

Source

uax-9.asd.

Parent Component

uax-9 (system).

Internals

3.1.6 uax-9/uax-9.lisp

Dependency

isolating-run-sequence.lisp (file).

Source

uax-9.asd.

Parent Component

uax-9 (system).

Public Interface
Internals

Previous: , Up: Lisp   [Contents][Index]

3.1.7 uax-9/documentation.lisp

Dependency

uax-9.lisp (file).

Source

uax-9.asd.

Parent Component

uax-9 (system).


4 Packages

Packages are listed by definition order.


Previous: , Up: Packages   [Contents][Index]

4.1 org.shirakumo.alloy.uax-9

Source

package.lisp.

Use List

common-lisp.

Public Interface
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

5.1 Public Interface


Next: , Previous: , Up: Public Interface   [Contents][Index]

5.1.1 Special variables

Special Variable: *bidi-brackets-table-file*

Variable containing the absolute path of the brackets table file.

See LOAD-DATABASES
See COMPILE-DATABASES

Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Special Variable: *bidi-class-database-file*

Variable containing the absolute path of the bidi class database file.

See LOAD-DATABASES
See COMPILE-DATABASES

Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Special Variable: *bidi-mirroring-table-file*

Variable containing the absolute path of the mirroring table file.

See LOAD-DATABASES
See COMPILE-DATABASES

Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.


5.1.2 Macros

Macro: do-in-order ((character manual-mirror string &optional levels indexes) &body body)

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

Package

org.shirakumo.alloy.uax-9.

Source

uax-9.lisp.


Next: , Previous: , Up: Public Interface   [Contents][Index]

5.1.3 Ordinary functions

Function: call-in-order (function string &optional levels indexes)

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

Package

org.shirakumo.alloy.uax-9.

Source

uax-9.lisp.

Function: compile-databases ()

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

Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Function: levels (string &key base-direction line-breaks start end)

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

Package

org.shirakumo.alloy.uax-9.

Source

uax-9.lisp.

Function: load-databases ()

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

Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Function: mirror-at (string i)

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.

Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Function: reorder (levels &key line-breaks indexes)

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

Package

org.shirakumo.alloy.uax-9.

Source

uax-9.lisp.


5.1.4 Conditions

Condition: no-database-files

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

Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Direct superclasses

warning.


Previous: , Up: Public Interface   [Contents][Index]

5.1.5 Types

Type: levels ()
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.


5.2 Internals


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.1 Constants

Constant: max-depth
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Constant: max-pairing-depth
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.2 Special variables

Special Variable: *here*
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.


5.2.3 Macros

Macro: defglobal (name value)
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.4 Compiler macros

Compiler Macro: class-id (class)
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Compiler Macro: class-ids (&rest classes)
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Compiler Macro: class<= (left class right)
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Compiler Macro: class= (class expected)
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.5 Ordinary functions

Function: apply-levels-and-types (seq result-types result-levels)
Package

org.shirakumo.alloy.uax-9.

Source

isolating-run-sequence.lisp.

Function: assign-levels-to-characters-removed-by-x9 (string level result-types result-levels)
Package

org.shirakumo.alloy.uax-9.

Source

uax-9.lisp.

Function: bidi-class (id)
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Function: bidi-string-p (string)
Package

org.shirakumo.alloy.uax-9.

Source

uax-9.lisp.

Function: bracket-sibling (id)
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Function: bracket-sibling-at (string i)
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Function: bracket-type (id)
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Function: bracket-type-at (string i)
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Function: class-at (string i)
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Function: class-before-pair (types sos pair)
Package

org.shirakumo.alloy.uax-9.

Source

isolating-run-sequence.lisp.

Function: class-id (class)
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Function: class-ids (&rest classes)
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Function: class<= (left class right)
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Function: class= (class expected)
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Function: classify-pair-content (types pair dir-embed)
Package

org.shirakumo.alloy.uax-9.

Source

isolating-run-sequence.lisp.

Function: code-at (string i)
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Function: compute-reordering (levels result &optional off len)
Package

org.shirakumo.alloy.uax-9.

Source

uax-9.lisp.

Function: determine-explicit-embedding-levels (paragraph-level classes matching-pdis)
Package

org.shirakumo.alloy.uax-9.

Source

uax-9.lisp.

Function: determine-isolating-run-sequences (string level result-types result-levels matching-pdis matching-initiator)
Package

org.shirakumo.alloy.uax-9.

Source

uax-9.lisp.

Function: determine-level-runs (string result-levels)
Package

org.shirakumo.alloy.uax-9.

Source

uax-9.lisp.

Function: determine-matching-isolates (classes)
Package

org.shirakumo.alloy.uax-9.

Source

uax-9.lisp.

Function: determine-paragraph-embedding-level (classes matching-pdis start end)
Package

org.shirakumo.alloy.uax-9.

Source

uax-9.lisp.

Function: empty-stack (stack)
Package

org.shirakumo.alloy.uax-9.

Source

status-stack.lisp.

Function: find-run-limit (seq start end valid-p)
Package

org.shirakumo.alloy.uax-9.

Source

isolating-run-sequence.lisp.

Function: index-array-reverse (arr off len)
Package

org.shirakumo.alloy.uax-9.

Source

uax-9.lisp.

Function: last-isolate (stack)
Package

org.shirakumo.alloy.uax-9.

Source

status-stack.lisp.

Function: last-level (stack)
Package

org.shirakumo.alloy.uax-9.

Source

status-stack.lisp.

Function: last-override (stack)
Package

org.shirakumo.alloy.uax-9.

Source

status-stack.lisp.

Function: load-bidi-brackets-table (&optional source)
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Function: load-bidi-class-database (&optional source)
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Function: load-bidi-mirroring-table (&optional source)
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Function: make-class-array (string)
Package

org.shirakumo.alloy.uax-9.

Source

uax-9.lisp.

Function: make-isolating-run-sequence (indexes string paragraph-level result-types result-levels)
Package

org.shirakumo.alloy.uax-9.

Source

isolating-run-sequence.lisp.

Function: make-reorder-array (length)
Package

org.shirakumo.alloy.uax-9.

Source

uax-9.lisp.

Function: make-seq (indices types levels level sos eos)
Package

org.shirakumo.alloy.uax-9.

Source

isolating-run-sequence.lisp.

Function: make-status-stack ()
Package

org.shirakumo.alloy.uax-9.

Source

status-stack.lisp.

Function: mirror (id)
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Function: neutral-type-p (type)
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Function: normalize-strong-type-n0 (code)
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Function: pop-status (stack)
Package

org.shirakumo.alloy.uax-9.

Source

status-stack.lisp.

Function: push-status (level override isolate stack)
Package

org.shirakumo.alloy.uax-9.

Source

status-stack.lisp.

Function: read-u32le (stream)
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Function: removed-by-x9-p (class)
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Function: resolve-implicit-levels (seq)
Package

org.shirakumo.alloy.uax-9.

Source

isolating-run-sequence.lisp.

Function: resolve-neutral-types (seq)
Package

org.shirakumo.alloy.uax-9.

Source

isolating-run-sequence.lisp.

Function: resolve-paired-brackets (seq string)
Package

org.shirakumo.alloy.uax-9.

Source

isolating-run-sequence.lisp.

Function: resolve-weak-types (seq)
Package

org.shirakumo.alloy.uax-9.

Source

isolating-run-sequence.lisp.

Function: run-algorithm (string level)
Package

org.shirakumo.alloy.uax-9.

Source

uax-9.lisp.

Reader: seq-eos (instance)
Writer: (setf seq-eos) (instance)
Package

org.shirakumo.alloy.uax-9.

Source

isolating-run-sequence.lisp.

Target Slot

eos.

Reader: seq-indices (instance)
Writer: (setf seq-indices) (instance)
Package

org.shirakumo.alloy.uax-9.

Source

isolating-run-sequence.lisp.

Target Slot

indices.

Reader: seq-level (instance)
Writer: (setf seq-level) (instance)
Package

org.shirakumo.alloy.uax-9.

Source

isolating-run-sequence.lisp.

Target Slot

level.

Reader: seq-levels (instance)
Writer: (setf seq-levels) (instance)
Package

org.shirakumo.alloy.uax-9.

Source

isolating-run-sequence.lisp.

Target Slot

levels.

Function: seq-p (object)
Package

org.shirakumo.alloy.uax-9.

Source

isolating-run-sequence.lisp.

Reader: seq-sos (instance)
Writer: (setf seq-sos) (instance)
Package

org.shirakumo.alloy.uax-9.

Source

isolating-run-sequence.lisp.

Target Slot

sos.

Reader: seq-types (instance)
Writer: (setf seq-types) (instance)
Package

org.shirakumo.alloy.uax-9.

Source

isolating-run-sequence.lisp.

Target Slot

types.

Function: set-brackets-to-type (string indices types pair dir)
Package

org.shirakumo.alloy.uax-9.

Source

isolating-run-sequence.lisp.

Function: stack-depth (stack)
Package

org.shirakumo.alloy.uax-9.

Source

status-stack.lisp.

Function: stack-empty-p (stack)
Package

org.shirakumo.alloy.uax-9.

Source

status-stack.lisp.

Function: type-for-level (level)
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Function: whitespace-p (class)
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.6 Structures

Structure: seq
Package

org.shirakumo.alloy.uax-9.

Source

isolating-run-sequence.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: indices
Type

(simple-array org.shirakumo.alloy.uax-9::idx (*))

Readers

seq-indices.

Writers

(setf seq-indices).

Slot: types
Type

(simple-array (unsigned-byte 8) (*))

Readers

seq-types.

Writers

(setf seq-types).

Slot: levels
Type

(simple-array (unsigned-byte 8) (*))

Readers

seq-levels.

Writers

(setf seq-levels).

Slot: level
Type

(unsigned-byte 8)

Initform

0

Readers

seq-level.

Writers

(setf seq-level).

Slot: sos
Type

(unsigned-byte 8)

Initform

0

Readers

seq-sos.

Writers

(setf seq-sos).

Slot: eos
Type

(unsigned-byte 8)

Initform

0

Readers

seq-eos.

Writers

(setf seq-eos).


Previous: , Up: Internals   [Contents][Index]

5.2.7 Types

Type: class ()
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Type: classes ()
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Type: code ()
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Type: idx ()
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Type: level ()
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.

Type: stack ()
Package

org.shirakumo.alloy.uax-9.

Source

database.lisp.


Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts


Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   (  
A   B   C   D   E   F   I   L   M   N   P   R   S   T   W  
Index Entry  Section

(
(setf seq-eos): Private ordinary functions
(setf seq-indices): Private ordinary functions
(setf seq-level): Private ordinary functions
(setf seq-levels): Private ordinary functions
(setf seq-sos): Private ordinary functions
(setf seq-types): Private ordinary functions

A
apply-levels-and-types: Private ordinary functions
assign-levels-to-characters-removed-by-x9: Private ordinary functions

B
bidi-class: Private ordinary functions
bidi-string-p: Private ordinary functions
bracket-sibling: Private ordinary functions
bracket-sibling-at: Private ordinary functions
bracket-type: Private ordinary functions
bracket-type-at: Private ordinary functions

C
call-in-order: Public ordinary functions
class-at: Private ordinary functions
class-before-pair: Private ordinary functions
class-id: Private compiler macros
class-id: Private ordinary functions
class-ids: Private compiler macros
class-ids: Private ordinary functions
class<=: Private compiler macros
class<=: Private ordinary functions
class=: Private compiler macros
class=: Private ordinary functions
classify-pair-content: Private ordinary functions
code-at: Private ordinary functions
compile-databases: Public ordinary functions
Compiler Macro, class-id: Private compiler macros
Compiler Macro, class-ids: Private compiler macros
Compiler Macro, class<=: Private compiler macros
Compiler Macro, class=: Private compiler macros
compute-reordering: Private ordinary functions

D
defglobal: Private macros
determine-explicit-embedding-levels: Private ordinary functions
determine-isolating-run-sequences: Private ordinary functions
determine-level-runs: Private ordinary functions
determine-matching-isolates: Private ordinary functions
determine-paragraph-embedding-level: Private ordinary functions
do-in-order: Public macros

E
empty-stack: Private ordinary functions

F
find-run-limit: Private ordinary functions
Function, (setf seq-eos): Private ordinary functions
Function, (setf seq-indices): Private ordinary functions
Function, (setf seq-level): Private ordinary functions
Function, (setf seq-levels): Private ordinary functions
Function, (setf seq-sos): Private ordinary functions
Function, (setf seq-types): Private ordinary functions
Function, apply-levels-and-types: Private ordinary functions
Function, assign-levels-to-characters-removed-by-x9: Private ordinary functions
Function, bidi-class: Private ordinary functions
Function, bidi-string-p: Private ordinary functions
Function, bracket-sibling: Private ordinary functions
Function, bracket-sibling-at: Private ordinary functions
Function, bracket-type: Private ordinary functions
Function, bracket-type-at: Private ordinary functions
Function, call-in-order: Public ordinary functions
Function, class-at: Private ordinary functions
Function, class-before-pair: Private ordinary functions
Function, class-id: Private ordinary functions
Function, class-ids: Private ordinary functions
Function, class<=: Private ordinary functions
Function, class=: Private ordinary functions
Function, classify-pair-content: Private ordinary functions
Function, code-at: Private ordinary functions
Function, compile-databases: Public ordinary functions
Function, compute-reordering: Private ordinary functions
Function, determine-explicit-embedding-levels: Private ordinary functions
Function, determine-isolating-run-sequences: Private ordinary functions
Function, determine-level-runs: Private ordinary functions
Function, determine-matching-isolates: Private ordinary functions
Function, determine-paragraph-embedding-level: Private ordinary functions
Function, empty-stack: Private ordinary functions
Function, find-run-limit: Private ordinary functions
Function, index-array-reverse: Private ordinary functions
Function, last-isolate: Private ordinary functions
Function, last-level: Private ordinary functions
Function, last-override: Private ordinary functions
Function, levels: Public ordinary functions
Function, load-bidi-brackets-table: Private ordinary functions
Function, load-bidi-class-database: Private ordinary functions
Function, load-bidi-mirroring-table: Private ordinary functions
Function, load-databases: Public ordinary functions
Function, make-class-array: Private ordinary functions
Function, make-isolating-run-sequence: Private ordinary functions
Function, make-reorder-array: Private ordinary functions
Function, make-seq: Private ordinary functions
Function, make-status-stack: Private ordinary functions
Function, mirror: Private ordinary functions
Function, mirror-at: Public ordinary functions
Function, neutral-type-p: Private ordinary functions
Function, normalize-strong-type-n0: Private ordinary functions
Function, pop-status: Private ordinary functions
Function, push-status: Private ordinary functions
Function, read-u32le: Private ordinary functions
Function, removed-by-x9-p: Private ordinary functions
Function, reorder: Public ordinary functions
Function, resolve-implicit-levels: Private ordinary functions
Function, resolve-neutral-types: Private ordinary functions
Function, resolve-paired-brackets: Private ordinary functions
Function, resolve-weak-types: Private ordinary functions
Function, run-algorithm: Private ordinary functions
Function, seq-eos: Private ordinary functions
Function, seq-indices: Private ordinary functions
Function, seq-level: Private ordinary functions
Function, seq-levels: Private ordinary functions
Function, seq-p: Private ordinary functions
Function, seq-sos: Private ordinary functions
Function, seq-types: Private ordinary functions
Function, set-brackets-to-type: Private ordinary functions
Function, stack-depth: Private ordinary functions
Function, stack-empty-p: Private ordinary functions
Function, type-for-level: Private ordinary functions
Function, whitespace-p: Private ordinary functions

I
index-array-reverse: Private ordinary functions

L
last-isolate: Private ordinary functions
last-level: Private ordinary functions
last-override: Private ordinary functions
levels: Public ordinary functions
load-bidi-brackets-table: Private ordinary functions
load-bidi-class-database: Private ordinary functions
load-bidi-mirroring-table: Private ordinary functions
load-databases: Public ordinary functions

M
Macro, defglobal: Private macros
Macro, do-in-order: Public macros
make-class-array: Private ordinary functions
make-isolating-run-sequence: Private ordinary functions
make-reorder-array: Private ordinary functions
make-seq: Private ordinary functions
make-status-stack: Private ordinary functions
mirror: Private ordinary functions
mirror-at: Public ordinary functions

N
neutral-type-p: Private ordinary functions
normalize-strong-type-n0: Private ordinary functions

P
pop-status: Private ordinary functions
push-status: Private ordinary functions

R
read-u32le: Private ordinary functions
removed-by-x9-p: Private ordinary functions
reorder: Public ordinary functions
resolve-implicit-levels: Private ordinary functions
resolve-neutral-types: Private ordinary functions
resolve-paired-brackets: Private ordinary functions
resolve-weak-types: Private ordinary functions
run-algorithm: Private ordinary functions

S
seq-eos: Private ordinary functions
seq-indices: Private ordinary functions
seq-level: Private ordinary functions
seq-levels: Private ordinary functions
seq-p: Private ordinary functions
seq-sos: Private ordinary functions
seq-types: Private ordinary functions
set-brackets-to-type: Private ordinary functions
stack-depth: Private ordinary functions
stack-empty-p: Private ordinary functions

T
type-for-level: Private ordinary functions

W
whitespace-p: Private ordinary functions

Jump to:   (  
A   B   C   D   E   F   I   L   M   N   P   R   S   T   W  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   C   D   F   I   L   N   O   P   S   T   U  
Index Entry  Section

C
class: Private types
classes: Private types
code: Private types
Condition, no-database-files: Public conditions

D
database.lisp: The uax-9/database․lisp file
documentation.lisp: The uax-9/documentation․lisp file

F
File, database.lisp: The uax-9/database․lisp file
File, documentation.lisp: The uax-9/documentation․lisp file
File, isolating-run-sequence.lisp: The uax-9/isolating-run-sequence․lisp file
File, package.lisp: The uax-9/package․lisp file
File, status-stack.lisp: The uax-9/status-stack․lisp file
File, uax-9.asd: The uax-9/uax-9․asd file
File, uax-9.lisp: The uax-9/uax-9․lisp file

I
idx: Private types
isolating-run-sequence.lisp: The uax-9/isolating-run-sequence․lisp file

L
level: Private types
levels: Public types

N
no-database-files: Public conditions

O
org.shirakumo.alloy.uax-9: The org․shirakumo․alloy․uax-9 package

P
Package, org.shirakumo.alloy.uax-9: The org․shirakumo․alloy․uax-9 package
package.lisp: The uax-9/package․lisp file

S
seq: Private structures
stack: Private types
status-stack.lisp: The uax-9/status-stack․lisp file
Structure, seq: Private structures
System, uax-9: The uax-9 system

T
Type, class: Private types
Type, classes: Private types
Type, code: Private types
Type, idx: Private types
Type, level: Private types
Type, levels: Public types
Type, stack: Private types

U
uax-9: The uax-9 system
uax-9.asd: The uax-9/uax-9․asd file
uax-9.lisp: The uax-9/uax-9․lisp file

Jump to:   C   D   F   I   L   N   O   P   S   T   U