CharacterEncoderImplementations__MAC_Hebrew.st
changeset 8082 be629521cbae
child 8114 05274a80fcc4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CharacterEncoderImplementations__MAC_Hebrew.st	Fri Mar 05 18:30:49 2004 +0100
@@ -0,0 +1,596 @@
+"{ Encoding: utf8 }"
+
+"{ Package: 'stx:libbasic' }"
+
+"{ NameSpace: CharacterEncoderImplementations }"
+
+SingleByteEncoder subclass:#MAC_Hebrew
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Collections-Text-Encodings'
+!
+
+
+!MAC_Hebrew class methodsFor:'mapping'!
+
+mapFileURL1_relativePathName
+    ^ 'VENDORS/APPLE/HEBREW.TXT'
+!
+
+mapping
+"
+# From: http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/HEBREW.TXT
+
+#=======================================================================
+#   File name:  HEBREW.TXT
+#
+#   Contents:   Map (external version) from Mac OS Hebrew
+#               character set to Unicode 2.1 through Unicode 3.2.
+#
+#   Copyright:  (c) 1995-2002 by Apple Computer, Inc., all rights
+#               reserved.
+#
+#   Contact:    charsets@apple.com
+#
+#   Changes:
+#
+#      b3,c1 2002-Dec-19    Don't require left-right context for digits
+#                                                       0x30-0x39. Change mapping of 0x81 to use
+#                           decomposition. Reverse the mappings of 0xA8,
+#                           0xA9. Update URLs, notes. Matches internal
+#                           utom<b7>.
+#       b02  1999-Sep-22    Update contact e-mail address. Matches
+#                           internal utom<b1>, ufrm<b1>, and Text
+#                           Encoding Converter version 1.5.
+#       n03  1998-Feb-05    Show required Unicode character
+#                           directionality in a different way. Update
+#                           mappings for 0xC0 and 0xDE to use
+#                           transcoding hints; matches internal utom<n6>,
+#                           ufrm<n20>, and Text Encoding Converter
+#                           version 1.3. Rewrite header comments.
+#       n01  1995-Nov-15    First version. Matches internal ufrm<n8>.
+#
+# Standard header:
+# ----------------
+#
+#   Apple, the Apple logo, and Macintosh are trademarks of Apple
+#   Computer, Inc., registered in the United States and other countries.
+#   Unicode is a trademark of Unicode Inc. For the sake of brevity,
+#   throughout this document, 'Macintosh' can be used to refer to
+#   Macintosh computers and 'Unicode' can be used to refer to the
+#   Unicode standard.
+#
+#   Apple makes no warranty or representation, either express or
+#   implied, with respect to these tables, their quality, accuracy, or
+#   fitness for a particular purpose. In no event will Apple be liable
+#   for direct, indirect, special, incidental, or consequential damages 
+#   resulting from any defect or inaccuracy in this document or the
+#   accompanying tables.
+#
+#   These mapping tables and character lists are subject to change.
+#   The latest tables should be available from the following:
+#
+#   <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
+#
+#   For general information about Mac OS encodings and these mapping
+#   tables, see the file 'README.TXT'.
+#
+# Format:
+# -------
+#
+#   Three tab-separated columns;
+#   '#' begins a comment which continues to the end of the line.
+#     Column #1 is the Mac OS Hebrew code (in hex as 0xNN).
+#     Column #2 is the corresponding Unicode or Unicode sequence (in
+#       hex as 0xNNNN, 0xNNNN+0xNNNN, etc.). Sequences of up to 5
+#       Unicode characters are used here. A single Unicode character
+#       may be preceded by a tag indicating required directionality
+#       (i.e. <LR>+0xNNNN or <RL>+0xNNNN).
+#     Column #3 is a comment containing the Unicode name.
+#
+#   The entries are in Mac OS Hebrew code order.
+#
+#   Some of these mappings require the use of corporate characters.
+#   See the file 'CORPCHAR.TXT' and notes below.
+#
+#   Control character mappings are not shown in this table, following
+#   the conventions of the standard UTC mapping tables. However, the
+#   Mac OS Roman character set uses the standard control characters at
+#   0x00-0x1F and 0x7F.
+#
+# Notes on Mac OS Hebrew:
+# -----------------------
+#
+#   1. General
+#
+#   The Mac OS Hebrew character set supports the Hebrew and Yiddish
+#   languages. It incorporates the Hebrew letter repertoire of
+#   ISO 8859-8, and uses the same code points for them, 0xE0-0xFA.
+#   It also incorporates the ASCII character set. In addition, the
+#   Mac OS Hebrew character set includes the following:
+#
+#   - Hebrew points (nikud marks) at 0xC6, 0xCB-0xCF and 0xD8-0xDF.
+#     These are non-spacing combining marks. Note that the RAFE point
+#     at 0xD8 is not displayed correctly in some fonts, and cannot be
+#     typed using the keyboard layouts in the current Hebrew localized
+#     systems. Also note: The character given in Unicode as QAMATS
+#     (U+05B8) actually refers to two different sounds, depending on
+#     context. For example, when ALEF is followed by QAMATS, the QAMATS
+#     can actually refer to two different sounds depending on the
+#     following letters. The Mac OS Hebrew character set separately
+#     encodes these two sounds for the same graphic shape, as 'qamats'
+#     (0xCB) and 'qamats qatan' (0xDE). The 'qamats' character is more
+#     common, so it is mapped to the Unicode QAMATS; 'qamats qatan' can
+#     only be used with a limited number of characters, and it is
+#     mapped using a corporate-zone variant tag (see below).
+#
+#   - Various Hebrew ligatures at 0x81, 0xC0, 0xC7, 0xC8, 0xD6, and
+#     0xD7. Also note that the Yiddish YOD YOD PATAH ligature at 0x81
+#     is missing in some fonts.
+#
+#   - The NEW SHEQEL SIGN at 0xA6.
+#
+#       - Latin characters with diacritics at 0x80 and 0x82-0x9F. However,
+#     most of these cannot be typed using the keyboard layouts in the
+#     Hebrew localized systems.
+#
+#   - Right-left versions of certain ASCII punctuation, symbols and
+#     digits: 0xA0-0xA5, 0xA7-0xBF, 0xFB-0xFF. See below.
+#
+#   - Miscellaneous additional punctuation at 0xC1, 0xC9, 0xCA, and
+#     0xD0-0xD5. There is a variant of the Hebrew encoding in which
+#     the LEFT SINGLE QUOTATION MARK at 0xD4 is replaced by FIGURE
+#     SPACE. The glyphs for some of the other punctuation characters
+#     are missing in some fonts.
+#
+#   - Four obsolete characters at 0xC2-0xC5 known as canorals (not to
+#     be confused with cantillation marks!!). These were used for
+#     manual positioning of nikud marks before System 7.1 (at which
+#     point nikud positioning became automatic with WorldScript.).
+#
+#   2. Directional characters and roundtrip fidelity
+#
+#   The Mac OS Hebrew character set was developed around 1987. At that
+#   time the bidirectional line line layout algorithm used in the Mac OS
+#   Hebrew system was fairly simple; it used only a few direction
+#   classes (instead of the 19 now used in the Unicode bidirectional
+#   algorithm). In order to permit users to handle some tricky layou
+#   problems, certain punctuation, symbol, and digit characters have
+#   duplicate code points, one with a left-right direction attribute and
+#   the other with a right-left direction attribute.
+#
+#   For example, plus sign is encoded at 0x2B with a left-right
+#   attribute, and at 0xAB with a right-left attribute. However, there
+#   is only one PLUS SIGN character in Unicode. This leads to some
+#   interesting problems when mapping between Mac OS Hebrew and Unicode;
+#   see below.
+#
+#   A related problem is that even when a particular character is
+#   encoded only once in Mac OS Hebrew, it may have a different
+#   direction attribute than the corresponding Unicode character.
+#
+#   For example, the Mac OS Hebrew character at 0xC9 is HORIZONTAL
+#   ELLIPSIS with strong right-left direction. However, the Unicode
+#   character HORIZONTAL ELLIPSIS has direction class neutral.
+#
+#   3. Font variants
+#
+#   The table in this file gives the Unicode mappings for the standard
+#   Mac OS Hebrew encoding. This encoding is supported by many of the
+#   Apple fonts (including all of the fonts in the Hebrew Language Kit),
+#   and is the encoding supported by the text processing utilities.
+#   However, some TrueType fonts provided with the localized Hebrew
+#   system implement a slightly different encoding; the difference is
+#   only in one code point, 0xD4. For the standard variant, this is:
+#     0xD4 -> <RL>+0x2018  LEFT SINGLE QUOTATION MARK, right-left
+#
+#   The TrueType variant is used by the following TrueType fonts from
+#   the localized system: Caesarea, Carmel Book, Gilboa, Ramat Sharon,
+#   and Sinai Book. For these, 0xD4 is as follows:
+#     0xD4 -> <RL>+0x2007  FIGURE SPACE, right-left
+#
+# Unicode mapping issues and notes:
+# ---------------------------------
+#
+#   1. Matching the direction of Mac OS Hebrew characters
+#
+#   When Mac OS Hebrew encodes a character twice but with different
+#   direction attributes for the two code points - as in the case of
+#   plus sign mentioned above - we need a way to map both Mac OS Hebrew
+#   code points to Unicode and back again without loss of information.
+#   With the plus sign, for example, mapping one of the Mac OS Hebrew
+#   characters to a code in the Unicode corporate use zone is
+#   undesirable, since both of the plus sign characters are likely to
+#   be used in text that is interchanged.
+#
+#   The problem is solved with the use of direction override characters
+#   and direction-dependent mappings. When mapping from Mac OS Hebrew
+#   to Unicode, we use direction overrides as necessary to force the
+#   direction of the resulting Unicode characters.
+#
+#   The required direction is indicated by a direction tag in the
+#   mappings. A tag of <LR> means the corresponding Unicode character
+#   must have a strong left-right context, and a tag of <RL> indicates
+#   a right-left context.
+#
+#   For example, the mapping of 0x2B is given as <LR>+0x002B; the
+#   mapping of 0xAB is given as <RL>+0x002B. If we map an isolated
+#   instance of 0x2B to Unicode, it should be mapped as follows (LRO
+#   indicates LEFT-RIGHT OVERRIDE, PDF indicates POP DIRECTION
+#   FORMATTING):
+#
+#     0x2B ->  0x202D (LRO) + 0x002B (PLUS SIGN) + 0x202C (PDF)
+#
+#   When mapping several characters in a row that require direction
+#   forcing, the overrides need only be used at the beginning and end.
+#   For example:
+#
+#     0x24 0x20 0x28 0x29 -> 0x202D 0x0024 0x0020 0x0028 0x0029 0x202C
+#
+#   If neutral characters that require direction forcing are already
+#   between strong-direction characters with matching directionality,
+#   then direction overrides need not be used. Direction overrides are
+#   always needed to map the right-left digits at 0xB0-0xB9.
+#
+#   When mapping from Unicode to Mac OS Hebrew, the Unicode
+#   bidirectional algorithm should be used to determine resolved
+#   direction of the Unicode characters. The mapping from Unicode to
+#   Mac OS Hebrew can then be disambiguated by the use of the resolved
+#   direction:
+#
+#     Unicode 0x002B -> Mac OS Hebrew 0x2B (if L) or 0xAB (if R)
+#
+#   However, this also means the direction override characters should
+#   be discarded when mapping from Unicode to Mac OS Hebrew (after
+#   they have been used to determine resolved direction), since the
+#   direction override information is carried by the code point itself.
+#
+#   Even when direction overrides are not needed for roundtrip
+#   fidelity, they are sometimes used when mapping Mac OS Hebrew
+#   characters to Unicode in order to achieve similar text layout with
+#   the resulting Unicode text. For example, the single Mac OS Hebrew
+#   ellipsis character has direction class right-left,and there is no
+#   left-right version. However, the Unicode HORIZONTAL ELLIPSIS
+#   character has direction class neutral (which means it may end up
+#   with a resolved direction of left-right if surrounded by left-right
+#   characters). When mapping the Mac OS Hebrew ellipsis to Unicode, it
+#   is surrounded with a direction override to help preserve proper
+#   text layout. The resolved direction is not needed or used when
+#   mapping the Unicode HORIZONTAL ELLIPSIS back to Mac OS Hebrew.
+#
+#   2. Use of corporate-zone Unicodes
+#
+#   The goals in the mappings provided here are:
+#   - Ensure roundtrip mapping from every character in the Mac OS
+#     Hebrew character set to Unicode and back
+#   - Use standard Unicode characters as much as possible, to
+#     maximize interchangeability of the resulting Unicode text.
+#     Whenever possible, avoid having content carried by private-use
+#     characters.
+#
+#   Some of the characters in the Mac OS Hebrew character set do not
+#   correspond to distinct, single Unicode characters. To map these
+#   and satisfy both goals above, we employ various strategies.
+#
+#   a) If possible, use private use characters in combination with
+#   standard Unicode characters to mark variants of the standard
+#   Unicode character.
+#
+#   Apple has defined a block of 32 corporate characters as 'transcoding
+#   hints.' These are used in combination with standard Unicode characters
+#   to force them to be treated in a special way for mapping to other
+#   encodings; they have no other effect. Sixteen of these transcoding
+#   hints are 'grouping hints' - they indicate that the next 2-4 Unicode
+#   characters should be treated as a single entity for transcoding. The
+#   other sixteen transcoding hints are 'variant tags' - they are like
+#   combining characters, and can follow a standard Unicode (or a sequence
+#   consisting of a base character and other combining characters) to
+#   cause it to be treated in a special way for transcoding. These always
+#   terminate a combining-character sequence.
+#
+#   Two transcoding hints are used in this mapping table: a grouping hint
+#   and a variant tag:
+#   hint:
+#     0xF86A  group next 2 characters, right-left directionality
+#     0xF87F  variant tag
+#
+#   In Mac OS Hebrew, 0xC0 is a ligature for lamed holam. This can also
+#   be represented in Mac OS Hebrew as 0xEC+0xDD, using separate
+#   characters for lamed and holam. The latter sequence is mapped to
+#   Unicode as 0x05DC+0x05B9, i.e. as the sequence HEBREW LETTER LAMED +
+#   HEBREW POINT HOLAM. We want to map the ligature 0xC0 using the same
+#   standard Unicode characters, but for round-trip fidelity we need to
+#   distinguish it from the mapping of the sequence 0xEC+0xDD. Thus for
+#   0xC0 we use a grouping hint, and map as follows:
+#   
+#     0xC0 -> 0xF86A+0x05DC+0x05B9
+#
+#   The variant tag is used for 'qamats qatan' to mark it as an alternate
+#   for HEBREW POINT QAMATS, as follows:
+#
+#     0xDE -> 0x05B8+0xF87F
+#
+#   b) Otherwise, use private use characters by themselves to map Mac OS
+#   Hebrew characters which  have no relationship to any standard Unicode
+#   character.
+#
+#   The following additional corporate zone Unicode characters are used
+#   for this purpose here (to map the obsolete 'canorals', see above):
+#
+#     0xF89B  Hebrew canoral 1
+#     0xF89C  Hebrew canoral 2
+#     0xF89D  Hebrew canoral 3
+#     0xF89E  Hebrew canoral 4
+#
+# Details of mapping changes in each version:
+# -------------------------------------------
+#
+#   Changes from version b02 to version b03/c01:
+#
+#   - Stop specifying left-right context for digits 0x30-0x39, since the
+#     corresponding Unicodes 0x0030-0x0039 already have left-right
+#     directionality.
+#
+#   - Change mapping of 0x81 from 0xFB1F HEBREW LIGATURE YIDDISH YOD YOD
+#     PATAH to its canonical decomposition 0x05F2+0x05B7 to improve
+#     cross-platform compatibility (Windows doesn't handle 0xFB1F)
+#
+#   - Interchange the mappings of 0xA8 and 0xA9 to obtain the correct
+#     open/close behavior; they work differently than in Mac Arabic.
+#     The old mapping was
+#         0xA8 <RL>+0x0028 # LEFT PARENTHESIS, right-left
+#         0xA9 <RL>+0x0029 # RIGHT PARENTHESIS, right-left
+#     and the new mapping is
+#         0xA8 <RL>+0x0029 # RIGHT PARENTHESIS, right-left
+#         0xA9 <RL>+0x0028 # LEFT PARENTHESIS, right-left
+#
+#   Changes from version n01 to version n03:
+#
+#   - Change mapping for 0xC0 from single corporate character to
+#     grouping hint plus standard Unicodes
+#
+#   - Change mapping for 0xDE from single corporate character to
+#     standard Unicode plus variant tag
+#
+##################
+
+0x20    <LR>+0x0020     # SPACE, left-right
+0x21    <LR>+0x0021     # EXCLAMATION MARK, left-right
+0x22    <LR>+0x0022     # QUOTATION MARK, left-right
+0x23    <LR>+0x0023     # NUMBER SIGN, left-right
+0x24    <LR>+0x0024     # DOLLAR SIGN, left-right
+0x25    <LR>+0x0025     # PERCENT SIGN, left-right
+0x26    0x0026  # AMPERSAND
+0x27    <LR>+0x0027     # APOSTROPHE, left-right
+0x28    <LR>+0x0028     # LEFT PARENTHESIS, left-right
+0x29    <LR>+0x0029     # RIGHT PARENTHESIS, left-right
+0x2A    <LR>+0x002A     # ASTERISK, left-right
+0x2B    <LR>+0x002B     # PLUS SIGN, left-right
+0x2C    <LR>+0x002C     # COMMA, left-right
+0x2D    <LR>+0x002D     # HYPHEN-MINUS, left-right
+0x2E    <LR>+0x002E     # FULL STOP, left-right
+0x2F    <LR>+0x002F     # SOLIDUS, left-right
+0x30    0x0030  # DIGIT ZERO
+0x31    0x0031  # DIGIT ONE
+0x32    0x0032  # DIGIT TWO
+0x33    0x0033  # DIGIT THREE
+0x34    0x0034  # DIGIT FOUR
+0x35    0x0035  # DIGIT FIVE
+0x36    0x0036  # DIGIT SIX
+0x37    0x0037  # DIGIT SEVEN
+0x38    0x0038  # DIGIT EIGHT
+0x39    0x0039  # DIGIT NINE
+0x3A    <LR>+0x003A     # COLON, left-right
+0x3B    <LR>+0x003B     # SEMICOLON, left-right
+0x3C    <LR>+0x003C     # LESS-THAN SIGN, left-right
+0x3D    <LR>+0x003D     # EQUALS SIGN, left-right
+0x3E    <LR>+0x003E     # GREATER-THAN SIGN, left-right
+0x3F    <LR>+0x003F     # QUESTION MARK, left-right
+0x40    0x0040  # COMMERCIAL AT
+0x41    0x0041  # LATIN CAPITAL LETTER A
+0x42    0x0042  # LATIN CAPITAL LETTER B
+0x43    0x0043  # LATIN CAPITAL LETTER C
+0x44    0x0044  # LATIN CAPITAL LETTER D
+0x45    0x0045  # LATIN CAPITAL LETTER E
+0x46    0x0046  # LATIN CAPITAL LETTER F
+0x47    0x0047  # LATIN CAPITAL LETTER G
+0x48    0x0048  # LATIN CAPITAL LETTER H
+0x49    0x0049  # LATIN CAPITAL LETTER I
+0x4A    0x004A  # LATIN CAPITAL LETTER J
+0x4B    0x004B  # LATIN CAPITAL LETTER K
+0x4C    0x004C  # LATIN CAPITAL LETTER L
+0x4D    0x004D  # LATIN CAPITAL LETTER M
+0x4E    0x004E  # LATIN CAPITAL LETTER N
+0x4F    0x004F  # LATIN CAPITAL LETTER O
+0x50    0x0050  # LATIN CAPITAL LETTER P
+0x51    0x0051  # LATIN CAPITAL LETTER Q
+0x52    0x0052  # LATIN CAPITAL LETTER R
+0x53    0x0053  # LATIN CAPITAL LETTER S
+0x54    0x0054  # LATIN CAPITAL LETTER T
+0x55    0x0055  # LATIN CAPITAL LETTER U
+0x56    0x0056  # LATIN CAPITAL LETTER V
+0x57    0x0057  # LATIN CAPITAL LETTER W
+0x58    0x0058  # LATIN CAPITAL LETTER X
+0x59    0x0059  # LATIN CAPITAL LETTER Y
+0x5A    0x005A  # LATIN CAPITAL LETTER Z
+0x5B    <LR>+0x005B     # LEFT SQUARE BRACKET, left-right
+0x5C    0x005C  # REVERSE SOLIDUS
+0x5D    <LR>+0x005D     # RIGHT SQUARE BRACKET, left-right
+0x5E    0x005E  # CIRCUMFLEX ACCENT
+0x5F    0x005F  # LOW LINE
+0x60    0x0060  # GRAVE ACCENT
+0x61    0x0061  # LATIN SMALL LETTER A
+0x62    0x0062  # LATIN SMALL LETTER B
+0x63    0x0063  # LATIN SMALL LETTER C
+0x64    0x0064  # LATIN SMALL LETTER D
+0x65    0x0065  # LATIN SMALL LETTER E
+0x66    0x0066  # LATIN SMALL LETTER F
+0x67    0x0067  # LATIN SMALL LETTER G
+0x68    0x0068  # LATIN SMALL LETTER H
+0x69    0x0069  # LATIN SMALL LETTER I
+0x6A    0x006A  # LATIN SMALL LETTER J
+0x6B    0x006B  # LATIN SMALL LETTER K
+0x6C    0x006C  # LATIN SMALL LETTER L
+0x6D    0x006D  # LATIN SMALL LETTER M
+0x6E    0x006E  # LATIN SMALL LETTER N
+0x6F    0x006F  # LATIN SMALL LETTER O
+0x70    0x0070  # LATIN SMALL LETTER P
+0x71    0x0071  # LATIN SMALL LETTER Q
+0x72    0x0072  # LATIN SMALL LETTER R
+0x73    0x0073  # LATIN SMALL LETTER S
+0x74    0x0074  # LATIN SMALL LETTER T
+0x75    0x0075  # LATIN SMALL LETTER U
+0x76    0x0076  # LATIN SMALL LETTER V
+0x77    0x0077  # LATIN SMALL LETTER W
+0x78    0x0078  # LATIN SMALL LETTER X
+0x79    0x0079  # LATIN SMALL LETTER Y
+0x7A    0x007A  # LATIN SMALL LETTER Z
+0x7B    <LR>+0x007B     # LEFT CURLY BRACKET, left-right
+0x7C    <LR>+0x007C     # VERTICAL LINE, left-right
+0x7D    <LR>+0x007D     # RIGHT CURLY BRACKET, left-right
+0x7E    0x007E  # TILDE
+#
+0x80    0x00C4  # LATIN CAPITAL LETTER A WITH DIAERESIS
+0x81    0x05F2+0x05B7   # HEBREW LIGATURE YIDDISH YOD YOD PATAH
+0x82    0x00C7  # LATIN CAPITAL LETTER C WITH CEDILLA
+0x83    0x00C9  # LATIN CAPITAL LETTER E WITH ACUTE
+0x84    0x00D1  # LATIN CAPITAL LETTER N WITH TILDE
+0x85    0x00D6  # LATIN CAPITAL LETTER O WITH DIAERESIS
+0x86    0x00DC  # LATIN CAPITAL LETTER U WITH DIAERESIS
+0x87    0x00E1  # LATIN SMALL LETTER A WITH ACUTE
+0x88    0x00E0  # LATIN SMALL LETTER A WITH GRAVE
+0x89    0x00E2  # LATIN SMALL LETTER A WITH CIRCUMFLEX
+0x8A    0x00E4  # LATIN SMALL LETTER A WITH DIAERESIS
+0x8B    0x00E3  # LATIN SMALL LETTER A WITH TILDE
+0x8C    0x00E5  # LATIN SMALL LETTER A WITH RING ABOVE
+0x8D    0x00E7  # LATIN SMALL LETTER C WITH CEDILLA
+0x8E    0x00E9  # LATIN SMALL LETTER E WITH ACUTE
+0x8F    0x00E8  # LATIN SMALL LETTER E WITH GRAVE
+0x90    0x00EA  # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0x91    0x00EB  # LATIN SMALL LETTER E WITH DIAERESIS
+0x92    0x00ED  # LATIN SMALL LETTER I WITH ACUTE
+0x93    0x00EC  # LATIN SMALL LETTER I WITH GRAVE
+0x94    0x00EE  # LATIN SMALL LETTER I WITH CIRCUMFLEX
+0x95    0x00EF  # LATIN SMALL LETTER I WITH DIAERESIS
+0x96    0x00F1  # LATIN SMALL LETTER N WITH TILDE
+0x97    0x00F3  # LATIN SMALL LETTER O WITH ACUTE
+0x98    0x00F2  # LATIN SMALL LETTER O WITH GRAVE
+0x99    0x00F4  # LATIN SMALL LETTER O WITH CIRCUMFLEX
+0x9A    0x00F6  # LATIN SMALL LETTER O WITH DIAERESIS
+0x9B    0x00F5  # LATIN SMALL LETTER O WITH TILDE
+0x9C    0x00FA  # LATIN SMALL LETTER U WITH ACUTE
+0x9D    0x00F9  # LATIN SMALL LETTER U WITH GRAVE
+0x9E    0x00FB  # LATIN SMALL LETTER U WITH CIRCUMFLEX
+0x9F    0x00FC  # LATIN SMALL LETTER U WITH DIAERESIS
+0xA0    <RL>+0x0020     # SPACE, right-left
+0xA1    <RL>+0x0021     # EXCLAMATION MARK, right-left
+0xA2    <RL>+0x0022     # QUOTATION MARK, right-left
+0xA3    <RL>+0x0023     # NUMBER SIGN, right-left
+0xA4    <RL>+0x0024     # DOLLAR SIGN, right-left
+0xA5    <RL>+0x0025     # PERCENT SIGN, right-left
+0xA6    0x20AA  # NEW SHEQEL SIGN
+0xA7    <RL>+0x0027     # APOSTROPHE, right-left
+0xA8    <RL>+0x0029     # RIGHT PARENTHESIS, right-left
+0xA9    <RL>+0x0028     # LEFT PARENTHESIS, right-left
+0xAA    <RL>+0x002A     # ASTERISK, right-left
+0xAB    <RL>+0x002B     # PLUS SIGN, right-left
+0xAC    <RL>+0x002C     # COMMA, right-left
+0xAD    <RL>+0x002D     # HYPHEN-MINUS, right-left
+0xAE    <RL>+0x002E     # FULL STOP, right-left
+0xAF    <RL>+0x002F     # SOLIDUS, right-left
+0xB0    <RL>+0x0030     # DIGIT ZERO, right-left (need override)
+0xB1    <RL>+0x0031     # DIGIT ONE, right-left (need override)
+0xB2    <RL>+0x0032     # DIGIT TWO, right-left (need override)
+0xB3    <RL>+0x0033     # DIGIT THREE, right-left (need override)
+0xB4    <RL>+0x0034     # DIGIT FOUR, right-left (need override)
+0xB5    <RL>+0x0035     # DIGIT FIVE, right-left (need override)
+0xB6    <RL>+0x0036     # DIGIT SIX, right-left (need override)
+0xB7    <RL>+0x0037     # DIGIT SEVEN, right-left (need override)
+0xB8    <RL>+0x0038     # DIGIT EIGHT, right-left (need override)
+0xB9    <RL>+0x0039     # DIGIT NINE, right-left (need override)
+0xBA    <RL>+0x003A     # COLON, right-left
+0xBB    <RL>+0x003B     # SEMICOLON, right-left
+0xBC    <RL>+0x003C     # LESS-THAN SIGN, right-left
+0xBD    <RL>+0x003D     # EQUALS SIGN, right-left
+0xBE    <RL>+0x003E     # GREATER-THAN SIGN, right-left
+0xBF    <RL>+0x003F     # QUESTION MARK, right-left
+0xC0    0xF86A+0x05DC+0x05B9    # Hebrew ligature lamed holam
+0xC1    <RL>+0x201E     # DOUBLE LOW-9 QUOTATION MARK, right-left
+0xC2    0xF89B  # Hebrew canoral 1
+0xC3    0xF89C  # Hebrew canoral 2
+0xC4    0xF89D  # Hebrew canoral 3
+0xC5    0xF89E  # Hebrew canoral 4
+0xC6    0x05BC  # HEBREW POINT DAGESH OR MAPIQ
+0xC7    0xFB4B  # HEBREW LETTER VAV WITH HOLAM
+0xC8    0xFB35  # HEBREW LETTER VAV WITH DAGESH
+0xC9    <RL>+0x2026     # HORIZONTAL ELLIPSIS, right-left
+0xCA    <RL>+0x00A0     # NO-BREAK SPACE, right-left
+0xCB    0x05B8  # HEBREW POINT QAMATS
+0xCC    0x05B7  # HEBREW POINT PATAH
+0xCD    0x05B5  # HEBREW POINT TSERE
+0xCE    0x05B6  # HEBREW POINT SEGOL
+0xCF    0x05B4  # HEBREW POINT HIRIQ
+0xD0    <RL>+0x2013     # EN DASH, right-left
+0xD1    <RL>+0x2014     # EM DASH, right-left
+0xD2    <RL>+0x201C     # LEFT DOUBLE QUOTATION MARK, right-left
+0xD3    <RL>+0x201D     # RIGHT DOUBLE QUOTATION MARK, right-left
+0xD4    <RL>+0x2018     # LEFT SINGLE QUOTATION MARK, right-left
+0xD5    <RL>+0x2019     # RIGHT SINGLE QUOTATION MARK, right-left
+0xD6    0xFB2A  # HEBREW LETTER SHIN WITH SHIN DOT
+0xD7    0xFB2B  # HEBREW LETTER SHIN WITH SIN DOT
+0xD8    0x05BF  # HEBREW POINT RAFE
+0xD9    0x05B0  # HEBREW POINT SHEVA
+0xDA    0x05B2  # HEBREW POINT HATAF PATAH
+0xDB    0x05B1  # HEBREW POINT HATAF SEGOL
+0xDC    0x05BB  # HEBREW POINT QUBUTS
+0xDD    0x05B9  # HEBREW POINT HOLAM
+0xDE    0x05B8+0xF87F   # HEBREW POINT QAMATS, alternate form 'qamats qatan'
+0xDF    0x05B3  # HEBREW POINT HATAF QAMATS
+0xE0    0x05D0  # HEBREW LETTER ALEF
+0xE1    0x05D1  # HEBREW LETTER BET
+0xE2    0x05D2  # HEBREW LETTER GIMEL
+0xE3    0x05D3  # HEBREW LETTER DALET
+0xE4    0x05D4  # HEBREW LETTER HE
+0xE5    0x05D5  # HEBREW LETTER VAV
+0xE6    0x05D6  # HEBREW LETTER ZAYIN
+0xE7    0x05D7  # HEBREW LETTER HET
+0xE8    0x05D8  # HEBREW LETTER TET
+0xE9    0x05D9  # HEBREW LETTER YOD
+0xEA    0x05DA  # HEBREW LETTER FINAL KAF
+0xEB    0x05DB  # HEBREW LETTER KAF
+0xEC    0x05DC  # HEBREW LETTER LAMED
+0xED    0x05DD  # HEBREW LETTER FINAL MEM
+0xEE    0x05DE  # HEBREW LETTER MEM
+0xEF    0x05DF  # HEBREW LETTER FINAL NUN
+0xF0    0x05E0  # HEBREW LETTER NUN
+0xF1    0x05E1  # HEBREW LETTER SAMEKH
+0xF2    0x05E2  # HEBREW LETTER AYIN
+0xF3    0x05E3  # HEBREW LETTER FINAL PE
+0xF4    0x05E4  # HEBREW LETTER PE
+0xF5    0x05E5  # HEBREW LETTER FINAL TSADI
+0xF6    0x05E6  # HEBREW LETTER TSADI
+0xF7    0x05E7  # HEBREW LETTER QOF
+0xF8    0x05E8  # HEBREW LETTER RESH
+0xF9    0x05E9  # HEBREW LETTER SHIN
+0xFA    0x05EA  # HEBREW LETTER TAV
+0xFB    <RL>+0x007D     # RIGHT CURLY BRACKET, right-left
+0xFC    <RL>+0x005D     # RIGHT SQUARE BRACKET, right-left
+0xFD    <RL>+0x007B     # LEFT CURLY BRACKET, right-left
+0xFE    <RL>+0x005B     # LEFT SQUARE BRACKET, right-left
+0xFF    <RL>+0x007C     # VERTICAL LINE, right-left
+
+"
+! !
+
+!MAC_Hebrew class methodsFor:'queries'!
+
+namesOfEncoding
+    ^ #( #'mac-hebrew' #'machebrew'  )
+! !
+
+!MAC_Hebrew class methodsFor:'documentation'!
+
+version
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Hebrew.st,v 1.1 2004-03-05 17:30:21 cg Exp $'
+! !