Contraction Tables
==================

Each line of a contraction table consists of UTF8-encoded characters and may be 
empty, a comment, or a table entry. An empty line contains only whitespace (any 
number of blanks and/or tabs). A line is a comment if the first non-whitespace 
character is '#'. The format of a table entry is:

   opcode operand ... [comment]

Each opcode has a specific number of operands (most have two). The opcode, each 
of its operands, and the optional comment are separated from one another by 
whitespace. Leading whitespace is ignored.

The order of the entries in the table may be anything that is convenient. You
may wish to bear in mind, however, that the compiler rearranges entries so that
the longest of several entries beginning with the same two characters is tested
first. If entries have the same first operand, they are arranged in the order
in which they are found in the table. Thus, the same string may have different
translations under different circumstances. This method of arrangement is also
followed for entries whose first operand is just one character.

In specifying the first operand, you may simply type it, if all the characters
are on the keyboard. For those characters which are not, use a backslash
followed by two hexadecimal digits. If you wish, you can follow the C
convention and place "0x" between the backslash and the hexadecimal digits. To
enter a backslash, use two in sequence, "\\".

In most entries, the first operand is the string to be translated, and the
second operand is the dot patterns of the Braille cells in the translation. The
standard dot numbering is used. Cells are separated by hyphens ('-').
