CharacterEncoderImplementations__AdobeStandard.st
changeset 21703 f6724e51bed7
child 21713 1d421bda91e4
equal deleted inserted replaced
21702:5c05820b761f 21703:f6724e51bed7
       
     1 "
       
     2  COPYRIGHT (c) 2017 by eXept Software AG
       
     3               All Rights Reserved
       
     4 
       
     5  This software is furnished under a license and may be used
       
     6  only in accordance with the terms of that license and with the
       
     7  inclusion of the above copyright notice.   This software may not
       
     8  be provided or otherwise made available to, or used by, any
       
     9  other person.  No title to or ownership of the software is
       
    10  hereby transferred.
       
    11 "
       
    12 "{ Package: 'stx:libbasic' }"
       
    13 
       
    14 "{ NameSpace: CharacterEncoderImplementations }"
       
    15 
       
    16 SingleByteEncoder subclass:#AdobeStandard
       
    17 	instanceVariableNames:''
       
    18 	classVariableNames:''
       
    19 	poolDictionaries:''
       
    20 	category:'Collections-Text-Encodings'
       
    21 !
       
    22 
       
    23 !AdobeStandard class methodsFor:'documentation'!
       
    24 
       
    25 copyright
       
    26 "
       
    27  COPYRIGHT (c) 2017 by eXept Software AG
       
    28               All Rights Reserved
       
    29 
       
    30  This software is furnished under a license and may be used
       
    31  only in accordance with the terms of that license and with the
       
    32  inclusion of the above copyright notice.   This software may not
       
    33  be provided or otherwise made available to, or used by, any
       
    34  other person.  No title to or ownership of the software is
       
    35  hereby transferred.
       
    36 "
       
    37 !
       
    38 
       
    39 documentation
       
    40 "
       
    41     Adobe Standard Encoding.
       
    42     see https://www.compart.com/en/unicode/charsets/Adobe-Standard-Encoding
       
    43 
       
    44     [see with:]
       
    45         CharacterEncoderImplementations::AdobeStandard showCharacterSet
       
    46 
       
    47     [author:]
       
    48         Claus Gittinger
       
    49 "
       
    50 ! !
       
    51 
       
    52 !AdobeStandard class methodsFor:'mapping'!
       
    53 
       
    54 mapFileURL1_relativePathName
       
    55     ^ 'VENDORS/ADOBE/stdenc.txt'
       
    56 !
       
    57 
       
    58 mapping
       
    59 "
       
    60 # From: http://www.unicode.org/Public/MAPPINGS/VENDORS/ADOBE/stdenc.txt
       
    61 
       
    62 #
       
    63 #  Name:             Adobe Standard Encoding to Unicode
       
    64 #  Unicode version:  2.0
       
    65 #  Table version:    1.0
       
    66 #  Date:             2011 July 12
       
    67 #  
       
    68 #  Copyright (c) 1991-2011 Unicode, Inc. All Rights reserved.
       
    69 #  
       
    70 #  This file is provided as-is by Unicode, Inc. (The Unicode Consortium). No
       
    71 #  claims are made as to fitness for any particular purpose. No warranties of
       
    72 #  any kind are expressed or implied. The recipient agrees to determine
       
    73 #  applicability of information provided. If this file has been provided on
       
    74 #  magnetic media by Unicode, Inc., the sole remedy for any claim will be
       
    75 #  exchange of defective media within 90 days of receipt.
       
    76 #  
       
    77 #  Unicode, Inc. hereby grants the right to freely use the information
       
    78 #  supplied in this file in the creation of products supporting the
       
    79 #  Unicode Standard, and to make copies of this file in any form for
       
    80 #  internal or external distribution as long as this notice remains
       
    81 #  attached.
       
    82 #
       
    83 #  Format: 4 tab-delimited fields:
       
    84 #
       
    85 #    (1) The Unicode value (in hexadecimal)
       
    86 #    (2) The Adobe Standard Encoding code point (in hexadecimal)
       
    87 #    (3) # Unicode name
       
    88 #    (4) # PostScript character name
       
    89 #  
       
    90 #  General Notes:
       
    91 # 
       
    92 #    The Unicode values in this table were produced as the result of applying
       
    93 #    the algorithm described in the section 'Populating a Unicode space' in the
       
    94 #    document 'Unicode and Glyph Names,' at
       
    95 #    http://partners.adobe.com/asn/developer/typeforum/unicodegn.html
       
    96 #    to the characters encoded in Adobe Standard Encoding. Note that some
       
    97 #    Standard Encoding characters, such as 'space', are mapped to 2 Unicode
       
    98 #    values. Refer to the above document for more details.
       
    99 #
       
   100 #    2011 July 12: The above link is no longer valid. For comparable,
       
   101 #    more current information, see the document, 'Glyph', at:
       
   102 #    <http://www.adobe.com/devnet/opentype/archives/glyph.html>
       
   103 #
       
   104 #  Revision History:
       
   105 #
       
   106 #    [v1.0, 2011 July 12]
       
   107 #    Updated terms of use to current wording.
       
   108 #    Updated contact information and document link.
       
   109 #    No changes to the mapping data.
       
   110 #
       
   111 #    [v0.2, 30 March 1999]
       
   112 #    Different algorithm to produce Unicode values (see notes above) results in
       
   113 #    some character codes being mapped to 2 Unicode values. Updated Unicode
       
   114 #    names to Unicode 2.0 names.
       
   115 #    
       
   116 #    [v0.1, 5 May 1995] First release.
       
   117 #
       
   118 #  Use the Unicode reporting form <http://www.unicode.org/reporting.html>
       
   119 #    for any questions or comments or to report errors in the data.
       
   120 #
       
   121 0020    20      # SPACE # space
       
   122 00A0    20      # NO-BREAK SPACE        # space
       
   123 0021    21      # EXCLAMATION MARK      # exclam
       
   124 0022    22      # QUOTATION MARK        # quotedbl
       
   125 0023    23      # NUMBER SIGN   # numbersign
       
   126 0024    24      # DOLLAR SIGN   # dollar
       
   127 0025    25      # PERCENT SIGN  # percent
       
   128 0026    26      # AMPERSAND     # ampersand
       
   129 2019    27      # RIGHT SINGLE QUOTATION MARK   # quoteright
       
   130 0028    28      # LEFT PARENTHESIS      # parenleft
       
   131 0029    29      # RIGHT PARENTHESIS     # parenright
       
   132 002A    2A      # ASTERISK      # asterisk
       
   133 002B    2B      # PLUS SIGN     # plus
       
   134 002C    2C      # COMMA # comma
       
   135 002D    2D      # HYPHEN-MINUS  # hyphen
       
   136 00AD    2D      # SOFT HYPHEN   # hyphen
       
   137 002E    2E      # FULL STOP     # period
       
   138 002F    2F      # SOLIDUS       # slash
       
   139 0030    30      # DIGIT ZERO    # zero
       
   140 0031    31      # DIGIT ONE     # one
       
   141 0032    32      # DIGIT TWO     # two
       
   142 0033    33      # DIGIT THREE   # three
       
   143 0034    34      # DIGIT FOUR    # four
       
   144 0035    35      # DIGIT FIVE    # five
       
   145 0036    36      # DIGIT SIX     # six
       
   146 0037    37      # DIGIT SEVEN   # seven
       
   147 0038    38      # DIGIT EIGHT   # eight
       
   148 0039    39      # DIGIT NINE    # nine
       
   149 003A    3A      # COLON # colon
       
   150 003B    3B      # SEMICOLON     # semicolon
       
   151 003C    3C      # LESS-THAN SIGN        # less
       
   152 003D    3D      # EQUALS SIGN   # equal
       
   153 003E    3E      # GREATER-THAN SIGN     # greater
       
   154 003F    3F      # QUESTION MARK # question
       
   155 0040    40      # COMMERCIAL AT # at
       
   156 0041    41      # LATIN CAPITAL LETTER A        # A
       
   157 0042    42      # LATIN CAPITAL LETTER B        # B
       
   158 0043    43      # LATIN CAPITAL LETTER C        # C
       
   159 0044    44      # LATIN CAPITAL LETTER D        # D
       
   160 0045    45      # LATIN CAPITAL LETTER E        # E
       
   161 0046    46      # LATIN CAPITAL LETTER F        # F
       
   162 0047    47      # LATIN CAPITAL LETTER G        # G
       
   163 0048    48      # LATIN CAPITAL LETTER H        # H
       
   164 0049    49      # LATIN CAPITAL LETTER I        # I
       
   165 004A    4A      # LATIN CAPITAL LETTER J        # J
       
   166 004B    4B      # LATIN CAPITAL LETTER K        # K
       
   167 004C    4C      # LATIN CAPITAL LETTER L        # L
       
   168 004D    4D      # LATIN CAPITAL LETTER M        # M
       
   169 004E    4E      # LATIN CAPITAL LETTER N        # N
       
   170 004F    4F      # LATIN CAPITAL LETTER O        # O
       
   171 0050    50      # LATIN CAPITAL LETTER P        # P
       
   172 0051    51      # LATIN CAPITAL LETTER Q        # Q
       
   173 0052    52      # LATIN CAPITAL LETTER R        # R
       
   174 0053    53      # LATIN CAPITAL LETTER S        # S
       
   175 0054    54      # LATIN CAPITAL LETTER T        # T
       
   176 0055    55      # LATIN CAPITAL LETTER U        # U
       
   177 0056    56      # LATIN CAPITAL LETTER V        # V
       
   178 0057    57      # LATIN CAPITAL LETTER W        # W
       
   179 0058    58      # LATIN CAPITAL LETTER X        # X
       
   180 0059    59      # LATIN CAPITAL LETTER Y        # Y
       
   181 005A    5A      # LATIN CAPITAL LETTER Z        # Z
       
   182 005B    5B      # LEFT SQUARE BRACKET   # bracketleft
       
   183 005C    5C      # REVERSE SOLIDUS       # backslash
       
   184 005D    5D      # RIGHT SQUARE BRACKET  # bracketright
       
   185 005E    5E      # CIRCUMFLEX ACCENT     # asciicircum
       
   186 005F    5F      # LOW LINE      # underscore
       
   187 2018    60      # LEFT SINGLE QUOTATION MARK    # quoteleft
       
   188 0061    61      # LATIN SMALL LETTER A  # a
       
   189 0062    62      # LATIN SMALL LETTER B  # b
       
   190 0063    63      # LATIN SMALL LETTER C  # c
       
   191 0064    64      # LATIN SMALL LETTER D  # d
       
   192 0065    65      # LATIN SMALL LETTER E  # e
       
   193 0066    66      # LATIN SMALL LETTER F  # f
       
   194 0067    67      # LATIN SMALL LETTER G  # g
       
   195 0068    68      # LATIN SMALL LETTER H  # h
       
   196 0069    69      # LATIN SMALL LETTER I  # i
       
   197 006A    6A      # LATIN SMALL LETTER J  # j
       
   198 006B    6B      # LATIN SMALL LETTER K  # k
       
   199 006C    6C      # LATIN SMALL LETTER L  # l
       
   200 006D    6D      # LATIN SMALL LETTER M  # m
       
   201 006E    6E      # LATIN SMALL LETTER N  # n
       
   202 006F    6F      # LATIN SMALL LETTER O  # o
       
   203 0070    70      # LATIN SMALL LETTER P  # p
       
   204 0071    71      # LATIN SMALL LETTER Q  # q
       
   205 0072    72      # LATIN SMALL LETTER R  # r
       
   206 0073    73      # LATIN SMALL LETTER S  # s
       
   207 0074    74      # LATIN SMALL LETTER T  # t
       
   208 0075    75      # LATIN SMALL LETTER U  # u
       
   209 0076    76      # LATIN SMALL LETTER V  # v
       
   210 0077    77      # LATIN SMALL LETTER W  # w
       
   211 0078    78      # LATIN SMALL LETTER X  # x
       
   212 0079    79      # LATIN SMALL LETTER Y  # y
       
   213 007A    7A      # LATIN SMALL LETTER Z  # z
       
   214 007B    7B      # LEFT CURLY BRACKET    # braceleft
       
   215 007C    7C      # VERTICAL LINE # bar
       
   216 007D    7D      # RIGHT CURLY BRACKET   # braceright
       
   217 007E    7E      # TILDE # asciitilde
       
   218 00A1    A1      # INVERTED EXCLAMATION MARK     # exclamdown
       
   219 00A2    A2      # CENT SIGN     # cent
       
   220 00A3    A3      # POUND SIGN    # sterling
       
   221 2044    A4      # FRACTION SLASH        # fraction
       
   222 2215    A4      # DIVISION SLASH        # fraction
       
   223 00A5    A5      # YEN SIGN      # yen
       
   224 0192    A6      # LATIN SMALL LETTER F WITH HOOK        # florin
       
   225 00A7    A7      # SECTION SIGN  # section
       
   226 00A4    A8      # CURRENCY SIGN # currency
       
   227 0027    A9      # APOSTROPHE    # quotesingle
       
   228 201C    AA      # LEFT DOUBLE QUOTATION MARK    # quotedblleft
       
   229 00AB    AB      # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK     # guillemotleft
       
   230 2039    AC      # SINGLE LEFT-POINTING ANGLE QUOTATION MARK     # guilsinglleft
       
   231 203A    AD      # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK    # guilsinglright
       
   232 FB01    AE      # LATIN SMALL LIGATURE FI       # fi
       
   233 FB02    AF      # LATIN SMALL LIGATURE FL       # fl
       
   234 2013    B1      # EN DASH       # endash
       
   235 2020    B2      # DAGGER        # dagger
       
   236 2021    B3      # DOUBLE DAGGER # daggerdbl
       
   237 00B7    B4      # MIDDLE DOT    # periodcentered
       
   238 2219    B4      # BULLET OPERATOR       # periodcentered
       
   239 00B6    B6      # PILCROW SIGN  # paragraph
       
   240 2022    B7      # BULLET        # bullet
       
   241 201A    B8      # SINGLE LOW-9 QUOTATION MARK   # quotesinglbase
       
   242 201E    B9      # DOUBLE LOW-9 QUOTATION MARK   # quotedblbase
       
   243 201D    BA      # RIGHT DOUBLE QUOTATION MARK   # quotedblright
       
   244 00BB    BB      # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK    # guillemotright
       
   245 2026    BC      # HORIZONTAL ELLIPSIS   # ellipsis
       
   246 2030    BD      # PER MILLE SIGN        # perthousand
       
   247 00BF    BF      # INVERTED QUESTION MARK        # questiondown
       
   248 0060    C1      # GRAVE ACCENT  # grave
       
   249 00B4    C2      # ACUTE ACCENT  # acute
       
   250 02C6    C3      # MODIFIER LETTER CIRCUMFLEX ACCENT     # circumflex
       
   251 02DC    C4      # SMALL TILDE   # tilde
       
   252 00AF    C5      # MACRON        # macron
       
   253 02C9    C5      # MODIFIER LETTER MACRON        # macron
       
   254 02D8    C6      # BREVE # breve
       
   255 02D9    C7      # DOT ABOVE     # dotaccent
       
   256 00A8    C8      # DIAERESIS     # dieresis
       
   257 02DA    CA      # RING ABOVE    # ring
       
   258 00B8    CB      # CEDILLA       # cedilla
       
   259 02DD    CD      # DOUBLE ACUTE ACCENT   # hungarumlaut
       
   260 02DB    CE      # OGONEK        # ogonek
       
   261 02C7    CF      # CARON # caron
       
   262 2014    D0      # EM DASH       # emdash
       
   263 00C6    E1      # LATIN CAPITAL LETTER AE       # AE
       
   264 00AA    E3      # FEMININE ORDINAL INDICATOR    # ordfeminine
       
   265 0141    E8      # LATIN CAPITAL LETTER L WITH STROKE    # Lslash
       
   266 00D8    E9      # LATIN CAPITAL LETTER O WITH STROKE    # Oslash
       
   267 0152    EA      # LATIN CAPITAL LIGATURE OE     # OE
       
   268 00BA    EB      # MASCULINE ORDINAL INDICATOR   # ordmasculine
       
   269 00E6    F1      # LATIN SMALL LETTER AE # ae
       
   270 0131    F5      # LATIN SMALL LETTER DOTLESS I  # dotlessi
       
   271 0142    F8      # LATIN SMALL LETTER L WITH STROKE      # lslash
       
   272 00F8    F9      # LATIN SMALL LETTER O WITH STROKE      # oslash
       
   273 0153    FA      # LATIN SMALL LIGATURE OE       # oe
       
   274 00DF    FB      # LATIN SMALL LETTER SHARP S    # germandbls
       
   275 
       
   276 "
       
   277 ! !
       
   278 
       
   279 !AdobeStandard methodsFor:'encoding & decoding'!
       
   280 
       
   281 decode:codeArg
       
   282     "Automagically generated by generateCode - do not modify.
       
   283      Decode from my encoding into unicode."
       
   284 
       
   285     |code "{ Class: SmallInteger }"|
       
   286 
       
   287     code := codeArg.
       
   288     code <= 16r1F ifTrue:[
       
   289         ^ self decodingError.
       
   290     ].
       
   291     code > 16rFB ifTrue:[
       
   292         ^ self decodingError.
       
   293     ].
       
   294     [
       
   295         |t|
       
   296         t := #(
       
   297            "16r0020"    16r00A0 " NO-BREAK SPACE        # space " 
       
   298            "16r0021"    16r0021 " EXCLAMATION MARK      # exclam " 
       
   299            "16r0022"    16r0022 " QUOTATION MARK        # quotedbl " 
       
   300            "16r0023"    16r0023 " NUMBER SIGN   # numbersign " 
       
   301            "16r0024"    16r0024 " DOLLAR SIGN   # dollar " 
       
   302            "16r0025"    16r0025 " PERCENT SIGN  # percent " 
       
   303            "16r0026"    16r0026 " AMPERSAND     # ampersand " 
       
   304            "16r0027"    16r2019 " RIGHT SINGLE QUOTATION MARK   # quoteright " 
       
   305            "16r0028"    16r0028 " LEFT PARENTHESIS      # parenleft " 
       
   306            "16r0029"    16r0029 " RIGHT PARENTHESIS     # parenright " 
       
   307            "16r002A"    16r002A " ASTERISK      # asterisk " 
       
   308            "16r002B"    16r002B " PLUS SIGN     # plus " 
       
   309            "16r002C"    16r002C " COMMA # comma " 
       
   310            "16r002D"    16r00AD " SOFT HYPHEN   # hyphen " 
       
   311            "16r002E"    16r002E " FULL STOP     # period " 
       
   312            "16r002F"    16r002F " SOLIDUS       # slash " 
       
   313            "16r0030"    16r0030 " DIGIT ZERO    # zero " 
       
   314            "16r0031"    16r0031 " DIGIT ONE     # one " 
       
   315            "16r0032"    16r0032 " DIGIT TWO     # two " 
       
   316            "16r0033"    16r0033 " DIGIT THREE   # three " 
       
   317            "16r0034"    16r0034 " DIGIT FOUR    # four " 
       
   318            "16r0035"    16r0035 " DIGIT FIVE    # five " 
       
   319            "16r0036"    16r0036 " DIGIT SIX     # six " 
       
   320            "16r0037"    16r0037 " DIGIT SEVEN   # seven " 
       
   321            "16r0038"    16r0038 " DIGIT EIGHT   # eight " 
       
   322            "16r0039"    16r0039 " DIGIT NINE    # nine " 
       
   323            "16r003A"    16r003A " COLON # colon " 
       
   324            "16r003B"    16r003B " SEMICOLON     # semicolon " 
       
   325            "16r003C"    16r003C " LESS-THAN SIGN        # less " 
       
   326            "16r003D"    16r003D " EQUALS SIGN   # equal " 
       
   327            "16r003E"    16r003E " GREATER-THAN SIGN     # greater " 
       
   328            "16r003F"    16r003F " QUESTION MARK # question " 
       
   329            "16r0040"    16r0040 " COMMERCIAL AT # at " 
       
   330            "16r0041"    16r0041 " LATIN CAPITAL LETTER A        # A " 
       
   331            "16r0042"    16r0042 " LATIN CAPITAL LETTER B        # B " 
       
   332            "16r0043"    16r0043 " LATIN CAPITAL LETTER C        # C " 
       
   333            "16r0044"    16r0044 " LATIN CAPITAL LETTER D        # D " 
       
   334            "16r0045"    16r0045 " LATIN CAPITAL LETTER E        # E " 
       
   335            "16r0046"    16r0046 " LATIN CAPITAL LETTER F        # F " 
       
   336            "16r0047"    16r0047 " LATIN CAPITAL LETTER G        # G " 
       
   337            "16r0048"    16r0048 " LATIN CAPITAL LETTER H        # H " 
       
   338            "16r0049"    16r0049 " LATIN CAPITAL LETTER I        # I " 
       
   339            "16r004A"    16r004A " LATIN CAPITAL LETTER J        # J " 
       
   340            "16r004B"    16r004B " LATIN CAPITAL LETTER K        # K " 
       
   341            "16r004C"    16r004C " LATIN CAPITAL LETTER L        # L " 
       
   342            "16r004D"    16r004D " LATIN CAPITAL LETTER M        # M " 
       
   343            "16r004E"    16r004E " LATIN CAPITAL LETTER N        # N " 
       
   344            "16r004F"    16r004F " LATIN CAPITAL LETTER O        # O " 
       
   345            "16r0050"    16r0050 " LATIN CAPITAL LETTER P        # P " 
       
   346            "16r0051"    16r0051 " LATIN CAPITAL LETTER Q        # Q " 
       
   347            "16r0052"    16r0052 " LATIN CAPITAL LETTER R        # R " 
       
   348            "16r0053"    16r0053 " LATIN CAPITAL LETTER S        # S " 
       
   349            "16r0054"    16r0054 " LATIN CAPITAL LETTER T        # T " 
       
   350            "16r0055"    16r0055 " LATIN CAPITAL LETTER U        # U " 
       
   351            "16r0056"    16r0056 " LATIN CAPITAL LETTER V        # V " 
       
   352            "16r0057"    16r0057 " LATIN CAPITAL LETTER W        # W " 
       
   353            "16r0058"    16r0058 " LATIN CAPITAL LETTER X        # X " 
       
   354            "16r0059"    16r0059 " LATIN CAPITAL LETTER Y        # Y " 
       
   355            "16r005A"    16r005A " LATIN CAPITAL LETTER Z        # Z " 
       
   356            "16r005B"    16r005B " LEFT SQUARE BRACKET   # bracketleft " 
       
   357            "16r005C"    16r005C " REVERSE SOLIDUS       # backslash " 
       
   358            "16r005D"    16r005D " RIGHT SQUARE BRACKET  # bracketright " 
       
   359            "16r005E"    16r005E " CIRCUMFLEX ACCENT     # asciicircum " 
       
   360            "16r005F"    16r005F " LOW LINE      # underscore " 
       
   361            "16r0060"    16r2018 " LEFT SINGLE QUOTATION MARK    # quoteleft " 
       
   362            "16r0061"    16r0061 " LATIN SMALL LETTER A  # a " 
       
   363            "16r0062"    16r0062 " LATIN SMALL LETTER B  # b " 
       
   364            "16r0063"    16r0063 " LATIN SMALL LETTER C  # c " 
       
   365            "16r0064"    16r0064 " LATIN SMALL LETTER D  # d " 
       
   366            "16r0065"    16r0065 " LATIN SMALL LETTER E  # e " 
       
   367            "16r0066"    16r0066 " LATIN SMALL LETTER F  # f " 
       
   368            "16r0067"    16r0067 " LATIN SMALL LETTER G  # g " 
       
   369            "16r0068"    16r0068 " LATIN SMALL LETTER H  # h " 
       
   370            "16r0069"    16r0069 " LATIN SMALL LETTER I  # i " 
       
   371            "16r006A"    16r006A " LATIN SMALL LETTER J  # j " 
       
   372            "16r006B"    16r006B " LATIN SMALL LETTER K  # k " 
       
   373            "16r006C"    16r006C " LATIN SMALL LETTER L  # l " 
       
   374            "16r006D"    16r006D " LATIN SMALL LETTER M  # m " 
       
   375            "16r006E"    16r006E " LATIN SMALL LETTER N  # n " 
       
   376            "16r006F"    16r006F " LATIN SMALL LETTER O  # o " 
       
   377            "16r0070"    16r0070 " LATIN SMALL LETTER P  # p " 
       
   378            "16r0071"    16r0071 " LATIN SMALL LETTER Q  # q " 
       
   379            "16r0072"    16r0072 " LATIN SMALL LETTER R  # r " 
       
   380            "16r0073"    16r0073 " LATIN SMALL LETTER S  # s " 
       
   381            "16r0074"    16r0074 " LATIN SMALL LETTER T  # t " 
       
   382            "16r0075"    16r0075 " LATIN SMALL LETTER U  # u " 
       
   383            "16r0076"    16r0076 " LATIN SMALL LETTER V  # v " 
       
   384            "16r0077"    16r0077 " LATIN SMALL LETTER W  # w " 
       
   385            "16r0078"    16r0078 " LATIN SMALL LETTER X  # x " 
       
   386            "16r0079"    16r0079 " LATIN SMALL LETTER Y  # y " 
       
   387            "16r007A"    16r007A " LATIN SMALL LETTER Z  # z " 
       
   388            "16r007B"    16r007B " LEFT CURLY BRACKET    # braceleft " 
       
   389            "16r007C"    16r007C " VERTICAL LINE # bar " 
       
   390            "16r007D"    16r007D " RIGHT CURLY BRACKET   # braceright " 
       
   391            "16r007E"    16r007E " TILDE # asciitilde " 
       
   392            "16r007F"    16r0000 " invalid " 
       
   393            "16r0080"    16r0000 " invalid " 
       
   394            "16r0081"    16r0000 " invalid " 
       
   395            "16r0082"    16r0000 " invalid " 
       
   396            "16r0083"    16r0000 " invalid " 
       
   397            "16r0084"    16r0000 " invalid " 
       
   398            "16r0085"    16r0000 " invalid " 
       
   399            "16r0086"    16r0000 " invalid " 
       
   400            "16r0087"    16r0000 " invalid " 
       
   401            "16r0088"    16r0000 " invalid " 
       
   402            "16r0089"    16r0000 " invalid " 
       
   403            "16r008A"    16r0000 " invalid " 
       
   404            "16r008B"    16r0000 " invalid " 
       
   405            "16r008C"    16r0000 " invalid " 
       
   406            "16r008D"    16r0000 " invalid " 
       
   407            "16r008E"    16r0000 " invalid " 
       
   408            "16r008F"    16r0000 " invalid " 
       
   409            "16r0090"    16r0000 " invalid " 
       
   410            "16r0091"    16r0000 " invalid " 
       
   411            "16r0092"    16r0000 " invalid " 
       
   412            "16r0093"    16r0000 " invalid " 
       
   413            "16r0094"    16r0000 " invalid " 
       
   414            "16r0095"    16r0000 " invalid " 
       
   415            "16r0096"    16r0000 " invalid " 
       
   416            "16r0097"    16r0000 " invalid " 
       
   417            "16r0098"    16r0000 " invalid " 
       
   418            "16r0099"    16r0000 " invalid " 
       
   419            "16r009A"    16r0000 " invalid " 
       
   420            "16r009B"    16r0000 " invalid " 
       
   421            "16r009C"    16r0000 " invalid " 
       
   422            "16r009D"    16r0000 " invalid " 
       
   423            "16r009E"    16r0000 " invalid " 
       
   424            "16r009F"    16r0000 " invalid " 
       
   425            "16r00A0"    16r0000 " invalid " 
       
   426            "16r00A1"    16r00A1 " INVERTED EXCLAMATION MARK     # exclamdown " 
       
   427            "16r00A2"    16r00A2 " CENT SIGN     # cent " 
       
   428            "16r00A3"    16r00A3 " POUND SIGN    # sterling " 
       
   429            "16r00A4"    16r2215 " DIVISION SLASH        # fraction " 
       
   430            "16r00A5"    16r00A5 " YEN SIGN      # yen " 
       
   431            "16r00A6"    16r0192 " LATIN SMALL LETTER F WITH HOOK        # florin " 
       
   432            "16r00A7"    16r00A7 " SECTION SIGN  # section " 
       
   433            "16r00A8"    16r00A4 " CURRENCY SIGN # currency " 
       
   434            "16r00A9"    16r0027 " APOSTROPHE    # quotesingle " 
       
   435            "16r00AA"    16r201C " LEFT DOUBLE QUOTATION MARK    # quotedblleft " 
       
   436            "16r00AB"    16r00AB " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK     # guillemotleft " 
       
   437            "16r00AC"    16r2039 " SINGLE LEFT-POINTING ANGLE QUOTATION MARK     # guilsinglleft " 
       
   438            "16r00AD"    16r203A " SINGLE RIGHT-POINTING ANGLE QUOTATION MARK    # guilsinglright " 
       
   439            "16r00AE"    16rFB01 " LATIN SMALL LIGATURE FI       # fi " 
       
   440            "16r00AF"    16rFB02 " LATIN SMALL LIGATURE FL       # fl " 
       
   441            "16r00B0"    16r0000 " invalid " 
       
   442            "16r00B1"    16r2013 " EN DASH       # endash " 
       
   443            "16r00B2"    16r2020 " DAGGER        # dagger " 
       
   444            "16r00B3"    16r2021 " DOUBLE DAGGER # daggerdbl " 
       
   445            "16r00B4"    16r2219 " BULLET OPERATOR       # periodcentered " 
       
   446            "16r00B5"    16r0000 " invalid " 
       
   447            "16r00B6"    16r00B6 " PILCROW SIGN  # paragraph " 
       
   448            "16r00B7"    16r2022 " BULLET        # bullet " 
       
   449            "16r00B8"    16r201A " SINGLE LOW-9 QUOTATION MARK   # quotesinglbase " 
       
   450            "16r00B9"    16r201E " DOUBLE LOW-9 QUOTATION MARK   # quotedblbase " 
       
   451            "16r00BA"    16r201D " RIGHT DOUBLE QUOTATION MARK   # quotedblright " 
       
   452            "16r00BB"    16r00BB " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK    # guillemotright " 
       
   453            "16r00BC"    16r2026 " HORIZONTAL ELLIPSIS   # ellipsis " 
       
   454            "16r00BD"    16r2030 " PER MILLE SIGN        # perthousand " 
       
   455            "16r00BE"    16r0000 " invalid " 
       
   456            "16r00BF"    16r00BF " INVERTED QUESTION MARK        # questiondown " 
       
   457            "16r00C0"    16r0000 " invalid " 
       
   458            "16r00C1"    16r0060 " GRAVE ACCENT  # grave " 
       
   459            "16r00C2"    16r00B4 " ACUTE ACCENT  # acute " 
       
   460            "16r00C3"    16r02C6 " MODIFIER LETTER CIRCUMFLEX ACCENT     # circumflex " 
       
   461            "16r00C4"    16r02DC " SMALL TILDE   # tilde " 
       
   462            "16r00C5"    16r02C9 " MODIFIER LETTER MACRON        # macron " 
       
   463            "16r00C6"    16r02D8 " BREVE # breve " 
       
   464            "16r00C7"    16r02D9 " DOT ABOVE     # dotaccent " 
       
   465            "16r00C8"    16r00A8 " DIAERESIS     # dieresis " 
       
   466            "16r00C9"    16r0000 " invalid " 
       
   467            "16r00CA"    16r02DA " RING ABOVE    # ring " 
       
   468            "16r00CB"    16r00B8 " CEDILLA       # cedilla " 
       
   469            "16r00CC"    16r0000 " invalid " 
       
   470            "16r00CD"    16r02DD " DOUBLE ACUTE ACCENT   # hungarumlaut " 
       
   471            "16r00CE"    16r02DB " OGONEK        # ogonek " 
       
   472            "16r00CF"    16r02C7 " CARON # caron " 
       
   473            "16r00D0"    16r2014 " EM DASH       # emdash " 
       
   474            "16r00D1"    16r0000 " invalid " 
       
   475            "16r00D2"    16r0000 " invalid " 
       
   476            "16r00D3"    16r0000 " invalid " 
       
   477            "16r00D4"    16r0000 " invalid " 
       
   478            "16r00D5"    16r0000 " invalid " 
       
   479            "16r00D6"    16r0000 " invalid " 
       
   480            "16r00D7"    16r0000 " invalid " 
       
   481            "16r00D8"    16r0000 " invalid " 
       
   482            "16r00D9"    16r0000 " invalid " 
       
   483            "16r00DA"    16r0000 " invalid " 
       
   484            "16r00DB"    16r0000 " invalid " 
       
   485            "16r00DC"    16r0000 " invalid " 
       
   486            "16r00DD"    16r0000 " invalid " 
       
   487            "16r00DE"    16r0000 " invalid " 
       
   488            "16r00DF"    16r0000 " invalid " 
       
   489            "16r00E0"    16r0000 " invalid " 
       
   490            "16r00E1"    16r00C6 " LATIN CAPITAL LETTER AE       # AE " 
       
   491            "16r00E2"    16r0000 " invalid " 
       
   492            "16r00E3"    16r00AA " FEMININE ORDINAL INDICATOR    # ordfeminine " 
       
   493            "16r00E4"    16r0000 " invalid " 
       
   494            "16r00E5"    16r0000 " invalid " 
       
   495            "16r00E6"    16r0000 " invalid " 
       
   496            "16r00E7"    16r0000 " invalid " 
       
   497            "16r00E8"    16r0141 " LATIN CAPITAL LETTER L WITH STROKE    # Lslash " 
       
   498            "16r00E9"    16r00D8 " LATIN CAPITAL LETTER O WITH STROKE    # Oslash " 
       
   499            "16r00EA"    16r0152 " LATIN CAPITAL LIGATURE OE     # OE " 
       
   500            "16r00EB"    16r00BA " MASCULINE ORDINAL INDICATOR   # ordmasculine " 
       
   501            "16r00EC"    16r0000 " invalid " 
       
   502            "16r00ED"    16r0000 " invalid " 
       
   503            "16r00EE"    16r0000 " invalid " 
       
   504            "16r00EF"    16r0000 " invalid " 
       
   505            "16r00F0"    16r0000 " invalid " 
       
   506            "16r00F1"    16r00E6 " LATIN SMALL LETTER AE # ae " 
       
   507            "16r00F2"    16r0000 " invalid " 
       
   508            "16r00F3"    16r0000 " invalid " 
       
   509            "16r00F4"    16r0000 " invalid " 
       
   510            "16r00F5"    16r0131 " LATIN SMALL LETTER DOTLESS I  # dotlessi " 
       
   511            "16r00F6"    16r0000 " invalid " 
       
   512            "16r00F7"    16r0000 " invalid " 
       
   513            "16r00F8"    16r0142 " LATIN SMALL LETTER L WITH STROKE      # lslash " 
       
   514            "16r00F9"    16r00F8 " LATIN SMALL LETTER O WITH STROKE      # oslash " 
       
   515            "16r00FA"    16r0153 " LATIN SMALL LIGATURE OE       # oe " 
       
   516            "16r00FB"    16r00DF " LATIN SMALL LETTER SHARP S    # germandbls " 
       
   517            ) at:(code - 16r1F).
       
   518         t == 0 ifFalse:[^ t].
       
   519         ^ self decodingError.
       
   520     ] value.
       
   521 !
       
   522 
       
   523 encode:unicodeArg
       
   524     "Automagically generated by generateCode - do not modify.
       
   525      Encode from unicode into my encoding."
       
   526 
       
   527     |unicode "{ Class: SmallInteger }"|
       
   528 
       
   529     unicode := unicodeArg.
       
   530     unicode <= 16r20 ifTrue:[
       
   531         ^ self decodingError.
       
   532     ].
       
   533     unicode <= 16r26 ifTrue:[ ^ unicode ].
       
   534     unicode > 16rFB02 ifTrue:[
       
   535         ^ self encodingError.
       
   536     ].
       
   537     unicode <= 16r2219 ifTrue:[
       
   538         unicode <= 16r2DD ifTrue:[
       
   539             unicode <= 16r192 ifTrue:[
       
   540                 unicode <= 16r153 ifTrue:[
       
   541                     unicode <= 16rF8 ifTrue:[
       
   542                         [
       
   543                             |t|
       
   544                             t := #[
       
   545                                "16r0027"    16rA9 " APOSTROPHE    # quotesingle " 
       
   546                                "16r0028"    16r28 " LEFT PARENTHESIS      # parenleft " 
       
   547                                "16r0029"    16r29 " RIGHT PARENTHESIS     # parenright " 
       
   548                                "16r002A"    16r2A " ASTERISK      # asterisk " 
       
   549                                "16r002B"    16r2B " PLUS SIGN     # plus " 
       
   550                                "16r002C"    16r2C " COMMA # comma " 
       
   551                                "16r002D"    16r00 " invalid " 
       
   552                                "16r002E"    16r2E " FULL STOP     # period " 
       
   553                                "16r002F"    16r2F " SOLIDUS       # slash " 
       
   554                                "16r0030"    16r30 " DIGIT ZERO    # zero " 
       
   555                                "16r0031"    16r31 " DIGIT ONE     # one " 
       
   556                                "16r0032"    16r32 " DIGIT TWO     # two " 
       
   557                                "16r0033"    16r33 " DIGIT THREE   # three " 
       
   558                                "16r0034"    16r34 " DIGIT FOUR    # four " 
       
   559                                "16r0035"    16r35 " DIGIT FIVE    # five " 
       
   560                                "16r0036"    16r36 " DIGIT SIX     # six " 
       
   561                                "16r0037"    16r37 " DIGIT SEVEN   # seven " 
       
   562                                "16r0038"    16r38 " DIGIT EIGHT   # eight " 
       
   563                                "16r0039"    16r39 " DIGIT NINE    # nine " 
       
   564                                "16r003A"    16r3A " COLON # colon " 
       
   565                                "16r003B"    16r3B " SEMICOLON     # semicolon " 
       
   566                                "16r003C"    16r3C " LESS-THAN SIGN        # less " 
       
   567                                "16r003D"    16r3D " EQUALS SIGN   # equal " 
       
   568                                "16r003E"    16r3E " GREATER-THAN SIGN     # greater " 
       
   569                                "16r003F"    16r3F " QUESTION MARK # question " 
       
   570                                "16r0040"    16r40 " COMMERCIAL AT # at " 
       
   571                                "16r0041"    16r41 " LATIN CAPITAL LETTER A        # A " 
       
   572                                "16r0042"    16r42 " LATIN CAPITAL LETTER B        # B " 
       
   573                                "16r0043"    16r43 " LATIN CAPITAL LETTER C        # C " 
       
   574                                "16r0044"    16r44 " LATIN CAPITAL LETTER D        # D " 
       
   575                                "16r0045"    16r45 " LATIN CAPITAL LETTER E        # E " 
       
   576                                "16r0046"    16r46 " LATIN CAPITAL LETTER F        # F " 
       
   577                                "16r0047"    16r47 " LATIN CAPITAL LETTER G        # G " 
       
   578                                "16r0048"    16r48 " LATIN CAPITAL LETTER H        # H " 
       
   579                                "16r0049"    16r49 " LATIN CAPITAL LETTER I        # I " 
       
   580                                "16r004A"    16r4A " LATIN CAPITAL LETTER J        # J " 
       
   581                                "16r004B"    16r4B " LATIN CAPITAL LETTER K        # K " 
       
   582                                "16r004C"    16r4C " LATIN CAPITAL LETTER L        # L " 
       
   583                                "16r004D"    16r4D " LATIN CAPITAL LETTER M        # M " 
       
   584                                "16r004E"    16r4E " LATIN CAPITAL LETTER N        # N " 
       
   585                                "16r004F"    16r4F " LATIN CAPITAL LETTER O        # O " 
       
   586                                "16r0050"    16r50 " LATIN CAPITAL LETTER P        # P " 
       
   587                                "16r0051"    16r51 " LATIN CAPITAL LETTER Q        # Q " 
       
   588                                "16r0052"    16r52 " LATIN CAPITAL LETTER R        # R " 
       
   589                                "16r0053"    16r53 " LATIN CAPITAL LETTER S        # S " 
       
   590                                "16r0054"    16r54 " LATIN CAPITAL LETTER T        # T " 
       
   591                                "16r0055"    16r55 " LATIN CAPITAL LETTER U        # U " 
       
   592                                "16r0056"    16r56 " LATIN CAPITAL LETTER V        # V " 
       
   593                                "16r0057"    16r57 " LATIN CAPITAL LETTER W        # W " 
       
   594                                "16r0058"    16r58 " LATIN CAPITAL LETTER X        # X " 
       
   595                                "16r0059"    16r59 " LATIN CAPITAL LETTER Y        # Y " 
       
   596                                "16r005A"    16r5A " LATIN CAPITAL LETTER Z        # Z " 
       
   597                                "16r005B"    16r5B " LEFT SQUARE BRACKET   # bracketleft " 
       
   598                                "16r005C"    16r5C " REVERSE SOLIDUS       # backslash " 
       
   599                                "16r005D"    16r5D " RIGHT SQUARE BRACKET  # bracketright " 
       
   600                                "16r005E"    16r5E " CIRCUMFLEX ACCENT     # asciicircum " 
       
   601                                "16r005F"    16r5F " LOW LINE      # underscore " 
       
   602                                "16r0060"    16rC1 " GRAVE ACCENT  # grave " 
       
   603                                "16r0061"    16r61 " LATIN SMALL LETTER A  # a " 
       
   604                                "16r0062"    16r62 " LATIN SMALL LETTER B  # b " 
       
   605                                "16r0063"    16r63 " LATIN SMALL LETTER C  # c " 
       
   606                                "16r0064"    16r64 " LATIN SMALL LETTER D  # d " 
       
   607                                "16r0065"    16r65 " LATIN SMALL LETTER E  # e " 
       
   608                                "16r0066"    16r66 " LATIN SMALL LETTER F  # f " 
       
   609                                "16r0067"    16r67 " LATIN SMALL LETTER G  # g " 
       
   610                                "16r0068"    16r68 " LATIN SMALL LETTER H  # h " 
       
   611                                "16r0069"    16r69 " LATIN SMALL LETTER I  # i " 
       
   612                                "16r006A"    16r6A " LATIN SMALL LETTER J  # j " 
       
   613                                "16r006B"    16r6B " LATIN SMALL LETTER K  # k " 
       
   614                                "16r006C"    16r6C " LATIN SMALL LETTER L  # l " 
       
   615                                "16r006D"    16r6D " LATIN SMALL LETTER M  # m " 
       
   616                                "16r006E"    16r6E " LATIN SMALL LETTER N  # n " 
       
   617                                "16r006F"    16r6F " LATIN SMALL LETTER O  # o " 
       
   618                                "16r0070"    16r70 " LATIN SMALL LETTER P  # p " 
       
   619                                "16r0071"    16r71 " LATIN SMALL LETTER Q  # q " 
       
   620                                "16r0072"    16r72 " LATIN SMALL LETTER R  # r " 
       
   621                                "16r0073"    16r73 " LATIN SMALL LETTER S  # s " 
       
   622                                "16r0074"    16r74 " LATIN SMALL LETTER T  # t " 
       
   623                                "16r0075"    16r75 " LATIN SMALL LETTER U  # u " 
       
   624                                "16r0076"    16r76 " LATIN SMALL LETTER V  # v " 
       
   625                                "16r0077"    16r77 " LATIN SMALL LETTER W  # w " 
       
   626                                "16r0078"    16r78 " LATIN SMALL LETTER X  # x " 
       
   627                                "16r0079"    16r79 " LATIN SMALL LETTER Y  # y " 
       
   628                                "16r007A"    16r7A " LATIN SMALL LETTER Z  # z " 
       
   629                                "16r007B"    16r7B " LEFT CURLY BRACKET    # braceleft " 
       
   630                                "16r007C"    16r7C " VERTICAL LINE # bar " 
       
   631                                "16r007D"    16r7D " RIGHT CURLY BRACKET   # braceright " 
       
   632                                "16r007E"    16r7E " TILDE # asciitilde " 
       
   633                                "16r007F"    16r00 " invalid " 
       
   634                                "16r0080"    16r00 " invalid " 
       
   635                                "16r0081"    16r00 " invalid " 
       
   636                                "16r0082"    16r00 " invalid " 
       
   637                                "16r0083"    16r00 " invalid " 
       
   638                                "16r0084"    16r00 " invalid " 
       
   639                                "16r0085"    16r00 " invalid " 
       
   640                                "16r0086"    16r00 " invalid " 
       
   641                                "16r0087"    16r00 " invalid " 
       
   642                                "16r0088"    16r00 " invalid " 
       
   643                                "16r0089"    16r00 " invalid " 
       
   644                                "16r008A"    16r00 " invalid " 
       
   645                                "16r008B"    16r00 " invalid " 
       
   646                                "16r008C"    16r00 " invalid " 
       
   647                                "16r008D"    16r00 " invalid " 
       
   648                                "16r008E"    16r00 " invalid " 
       
   649                                "16r008F"    16r00 " invalid " 
       
   650                                "16r0090"    16r00 " invalid " 
       
   651                                "16r0091"    16r00 " invalid " 
       
   652                                "16r0092"    16r00 " invalid " 
       
   653                                "16r0093"    16r00 " invalid " 
       
   654                                "16r0094"    16r00 " invalid " 
       
   655                                "16r0095"    16r00 " invalid " 
       
   656                                "16r0096"    16r00 " invalid " 
       
   657                                "16r0097"    16r00 " invalid " 
       
   658                                "16r0098"    16r00 " invalid " 
       
   659                                "16r0099"    16r00 " invalid " 
       
   660                                "16r009A"    16r00 " invalid " 
       
   661                                "16r009B"    16r00 " invalid " 
       
   662                                "16r009C"    16r00 " invalid " 
       
   663                                "16r009D"    16r00 " invalid " 
       
   664                                "16r009E"    16r00 " invalid " 
       
   665                                "16r009F"    16r00 " invalid " 
       
   666                                "16r00A0"    16r20 " NO-BREAK SPACE        # space " 
       
   667                                "16r00A1"    16rA1 " INVERTED EXCLAMATION MARK     # exclamdown " 
       
   668                                "16r00A2"    16rA2 " CENT SIGN     # cent " 
       
   669                                "16r00A3"    16rA3 " POUND SIGN    # sterling " 
       
   670                                "16r00A4"    16rA8 " CURRENCY SIGN # currency " 
       
   671                                "16r00A5"    16rA5 " YEN SIGN      # yen " 
       
   672                                "16r00A6"    16r00 " invalid " 
       
   673                                "16r00A7"    16rA7 " SECTION SIGN  # section " 
       
   674                                "16r00A8"    16rC8 " DIAERESIS     # dieresis " 
       
   675                                "16r00A9"    16r00 " invalid " 
       
   676                                "16r00AA"    16rE3 " FEMININE ORDINAL INDICATOR    # ordfeminine " 
       
   677                                "16r00AB"    16rAB " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK     # guillemotleft " 
       
   678                                "16r00AC"    16r00 " invalid " 
       
   679                                "16r00AD"    16r2D " SOFT HYPHEN   # hyphen " 
       
   680                                "16r00AE"    16r00 " invalid " 
       
   681                                "16r00AF"    16r00 " invalid " 
       
   682                                "16r00B0"    16r00 " invalid " 
       
   683                                "16r00B1"    16r00 " invalid " 
       
   684                                "16r00B2"    16r00 " invalid " 
       
   685                                "16r00B3"    16r00 " invalid " 
       
   686                                "16r00B4"    16rC2 " ACUTE ACCENT  # acute " 
       
   687                                "16r00B5"    16r00 " invalid " 
       
   688                                "16r00B6"    16rB6 " PILCROW SIGN  # paragraph " 
       
   689                                "16r00B7"    16r00 " invalid " 
       
   690                                "16r00B8"    16rCB " CEDILLA       # cedilla " 
       
   691                                "16r00B9"    16r00 " invalid " 
       
   692                                "16r00BA"    16rEB " MASCULINE ORDINAL INDICATOR   # ordmasculine " 
       
   693                                "16r00BB"    16rBB " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK    # guillemotright " 
       
   694                                "16r00BC"    16r00 " invalid " 
       
   695                                "16r00BD"    16r00 " invalid " 
       
   696                                "16r00BE"    16r00 " invalid " 
       
   697                                "16r00BF"    16rBF " INVERTED QUESTION MARK        # questiondown " 
       
   698                                "16r00C0"    16r00 " invalid " 
       
   699                                "16r00C1"    16r00 " invalid " 
       
   700                                "16r00C2"    16r00 " invalid " 
       
   701                                "16r00C3"    16r00 " invalid " 
       
   702                                "16r00C4"    16r00 " invalid " 
       
   703                                "16r00C5"    16r00 " invalid " 
       
   704                                "16r00C6"    16rE1 " LATIN CAPITAL LETTER AE       # AE " 
       
   705                                "16r00C7"    16r00 " invalid " 
       
   706                                "16r00C8"    16r00 " invalid " 
       
   707                                "16r00C9"    16r00 " invalid " 
       
   708                                "16r00CA"    16r00 " invalid " 
       
   709                                "16r00CB"    16r00 " invalid " 
       
   710                                "16r00CC"    16r00 " invalid " 
       
   711                                "16r00CD"    16r00 " invalid " 
       
   712                                "16r00CE"    16r00 " invalid " 
       
   713                                "16r00CF"    16r00 " invalid " 
       
   714                                "16r00D0"    16r00 " invalid " 
       
   715                                "16r00D1"    16r00 " invalid " 
       
   716                                "16r00D2"    16r00 " invalid " 
       
   717                                "16r00D3"    16r00 " invalid " 
       
   718                                "16r00D4"    16r00 " invalid " 
       
   719                                "16r00D5"    16r00 " invalid " 
       
   720                                "16r00D6"    16r00 " invalid " 
       
   721                                "16r00D7"    16r00 " invalid " 
       
   722                                "16r00D8"    16rE9 " LATIN CAPITAL LETTER O WITH STROKE    # Oslash " 
       
   723                                "16r00D9"    16r00 " invalid " 
       
   724                                "16r00DA"    16r00 " invalid " 
       
   725                                "16r00DB"    16r00 " invalid " 
       
   726                                "16r00DC"    16r00 " invalid " 
       
   727                                "16r00DD"    16r00 " invalid " 
       
   728                                "16r00DE"    16r00 " invalid " 
       
   729                                "16r00DF"    16rFB " LATIN SMALL LETTER SHARP S    # germandbls " 
       
   730                                "16r00E0"    16r00 " invalid " 
       
   731                                "16r00E1"    16r00 " invalid " 
       
   732                                "16r00E2"    16r00 " invalid " 
       
   733                                "16r00E3"    16r00 " invalid " 
       
   734                                "16r00E4"    16r00 " invalid " 
       
   735                                "16r00E5"    16r00 " invalid " 
       
   736                                "16r00E6"    16rF1 " LATIN SMALL LETTER AE # ae " 
       
   737                                "16r00E7"    16r00 " invalid " 
       
   738                                "16r00E8"    16r00 " invalid " 
       
   739                                "16r00E9"    16r00 " invalid " 
       
   740                                "16r00EA"    16r00 " invalid " 
       
   741                                "16r00EB"    16r00 " invalid " 
       
   742                                "16r00EC"    16r00 " invalid " 
       
   743                                "16r00ED"    16r00 " invalid " 
       
   744                                "16r00EE"    16r00 " invalid " 
       
   745                                "16r00EF"    16r00 " invalid " 
       
   746                                "16r00F0"    16r00 " invalid " 
       
   747                                "16r00F1"    16r00 " invalid " 
       
   748                                "16r00F2"    16r00 " invalid " 
       
   749                                "16r00F3"    16r00 " invalid " 
       
   750                                "16r00F4"    16r00 " invalid " 
       
   751                                "16r00F5"    16r00 " invalid " 
       
   752                                "16r00F6"    16r00 " invalid " 
       
   753                                "16r00F7"    16r00 " invalid " 
       
   754                                "16r00F8"    16rF9 " LATIN SMALL LETTER O WITH STROKE      # oslash " 
       
   755                                ] at:(unicode - 16r26).
       
   756                             t == 0 ifFalse:[^ t].
       
   757                             ^ self encodingError
       
   758                         ] value.
       
   759                     ].
       
   760                     unicode <= 16r130 ifTrue:[
       
   761                         ^ self encodingError
       
   762                     ].
       
   763                     unicode == 16r131 ifTrue:[
       
   764                         (#[
       
   765                            "16r0131"    1 " LATIN SMALL LETTER DOTLESS I  # dotlessi " 
       
   766                         ] at:(unicode - 304)) ~~ 0 ifTrue:[^ unicode].
       
   767                         ^ self encodingError
       
   768                     ].
       
   769                     unicode <= 16r140 ifTrue:[
       
   770                         ^ self encodingError
       
   771                     ].
       
   772                     [
       
   773                         |t|
       
   774                         t := #[
       
   775                            "16r0141"    16rE8 " LATIN CAPITAL LETTER L WITH STROKE    # Lslash " 
       
   776                            "16r0142"    16rF8 " LATIN SMALL LETTER L WITH STROKE      # lslash " 
       
   777                            "16r0143"    16r00 " invalid " 
       
   778                            "16r0144"    16r00 " invalid " 
       
   779                            "16r0145"    16r00 " invalid " 
       
   780                            "16r0146"    16r00 " invalid " 
       
   781                            "16r0147"    16r00 " invalid " 
       
   782                            "16r0148"    16r00 " invalid " 
       
   783                            "16r0149"    16r00 " invalid " 
       
   784                            "16r014A"    16r00 " invalid " 
       
   785                            "16r014B"    16r00 " invalid " 
       
   786                            "16r014C"    16r00 " invalid " 
       
   787                            "16r014D"    16r00 " invalid " 
       
   788                            "16r014E"    16r00 " invalid " 
       
   789                            "16r014F"    16r00 " invalid " 
       
   790                            "16r0150"    16r00 " invalid " 
       
   791                            "16r0151"    16r00 " invalid " 
       
   792                            "16r0152"    16rEA " LATIN CAPITAL LIGATURE OE     # OE " 
       
   793                            "16r0153"    16rFA " LATIN SMALL LIGATURE OE       # oe " 
       
   794                            ] at:(unicode - 16r140).
       
   795                         t == 0 ifFalse:[^ t].
       
   796                         ^ self encodingError
       
   797                     ] value.
       
   798                 ].
       
   799                 unicode <= 16r191 ifTrue:[
       
   800                     ^ self encodingError
       
   801                 ].
       
   802                 ^  "16r0192" 16r00A6 " LATIN SMALL LETTER F WITH HOOK        # florin " 
       
   803             ].
       
   804             unicode <= 16r2C5 ifTrue:[
       
   805                 ^ self encodingError
       
   806             ].
       
   807             [
       
   808                 |t|
       
   809                 t := #[
       
   810                    "16r02C6"    16rC3 " MODIFIER LETTER CIRCUMFLEX ACCENT     # circumflex " 
       
   811                    "16r02C7"    16rCF " CARON # caron " 
       
   812                    "16r02C8"    16r00 " invalid " 
       
   813                    "16r02C9"    16rC5 " MODIFIER LETTER MACRON        # macron " 
       
   814                    "16r02CA"    16r00 " invalid " 
       
   815                    "16r02CB"    16r00 " invalid " 
       
   816                    "16r02CC"    16r00 " invalid " 
       
   817                    "16r02CD"    16r00 " invalid " 
       
   818                    "16r02CE"    16r00 " invalid " 
       
   819                    "16r02CF"    16r00 " invalid " 
       
   820                    "16r02D0"    16r00 " invalid " 
       
   821                    "16r02D1"    16r00 " invalid " 
       
   822                    "16r02D2"    16r00 " invalid " 
       
   823                    "16r02D3"    16r00 " invalid " 
       
   824                    "16r02D4"    16r00 " invalid " 
       
   825                    "16r02D5"    16r00 " invalid " 
       
   826                    "16r02D6"    16r00 " invalid " 
       
   827                    "16r02D7"    16r00 " invalid " 
       
   828                    "16r02D8"    16rC6 " BREVE # breve " 
       
   829                    "16r02D9"    16rC7 " DOT ABOVE     # dotaccent " 
       
   830                    "16r02DA"    16rCA " RING ABOVE    # ring " 
       
   831                    "16r02DB"    16rCE " OGONEK        # ogonek " 
       
   832                    "16r02DC"    16rC4 " SMALL TILDE   # tilde " 
       
   833                    "16r02DD"    16rCD " DOUBLE ACUTE ACCENT   # hungarumlaut " 
       
   834                    ] at:(unicode - 16r2C5).
       
   835                 t == 0 ifFalse:[^ t].
       
   836                 ^ self encodingError
       
   837             ] value.
       
   838         ].
       
   839         unicode <= 16r2012 ifTrue:[
       
   840             ^ self encodingError
       
   841         ].
       
   842         unicode <= 16r203A ifTrue:[
       
   843             [
       
   844                 |t|
       
   845                 t := #[
       
   846                    "16r2013"    16rB1 " EN DASH       # endash " 
       
   847                    "16r2014"    16rD0 " EM DASH       # emdash " 
       
   848                    "16r2015"    16r00 " invalid " 
       
   849                    "16r2016"    16r00 " invalid " 
       
   850                    "16r2017"    16r00 " invalid " 
       
   851                    "16r2018"    16r60 " LEFT SINGLE QUOTATION MARK    # quoteleft " 
       
   852                    "16r2019"    16r27 " RIGHT SINGLE QUOTATION MARK   # quoteright " 
       
   853                    "16r201A"    16rB8 " SINGLE LOW-9 QUOTATION MARK   # quotesinglbase " 
       
   854                    "16r201B"    16r00 " invalid " 
       
   855                    "16r201C"    16rAA " LEFT DOUBLE QUOTATION MARK    # quotedblleft " 
       
   856                    "16r201D"    16rBA " RIGHT DOUBLE QUOTATION MARK   # quotedblright " 
       
   857                    "16r201E"    16rB9 " DOUBLE LOW-9 QUOTATION MARK   # quotedblbase " 
       
   858                    "16r201F"    16r00 " invalid " 
       
   859                    "16r2020"    16rB2 " DAGGER        # dagger " 
       
   860                    "16r2021"    16rB3 " DOUBLE DAGGER # daggerdbl " 
       
   861                    "16r2022"    16rB7 " BULLET        # bullet " 
       
   862                    "16r2023"    16r00 " invalid " 
       
   863                    "16r2024"    16r00 " invalid " 
       
   864                    "16r2025"    16r00 " invalid " 
       
   865                    "16r2026"    16rBC " HORIZONTAL ELLIPSIS   # ellipsis " 
       
   866                    "16r2027"    16r00 " invalid " 
       
   867                    "16r2028"    16r00 " invalid " 
       
   868                    "16r2029"    16r00 " invalid " 
       
   869                    "16r202A"    16r00 " invalid " 
       
   870                    "16r202B"    16r00 " invalid " 
       
   871                    "16r202C"    16r00 " invalid " 
       
   872                    "16r202D"    16r00 " invalid " 
       
   873                    "16r202E"    16r00 " invalid " 
       
   874                    "16r202F"    16r00 " invalid " 
       
   875                    "16r2030"    16rBD " PER MILLE SIGN        # perthousand " 
       
   876                    "16r2031"    16r00 " invalid " 
       
   877                    "16r2032"    16r00 " invalid " 
       
   878                    "16r2033"    16r00 " invalid " 
       
   879                    "16r2034"    16r00 " invalid " 
       
   880                    "16r2035"    16r00 " invalid " 
       
   881                    "16r2036"    16r00 " invalid " 
       
   882                    "16r2037"    16r00 " invalid " 
       
   883                    "16r2038"    16r00 " invalid " 
       
   884                    "16r2039"    16rAC " SINGLE LEFT-POINTING ANGLE QUOTATION MARK     # guilsinglleft " 
       
   885                    "16r203A"    16rAD " SINGLE RIGHT-POINTING ANGLE QUOTATION MARK    # guilsinglright " 
       
   886                    ] at:(unicode - 16r2012).
       
   887                 t == 0 ifFalse:[^ t].
       
   888                 ^ self encodingError
       
   889             ] value.
       
   890         ].
       
   891         unicode <= 16r2214 ifTrue:[
       
   892             ^ self encodingError
       
   893         ].
       
   894         [
       
   895             |t|
       
   896             t := #[
       
   897                "16r2215"    16rA4 " DIVISION SLASH        # fraction " 
       
   898                "16r2216"    16r00 " invalid " 
       
   899                "16r2217"    16r00 " invalid " 
       
   900                "16r2218"    16r00 " invalid " 
       
   901                "16r2219"    16rB4 " BULLET OPERATOR       # periodcentered " 
       
   902                ] at:(unicode - 16r2214).
       
   903             t == 0 ifFalse:[^ t].
       
   904             ^ self encodingError
       
   905         ] value.
       
   906     ].
       
   907     unicode <= 16rFB00 ifTrue:[
       
   908         ^ self encodingError
       
   909     ].
       
   910     ^ #[
       
   911        "16rFB01"    16rAE " LATIN SMALL LIGATURE FI       # fi " 
       
   912        "16rFB02"    16rAF " LATIN SMALL LIGATURE FL       # fl " 
       
   913        ] at:(unicode - 16rFB00).
       
   914 ! !
       
   915 
       
   916 !AdobeStandard class methodsFor:'documentation'!
       
   917 
       
   918 version
       
   919     ^ '$Header$'
       
   920 !
       
   921 
       
   922 version_CVS
       
   923     ^ '$Header$'
       
   924 ! !
       
   925