diff -r 5c05820b761f -r f6724e51bed7 CharacterEncoderImplementations__AdobeStandard.st --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CharacterEncoderImplementations__AdobeStandard.st Wed Apr 26 16:00:01 2017 +0200 @@ -0,0 +1,925 @@ +" + COPYRIGHT (c) 2017 by eXept Software AG + All Rights Reserved + + This software is furnished under a license and may be used + only in accordance with the terms of that license and with the + inclusion of the above copyright notice. This software may not + be provided or otherwise made available to, or used by, any + other person. No title to or ownership of the software is + hereby transferred. +" +"{ Package: 'stx:libbasic' }" + +"{ NameSpace: CharacterEncoderImplementations }" + +SingleByteEncoder subclass:#AdobeStandard + instanceVariableNames:'' + classVariableNames:'' + poolDictionaries:'' + category:'Collections-Text-Encodings' +! + +!AdobeStandard class methodsFor:'documentation'! + +copyright +" + COPYRIGHT (c) 2017 by eXept Software AG + All Rights Reserved + + This software is furnished under a license and may be used + only in accordance with the terms of that license and with the + inclusion of the above copyright notice. This software may not + be provided or otherwise made available to, or used by, any + other person. No title to or ownership of the software is + hereby transferred. +" +! + +documentation +" + Adobe Standard Encoding. + see https://www.compart.com/en/unicode/charsets/Adobe-Standard-Encoding + + [see with:] + CharacterEncoderImplementations::AdobeStandard showCharacterSet + + [author:] + Claus Gittinger +" +! ! + +!AdobeStandard class methodsFor:'mapping'! + +mapFileURL1_relativePathName + ^ 'VENDORS/ADOBE/stdenc.txt' +! + +mapping +" +# From: http://www.unicode.org/Public/MAPPINGS/VENDORS/ADOBE/stdenc.txt + +# +# Name: Adobe Standard Encoding to Unicode +# Unicode version: 2.0 +# Table version: 1.0 +# Date: 2011 July 12 +# +# Copyright (c) 1991-2011 Unicode, Inc. All Rights reserved. +# +# This file is provided as-is by Unicode, Inc. (The Unicode Consortium). No +# claims are made as to fitness for any particular purpose. No warranties of +# any kind are expressed or implied. The recipient agrees to determine +# applicability of information provided. If this file has been provided on +# magnetic media by Unicode, Inc., the sole remedy for any claim will be +# exchange of defective media within 90 days of receipt. +# +# Unicode, Inc. hereby grants the right to freely use the information +# supplied in this file in the creation of products supporting the +# Unicode Standard, and to make copies of this file in any form for +# internal or external distribution as long as this notice remains +# attached. +# +# Format: 4 tab-delimited fields: +# +# (1) The Unicode value (in hexadecimal) +# (2) The Adobe Standard Encoding code point (in hexadecimal) +# (3) # Unicode name +# (4) # PostScript character name +# +# General Notes: +# +# The Unicode values in this table were produced as the result of applying +# the algorithm described in the section 'Populating a Unicode space' in the +# document 'Unicode and Glyph Names,' at +# http://partners.adobe.com/asn/developer/typeforum/unicodegn.html +# to the characters encoded in Adobe Standard Encoding. Note that some +# Standard Encoding characters, such as 'space', are mapped to 2 Unicode +# values. Refer to the above document for more details. +# +# 2011 July 12: The above link is no longer valid. For comparable, +# more current information, see the document, 'Glyph', at: +# +# +# Revision History: +# +# [v1.0, 2011 July 12] +# Updated terms of use to current wording. +# Updated contact information and document link. +# No changes to the mapping data. +# +# [v0.2, 30 March 1999] +# Different algorithm to produce Unicode values (see notes above) results in +# some character codes being mapped to 2 Unicode values. Updated Unicode +# names to Unicode 2.0 names. +# +# [v0.1, 5 May 1995] First release. +# +# Use the Unicode reporting form +# for any questions or comments or to report errors in the data. +# +0020 20 # SPACE # space +00A0 20 # NO-BREAK SPACE # space +0021 21 # EXCLAMATION MARK # exclam +0022 22 # QUOTATION MARK # quotedbl +0023 23 # NUMBER SIGN # numbersign +0024 24 # DOLLAR SIGN # dollar +0025 25 # PERCENT SIGN # percent +0026 26 # AMPERSAND # ampersand +2019 27 # RIGHT SINGLE QUOTATION MARK # quoteright +0028 28 # LEFT PARENTHESIS # parenleft +0029 29 # RIGHT PARENTHESIS # parenright +002A 2A # ASTERISK # asterisk +002B 2B # PLUS SIGN # plus +002C 2C # COMMA # comma +002D 2D # HYPHEN-MINUS # hyphen +00AD 2D # SOFT HYPHEN # hyphen +002E 2E # FULL STOP # period +002F 2F # SOLIDUS # slash +0030 30 # DIGIT ZERO # zero +0031 31 # DIGIT ONE # one +0032 32 # DIGIT TWO # two +0033 33 # DIGIT THREE # three +0034 34 # DIGIT FOUR # four +0035 35 # DIGIT FIVE # five +0036 36 # DIGIT SIX # six +0037 37 # DIGIT SEVEN # seven +0038 38 # DIGIT EIGHT # eight +0039 39 # DIGIT NINE # nine +003A 3A # COLON # colon +003B 3B # SEMICOLON # semicolon +003C 3C # LESS-THAN SIGN # less +003D 3D # EQUALS SIGN # equal +003E 3E # GREATER-THAN SIGN # greater +003F 3F # QUESTION MARK # question +0040 40 # COMMERCIAL AT # at +0041 41 # LATIN CAPITAL LETTER A # A +0042 42 # LATIN CAPITAL LETTER B # B +0043 43 # LATIN CAPITAL LETTER C # C +0044 44 # LATIN CAPITAL LETTER D # D +0045 45 # LATIN CAPITAL LETTER E # E +0046 46 # LATIN CAPITAL LETTER F # F +0047 47 # LATIN CAPITAL LETTER G # G +0048 48 # LATIN CAPITAL LETTER H # H +0049 49 # LATIN CAPITAL LETTER I # I +004A 4A # LATIN CAPITAL LETTER J # J +004B 4B # LATIN CAPITAL LETTER K # K +004C 4C # LATIN CAPITAL LETTER L # L +004D 4D # LATIN CAPITAL LETTER M # M +004E 4E # LATIN CAPITAL LETTER N # N +004F 4F # LATIN CAPITAL LETTER O # O +0050 50 # LATIN CAPITAL LETTER P # P +0051 51 # LATIN CAPITAL LETTER Q # Q +0052 52 # LATIN CAPITAL LETTER R # R +0053 53 # LATIN CAPITAL LETTER S # S +0054 54 # LATIN CAPITAL LETTER T # T +0055 55 # LATIN CAPITAL LETTER U # U +0056 56 # LATIN CAPITAL LETTER V # V +0057 57 # LATIN CAPITAL LETTER W # W +0058 58 # LATIN CAPITAL LETTER X # X +0059 59 # LATIN CAPITAL LETTER Y # Y +005A 5A # LATIN CAPITAL LETTER Z # Z +005B 5B # LEFT SQUARE BRACKET # bracketleft +005C 5C # REVERSE SOLIDUS # backslash +005D 5D # RIGHT SQUARE BRACKET # bracketright +005E 5E # CIRCUMFLEX ACCENT # asciicircum +005F 5F # LOW LINE # underscore +2018 60 # LEFT SINGLE QUOTATION MARK # quoteleft +0061 61 # LATIN SMALL LETTER A # a +0062 62 # LATIN SMALL LETTER B # b +0063 63 # LATIN SMALL LETTER C # c +0064 64 # LATIN SMALL LETTER D # d +0065 65 # LATIN SMALL LETTER E # e +0066 66 # LATIN SMALL LETTER F # f +0067 67 # LATIN SMALL LETTER G # g +0068 68 # LATIN SMALL LETTER H # h +0069 69 # LATIN SMALL LETTER I # i +006A 6A # LATIN SMALL LETTER J # j +006B 6B # LATIN SMALL LETTER K # k +006C 6C # LATIN SMALL LETTER L # l +006D 6D # LATIN SMALL LETTER M # m +006E 6E # LATIN SMALL LETTER N # n +006F 6F # LATIN SMALL LETTER O # o +0070 70 # LATIN SMALL LETTER P # p +0071 71 # LATIN SMALL LETTER Q # q +0072 72 # LATIN SMALL LETTER R # r +0073 73 # LATIN SMALL LETTER S # s +0074 74 # LATIN SMALL LETTER T # t +0075 75 # LATIN SMALL LETTER U # u +0076 76 # LATIN SMALL LETTER V # v +0077 77 # LATIN SMALL LETTER W # w +0078 78 # LATIN SMALL LETTER X # x +0079 79 # LATIN SMALL LETTER Y # y +007A 7A # LATIN SMALL LETTER Z # z +007B 7B # LEFT CURLY BRACKET # braceleft +007C 7C # VERTICAL LINE # bar +007D 7D # RIGHT CURLY BRACKET # braceright +007E 7E # TILDE # asciitilde +00A1 A1 # INVERTED EXCLAMATION MARK # exclamdown +00A2 A2 # CENT SIGN # cent +00A3 A3 # POUND SIGN # sterling +2044 A4 # FRACTION SLASH # fraction +2215 A4 # DIVISION SLASH # fraction +00A5 A5 # YEN SIGN # yen +0192 A6 # LATIN SMALL LETTER F WITH HOOK # florin +00A7 A7 # SECTION SIGN # section +00A4 A8 # CURRENCY SIGN # currency +0027 A9 # APOSTROPHE # quotesingle +201C AA # LEFT DOUBLE QUOTATION MARK # quotedblleft +00AB AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK # guillemotleft +2039 AC # SINGLE LEFT-POINTING ANGLE QUOTATION MARK # guilsinglleft +203A AD # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK # guilsinglright +FB01 AE # LATIN SMALL LIGATURE FI # fi +FB02 AF # LATIN SMALL LIGATURE FL # fl +2013 B1 # EN DASH # endash +2020 B2 # DAGGER # dagger +2021 B3 # DOUBLE DAGGER # daggerdbl +00B7 B4 # MIDDLE DOT # periodcentered +2219 B4 # BULLET OPERATOR # periodcentered +00B6 B6 # PILCROW SIGN # paragraph +2022 B7 # BULLET # bullet +201A B8 # SINGLE LOW-9 QUOTATION MARK # quotesinglbase +201E B9 # DOUBLE LOW-9 QUOTATION MARK # quotedblbase +201D BA # RIGHT DOUBLE QUOTATION MARK # quotedblright +00BB BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK # guillemotright +2026 BC # HORIZONTAL ELLIPSIS # ellipsis +2030 BD # PER MILLE SIGN # perthousand +00BF BF # INVERTED QUESTION MARK # questiondown +0060 C1 # GRAVE ACCENT # grave +00B4 C2 # ACUTE ACCENT # acute +02C6 C3 # MODIFIER LETTER CIRCUMFLEX ACCENT # circumflex +02DC C4 # SMALL TILDE # tilde +00AF C5 # MACRON # macron +02C9 C5 # MODIFIER LETTER MACRON # macron +02D8 C6 # BREVE # breve +02D9 C7 # DOT ABOVE # dotaccent +00A8 C8 # DIAERESIS # dieresis +02DA CA # RING ABOVE # ring +00B8 CB # CEDILLA # cedilla +02DD CD # DOUBLE ACUTE ACCENT # hungarumlaut +02DB CE # OGONEK # ogonek +02C7 CF # CARON # caron +2014 D0 # EM DASH # emdash +00C6 E1 # LATIN CAPITAL LETTER AE # AE +00AA E3 # FEMININE ORDINAL INDICATOR # ordfeminine +0141 E8 # LATIN CAPITAL LETTER L WITH STROKE # Lslash +00D8 E9 # LATIN CAPITAL LETTER O WITH STROKE # Oslash +0152 EA # LATIN CAPITAL LIGATURE OE # OE +00BA EB # MASCULINE ORDINAL INDICATOR # ordmasculine +00E6 F1 # LATIN SMALL LETTER AE # ae +0131 F5 # LATIN SMALL LETTER DOTLESS I # dotlessi +0142 F8 # LATIN SMALL LETTER L WITH STROKE # lslash +00F8 F9 # LATIN SMALL LETTER O WITH STROKE # oslash +0153 FA # LATIN SMALL LIGATURE OE # oe +00DF FB # LATIN SMALL LETTER SHARP S # germandbls + +" +! ! + +!AdobeStandard methodsFor:'encoding & decoding'! + +decode:codeArg + "Automagically generated by generateCode - do not modify. + Decode from my encoding into unicode." + + |code "{ Class: SmallInteger }"| + + code := codeArg. + code <= 16r1F ifTrue:[ + ^ self decodingError. + ]. + code > 16rFB ifTrue:[ + ^ self decodingError. + ]. + [ + |t| + t := #( + "16r0020" 16r00A0 " NO-BREAK SPACE # space " + "16r0021" 16r0021 " EXCLAMATION MARK # exclam " + "16r0022" 16r0022 " QUOTATION MARK # quotedbl " + "16r0023" 16r0023 " NUMBER SIGN # numbersign " + "16r0024" 16r0024 " DOLLAR SIGN # dollar " + "16r0025" 16r0025 " PERCENT SIGN # percent " + "16r0026" 16r0026 " AMPERSAND # ampersand " + "16r0027" 16r2019 " RIGHT SINGLE QUOTATION MARK # quoteright " + "16r0028" 16r0028 " LEFT PARENTHESIS # parenleft " + "16r0029" 16r0029 " RIGHT PARENTHESIS # parenright " + "16r002A" 16r002A " ASTERISK # asterisk " + "16r002B" 16r002B " PLUS SIGN # plus " + "16r002C" 16r002C " COMMA # comma " + "16r002D" 16r00AD " SOFT HYPHEN # hyphen " + "16r002E" 16r002E " FULL STOP # period " + "16r002F" 16r002F " SOLIDUS # slash " + "16r0030" 16r0030 " DIGIT ZERO # zero " + "16r0031" 16r0031 " DIGIT ONE # one " + "16r0032" 16r0032 " DIGIT TWO # two " + "16r0033" 16r0033 " DIGIT THREE # three " + "16r0034" 16r0034 " DIGIT FOUR # four " + "16r0035" 16r0035 " DIGIT FIVE # five " + "16r0036" 16r0036 " DIGIT SIX # six " + "16r0037" 16r0037 " DIGIT SEVEN # seven " + "16r0038" 16r0038 " DIGIT EIGHT # eight " + "16r0039" 16r0039 " DIGIT NINE # nine " + "16r003A" 16r003A " COLON # colon " + "16r003B" 16r003B " SEMICOLON # semicolon " + "16r003C" 16r003C " LESS-THAN SIGN # less " + "16r003D" 16r003D " EQUALS SIGN # equal " + "16r003E" 16r003E " GREATER-THAN SIGN # greater " + "16r003F" 16r003F " QUESTION MARK # question " + "16r0040" 16r0040 " COMMERCIAL AT # at " + "16r0041" 16r0041 " LATIN CAPITAL LETTER A # A " + "16r0042" 16r0042 " LATIN CAPITAL LETTER B # B " + "16r0043" 16r0043 " LATIN CAPITAL LETTER C # C " + "16r0044" 16r0044 " LATIN CAPITAL LETTER D # D " + "16r0045" 16r0045 " LATIN CAPITAL LETTER E # E " + "16r0046" 16r0046 " LATIN CAPITAL LETTER F # F " + "16r0047" 16r0047 " LATIN CAPITAL LETTER G # G " + "16r0048" 16r0048 " LATIN CAPITAL LETTER H # H " + "16r0049" 16r0049 " LATIN CAPITAL LETTER I # I " + "16r004A" 16r004A " LATIN CAPITAL LETTER J # J " + "16r004B" 16r004B " LATIN CAPITAL LETTER K # K " + "16r004C" 16r004C " LATIN CAPITAL LETTER L # L " + "16r004D" 16r004D " LATIN CAPITAL LETTER M # M " + "16r004E" 16r004E " LATIN CAPITAL LETTER N # N " + "16r004F" 16r004F " LATIN CAPITAL LETTER O # O " + "16r0050" 16r0050 " LATIN CAPITAL LETTER P # P " + "16r0051" 16r0051 " LATIN CAPITAL LETTER Q # Q " + "16r0052" 16r0052 " LATIN CAPITAL LETTER R # R " + "16r0053" 16r0053 " LATIN CAPITAL LETTER S # S " + "16r0054" 16r0054 " LATIN CAPITAL LETTER T # T " + "16r0055" 16r0055 " LATIN CAPITAL LETTER U # U " + "16r0056" 16r0056 " LATIN CAPITAL LETTER V # V " + "16r0057" 16r0057 " LATIN CAPITAL LETTER W # W " + "16r0058" 16r0058 " LATIN CAPITAL LETTER X # X " + "16r0059" 16r0059 " LATIN CAPITAL LETTER Y # Y " + "16r005A" 16r005A " LATIN CAPITAL LETTER Z # Z " + "16r005B" 16r005B " LEFT SQUARE BRACKET # bracketleft " + "16r005C" 16r005C " REVERSE SOLIDUS # backslash " + "16r005D" 16r005D " RIGHT SQUARE BRACKET # bracketright " + "16r005E" 16r005E " CIRCUMFLEX ACCENT # asciicircum " + "16r005F" 16r005F " LOW LINE # underscore " + "16r0060" 16r2018 " LEFT SINGLE QUOTATION MARK # quoteleft " + "16r0061" 16r0061 " LATIN SMALL LETTER A # a " + "16r0062" 16r0062 " LATIN SMALL LETTER B # b " + "16r0063" 16r0063 " LATIN SMALL LETTER C # c " + "16r0064" 16r0064 " LATIN SMALL LETTER D # d " + "16r0065" 16r0065 " LATIN SMALL LETTER E # e " + "16r0066" 16r0066 " LATIN SMALL LETTER F # f " + "16r0067" 16r0067 " LATIN SMALL LETTER G # g " + "16r0068" 16r0068 " LATIN SMALL LETTER H # h " + "16r0069" 16r0069 " LATIN SMALL LETTER I # i " + "16r006A" 16r006A " LATIN SMALL LETTER J # j " + "16r006B" 16r006B " LATIN SMALL LETTER K # k " + "16r006C" 16r006C " LATIN SMALL LETTER L # l " + "16r006D" 16r006D " LATIN SMALL LETTER M # m " + "16r006E" 16r006E " LATIN SMALL LETTER N # n " + "16r006F" 16r006F " LATIN SMALL LETTER O # o " + "16r0070" 16r0070 " LATIN SMALL LETTER P # p " + "16r0071" 16r0071 " LATIN SMALL LETTER Q # q " + "16r0072" 16r0072 " LATIN SMALL LETTER R # r " + "16r0073" 16r0073 " LATIN SMALL LETTER S # s " + "16r0074" 16r0074 " LATIN SMALL LETTER T # t " + "16r0075" 16r0075 " LATIN SMALL LETTER U # u " + "16r0076" 16r0076 " LATIN SMALL LETTER V # v " + "16r0077" 16r0077 " LATIN SMALL LETTER W # w " + "16r0078" 16r0078 " LATIN SMALL LETTER X # x " + "16r0079" 16r0079 " LATIN SMALL LETTER Y # y " + "16r007A" 16r007A " LATIN SMALL LETTER Z # z " + "16r007B" 16r007B " LEFT CURLY BRACKET # braceleft " + "16r007C" 16r007C " VERTICAL LINE # bar " + "16r007D" 16r007D " RIGHT CURLY BRACKET # braceright " + "16r007E" 16r007E " TILDE # asciitilde " + "16r007F" 16r0000 " invalid " + "16r0080" 16r0000 " invalid " + "16r0081" 16r0000 " invalid " + "16r0082" 16r0000 " invalid " + "16r0083" 16r0000 " invalid " + "16r0084" 16r0000 " invalid " + "16r0085" 16r0000 " invalid " + "16r0086" 16r0000 " invalid " + "16r0087" 16r0000 " invalid " + "16r0088" 16r0000 " invalid " + "16r0089" 16r0000 " invalid " + "16r008A" 16r0000 " invalid " + "16r008B" 16r0000 " invalid " + "16r008C" 16r0000 " invalid " + "16r008D" 16r0000 " invalid " + "16r008E" 16r0000 " invalid " + "16r008F" 16r0000 " invalid " + "16r0090" 16r0000 " invalid " + "16r0091" 16r0000 " invalid " + "16r0092" 16r0000 " invalid " + "16r0093" 16r0000 " invalid " + "16r0094" 16r0000 " invalid " + "16r0095" 16r0000 " invalid " + "16r0096" 16r0000 " invalid " + "16r0097" 16r0000 " invalid " + "16r0098" 16r0000 " invalid " + "16r0099" 16r0000 " invalid " + "16r009A" 16r0000 " invalid " + "16r009B" 16r0000 " invalid " + "16r009C" 16r0000 " invalid " + "16r009D" 16r0000 " invalid " + "16r009E" 16r0000 " invalid " + "16r009F" 16r0000 " invalid " + "16r00A0" 16r0000 " invalid " + "16r00A1" 16r00A1 " INVERTED EXCLAMATION MARK # exclamdown " + "16r00A2" 16r00A2 " CENT SIGN # cent " + "16r00A3" 16r00A3 " POUND SIGN # sterling " + "16r00A4" 16r2215 " DIVISION SLASH # fraction " + "16r00A5" 16r00A5 " YEN SIGN # yen " + "16r00A6" 16r0192 " LATIN SMALL LETTER F WITH HOOK # florin " + "16r00A7" 16r00A7 " SECTION SIGN # section " + "16r00A8" 16r00A4 " CURRENCY SIGN # currency " + "16r00A9" 16r0027 " APOSTROPHE # quotesingle " + "16r00AA" 16r201C " LEFT DOUBLE QUOTATION MARK # quotedblleft " + "16r00AB" 16r00AB " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK # guillemotleft " + "16r00AC" 16r2039 " SINGLE LEFT-POINTING ANGLE QUOTATION MARK # guilsinglleft " + "16r00AD" 16r203A " SINGLE RIGHT-POINTING ANGLE QUOTATION MARK # guilsinglright " + "16r00AE" 16rFB01 " LATIN SMALL LIGATURE FI # fi " + "16r00AF" 16rFB02 " LATIN SMALL LIGATURE FL # fl " + "16r00B0" 16r0000 " invalid " + "16r00B1" 16r2013 " EN DASH # endash " + "16r00B2" 16r2020 " DAGGER # dagger " + "16r00B3" 16r2021 " DOUBLE DAGGER # daggerdbl " + "16r00B4" 16r2219 " BULLET OPERATOR # periodcentered " + "16r00B5" 16r0000 " invalid " + "16r00B6" 16r00B6 " PILCROW SIGN # paragraph " + "16r00B7" 16r2022 " BULLET # bullet " + "16r00B8" 16r201A " SINGLE LOW-9 QUOTATION MARK # quotesinglbase " + "16r00B9" 16r201E " DOUBLE LOW-9 QUOTATION MARK # quotedblbase " + "16r00BA" 16r201D " RIGHT DOUBLE QUOTATION MARK # quotedblright " + "16r00BB" 16r00BB " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK # guillemotright " + "16r00BC" 16r2026 " HORIZONTAL ELLIPSIS # ellipsis " + "16r00BD" 16r2030 " PER MILLE SIGN # perthousand " + "16r00BE" 16r0000 " invalid " + "16r00BF" 16r00BF " INVERTED QUESTION MARK # questiondown " + "16r00C0" 16r0000 " invalid " + "16r00C1" 16r0060 " GRAVE ACCENT # grave " + "16r00C2" 16r00B4 " ACUTE ACCENT # acute " + "16r00C3" 16r02C6 " MODIFIER LETTER CIRCUMFLEX ACCENT # circumflex " + "16r00C4" 16r02DC " SMALL TILDE # tilde " + "16r00C5" 16r02C9 " MODIFIER LETTER MACRON # macron " + "16r00C6" 16r02D8 " BREVE # breve " + "16r00C7" 16r02D9 " DOT ABOVE # dotaccent " + "16r00C8" 16r00A8 " DIAERESIS # dieresis " + "16r00C9" 16r0000 " invalid " + "16r00CA" 16r02DA " RING ABOVE # ring " + "16r00CB" 16r00B8 " CEDILLA # cedilla " + "16r00CC" 16r0000 " invalid " + "16r00CD" 16r02DD " DOUBLE ACUTE ACCENT # hungarumlaut " + "16r00CE" 16r02DB " OGONEK # ogonek " + "16r00CF" 16r02C7 " CARON # caron " + "16r00D0" 16r2014 " EM DASH # emdash " + "16r00D1" 16r0000 " invalid " + "16r00D2" 16r0000 " invalid " + "16r00D3" 16r0000 " invalid " + "16r00D4" 16r0000 " invalid " + "16r00D5" 16r0000 " invalid " + "16r00D6" 16r0000 " invalid " + "16r00D7" 16r0000 " invalid " + "16r00D8" 16r0000 " invalid " + "16r00D9" 16r0000 " invalid " + "16r00DA" 16r0000 " invalid " + "16r00DB" 16r0000 " invalid " + "16r00DC" 16r0000 " invalid " + "16r00DD" 16r0000 " invalid " + "16r00DE" 16r0000 " invalid " + "16r00DF" 16r0000 " invalid " + "16r00E0" 16r0000 " invalid " + "16r00E1" 16r00C6 " LATIN CAPITAL LETTER AE # AE " + "16r00E2" 16r0000 " invalid " + "16r00E3" 16r00AA " FEMININE ORDINAL INDICATOR # ordfeminine " + "16r00E4" 16r0000 " invalid " + "16r00E5" 16r0000 " invalid " + "16r00E6" 16r0000 " invalid " + "16r00E7" 16r0000 " invalid " + "16r00E8" 16r0141 " LATIN CAPITAL LETTER L WITH STROKE # Lslash " + "16r00E9" 16r00D8 " LATIN CAPITAL LETTER O WITH STROKE # Oslash " + "16r00EA" 16r0152 " LATIN CAPITAL LIGATURE OE # OE " + "16r00EB" 16r00BA " MASCULINE ORDINAL INDICATOR # ordmasculine " + "16r00EC" 16r0000 " invalid " + "16r00ED" 16r0000 " invalid " + "16r00EE" 16r0000 " invalid " + "16r00EF" 16r0000 " invalid " + "16r00F0" 16r0000 " invalid " + "16r00F1" 16r00E6 " LATIN SMALL LETTER AE # ae " + "16r00F2" 16r0000 " invalid " + "16r00F3" 16r0000 " invalid " + "16r00F4" 16r0000 " invalid " + "16r00F5" 16r0131 " LATIN SMALL LETTER DOTLESS I # dotlessi " + "16r00F6" 16r0000 " invalid " + "16r00F7" 16r0000 " invalid " + "16r00F8" 16r0142 " LATIN SMALL LETTER L WITH STROKE # lslash " + "16r00F9" 16r00F8 " LATIN SMALL LETTER O WITH STROKE # oslash " + "16r00FA" 16r0153 " LATIN SMALL LIGATURE OE # oe " + "16r00FB" 16r00DF " LATIN SMALL LETTER SHARP S # germandbls " + ) at:(code - 16r1F). + t == 0 ifFalse:[^ t]. + ^ self decodingError. + ] value. +! + +encode:unicodeArg + "Automagically generated by generateCode - do not modify. + Encode from unicode into my encoding." + + |unicode "{ Class: SmallInteger }"| + + unicode := unicodeArg. + unicode <= 16r20 ifTrue:[ + ^ self decodingError. + ]. + unicode <= 16r26 ifTrue:[ ^ unicode ]. + unicode > 16rFB02 ifTrue:[ + ^ self encodingError. + ]. + unicode <= 16r2219 ifTrue:[ + unicode <= 16r2DD ifTrue:[ + unicode <= 16r192 ifTrue:[ + unicode <= 16r153 ifTrue:[ + unicode <= 16rF8 ifTrue:[ + [ + |t| + t := #[ + "16r0027" 16rA9 " APOSTROPHE # quotesingle " + "16r0028" 16r28 " LEFT PARENTHESIS # parenleft " + "16r0029" 16r29 " RIGHT PARENTHESIS # parenright " + "16r002A" 16r2A " ASTERISK # asterisk " + "16r002B" 16r2B " PLUS SIGN # plus " + "16r002C" 16r2C " COMMA # comma " + "16r002D" 16r00 " invalid " + "16r002E" 16r2E " FULL STOP # period " + "16r002F" 16r2F " SOLIDUS # slash " + "16r0030" 16r30 " DIGIT ZERO # zero " + "16r0031" 16r31 " DIGIT ONE # one " + "16r0032" 16r32 " DIGIT TWO # two " + "16r0033" 16r33 " DIGIT THREE # three " + "16r0034" 16r34 " DIGIT FOUR # four " + "16r0035" 16r35 " DIGIT FIVE # five " + "16r0036" 16r36 " DIGIT SIX # six " + "16r0037" 16r37 " DIGIT SEVEN # seven " + "16r0038" 16r38 " DIGIT EIGHT # eight " + "16r0039" 16r39 " DIGIT NINE # nine " + "16r003A" 16r3A " COLON # colon " + "16r003B" 16r3B " SEMICOLON # semicolon " + "16r003C" 16r3C " LESS-THAN SIGN # less " + "16r003D" 16r3D " EQUALS SIGN # equal " + "16r003E" 16r3E " GREATER-THAN SIGN # greater " + "16r003F" 16r3F " QUESTION MARK # question " + "16r0040" 16r40 " COMMERCIAL AT # at " + "16r0041" 16r41 " LATIN CAPITAL LETTER A # A " + "16r0042" 16r42 " LATIN CAPITAL LETTER B # B " + "16r0043" 16r43 " LATIN CAPITAL LETTER C # C " + "16r0044" 16r44 " LATIN CAPITAL LETTER D # D " + "16r0045" 16r45 " LATIN CAPITAL LETTER E # E " + "16r0046" 16r46 " LATIN CAPITAL LETTER F # F " + "16r0047" 16r47 " LATIN CAPITAL LETTER G # G " + "16r0048" 16r48 " LATIN CAPITAL LETTER H # H " + "16r0049" 16r49 " LATIN CAPITAL LETTER I # I " + "16r004A" 16r4A " LATIN CAPITAL LETTER J # J " + "16r004B" 16r4B " LATIN CAPITAL LETTER K # K " + "16r004C" 16r4C " LATIN CAPITAL LETTER L # L " + "16r004D" 16r4D " LATIN CAPITAL LETTER M # M " + "16r004E" 16r4E " LATIN CAPITAL LETTER N # N " + "16r004F" 16r4F " LATIN CAPITAL LETTER O # O " + "16r0050" 16r50 " LATIN CAPITAL LETTER P # P " + "16r0051" 16r51 " LATIN CAPITAL LETTER Q # Q " + "16r0052" 16r52 " LATIN CAPITAL LETTER R # R " + "16r0053" 16r53 " LATIN CAPITAL LETTER S # S " + "16r0054" 16r54 " LATIN CAPITAL LETTER T # T " + "16r0055" 16r55 " LATIN CAPITAL LETTER U # U " + "16r0056" 16r56 " LATIN CAPITAL LETTER V # V " + "16r0057" 16r57 " LATIN CAPITAL LETTER W # W " + "16r0058" 16r58 " LATIN CAPITAL LETTER X # X " + "16r0059" 16r59 " LATIN CAPITAL LETTER Y # Y " + "16r005A" 16r5A " LATIN CAPITAL LETTER Z # Z " + "16r005B" 16r5B " LEFT SQUARE BRACKET # bracketleft " + "16r005C" 16r5C " REVERSE SOLIDUS # backslash " + "16r005D" 16r5D " RIGHT SQUARE BRACKET # bracketright " + "16r005E" 16r5E " CIRCUMFLEX ACCENT # asciicircum " + "16r005F" 16r5F " LOW LINE # underscore " + "16r0060" 16rC1 " GRAVE ACCENT # grave " + "16r0061" 16r61 " LATIN SMALL LETTER A # a " + "16r0062" 16r62 " LATIN SMALL LETTER B # b " + "16r0063" 16r63 " LATIN SMALL LETTER C # c " + "16r0064" 16r64 " LATIN SMALL LETTER D # d " + "16r0065" 16r65 " LATIN SMALL LETTER E # e " + "16r0066" 16r66 " LATIN SMALL LETTER F # f " + "16r0067" 16r67 " LATIN SMALL LETTER G # g " + "16r0068" 16r68 " LATIN SMALL LETTER H # h " + "16r0069" 16r69 " LATIN SMALL LETTER I # i " + "16r006A" 16r6A " LATIN SMALL LETTER J # j " + "16r006B" 16r6B " LATIN SMALL LETTER K # k " + "16r006C" 16r6C " LATIN SMALL LETTER L # l " + "16r006D" 16r6D " LATIN SMALL LETTER M # m " + "16r006E" 16r6E " LATIN SMALL LETTER N # n " + "16r006F" 16r6F " LATIN SMALL LETTER O # o " + "16r0070" 16r70 " LATIN SMALL LETTER P # p " + "16r0071" 16r71 " LATIN SMALL LETTER Q # q " + "16r0072" 16r72 " LATIN SMALL LETTER R # r " + "16r0073" 16r73 " LATIN SMALL LETTER S # s " + "16r0074" 16r74 " LATIN SMALL LETTER T # t " + "16r0075" 16r75 " LATIN SMALL LETTER U # u " + "16r0076" 16r76 " LATIN SMALL LETTER V # v " + "16r0077" 16r77 " LATIN SMALL LETTER W # w " + "16r0078" 16r78 " LATIN SMALL LETTER X # x " + "16r0079" 16r79 " LATIN SMALL LETTER Y # y " + "16r007A" 16r7A " LATIN SMALL LETTER Z # z " + "16r007B" 16r7B " LEFT CURLY BRACKET # braceleft " + "16r007C" 16r7C " VERTICAL LINE # bar " + "16r007D" 16r7D " RIGHT CURLY BRACKET # braceright " + "16r007E" 16r7E " TILDE # asciitilde " + "16r007F" 16r00 " invalid " + "16r0080" 16r00 " invalid " + "16r0081" 16r00 " invalid " + "16r0082" 16r00 " invalid " + "16r0083" 16r00 " invalid " + "16r0084" 16r00 " invalid " + "16r0085" 16r00 " invalid " + "16r0086" 16r00 " invalid " + "16r0087" 16r00 " invalid " + "16r0088" 16r00 " invalid " + "16r0089" 16r00 " invalid " + "16r008A" 16r00 " invalid " + "16r008B" 16r00 " invalid " + "16r008C" 16r00 " invalid " + "16r008D" 16r00 " invalid " + "16r008E" 16r00 " invalid " + "16r008F" 16r00 " invalid " + "16r0090" 16r00 " invalid " + "16r0091" 16r00 " invalid " + "16r0092" 16r00 " invalid " + "16r0093" 16r00 " invalid " + "16r0094" 16r00 " invalid " + "16r0095" 16r00 " invalid " + "16r0096" 16r00 " invalid " + "16r0097" 16r00 " invalid " + "16r0098" 16r00 " invalid " + "16r0099" 16r00 " invalid " + "16r009A" 16r00 " invalid " + "16r009B" 16r00 " invalid " + "16r009C" 16r00 " invalid " + "16r009D" 16r00 " invalid " + "16r009E" 16r00 " invalid " + "16r009F" 16r00 " invalid " + "16r00A0" 16r20 " NO-BREAK SPACE # space " + "16r00A1" 16rA1 " INVERTED EXCLAMATION MARK # exclamdown " + "16r00A2" 16rA2 " CENT SIGN # cent " + "16r00A3" 16rA3 " POUND SIGN # sterling " + "16r00A4" 16rA8 " CURRENCY SIGN # currency " + "16r00A5" 16rA5 " YEN SIGN # yen " + "16r00A6" 16r00 " invalid " + "16r00A7" 16rA7 " SECTION SIGN # section " + "16r00A8" 16rC8 " DIAERESIS # dieresis " + "16r00A9" 16r00 " invalid " + "16r00AA" 16rE3 " FEMININE ORDINAL INDICATOR # ordfeminine " + "16r00AB" 16rAB " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK # guillemotleft " + "16r00AC" 16r00 " invalid " + "16r00AD" 16r2D " SOFT HYPHEN # hyphen " + "16r00AE" 16r00 " invalid " + "16r00AF" 16r00 " invalid " + "16r00B0" 16r00 " invalid " + "16r00B1" 16r00 " invalid " + "16r00B2" 16r00 " invalid " + "16r00B3" 16r00 " invalid " + "16r00B4" 16rC2 " ACUTE ACCENT # acute " + "16r00B5" 16r00 " invalid " + "16r00B6" 16rB6 " PILCROW SIGN # paragraph " + "16r00B7" 16r00 " invalid " + "16r00B8" 16rCB " CEDILLA # cedilla " + "16r00B9" 16r00 " invalid " + "16r00BA" 16rEB " MASCULINE ORDINAL INDICATOR # ordmasculine " + "16r00BB" 16rBB " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK # guillemotright " + "16r00BC" 16r00 " invalid " + "16r00BD" 16r00 " invalid " + "16r00BE" 16r00 " invalid " + "16r00BF" 16rBF " INVERTED QUESTION MARK # questiondown " + "16r00C0" 16r00 " invalid " + "16r00C1" 16r00 " invalid " + "16r00C2" 16r00 " invalid " + "16r00C3" 16r00 " invalid " + "16r00C4" 16r00 " invalid " + "16r00C5" 16r00 " invalid " + "16r00C6" 16rE1 " LATIN CAPITAL LETTER AE # AE " + "16r00C7" 16r00 " invalid " + "16r00C8" 16r00 " invalid " + "16r00C9" 16r00 " invalid " + "16r00CA" 16r00 " invalid " + "16r00CB" 16r00 " invalid " + "16r00CC" 16r00 " invalid " + "16r00CD" 16r00 " invalid " + "16r00CE" 16r00 " invalid " + "16r00CF" 16r00 " invalid " + "16r00D0" 16r00 " invalid " + "16r00D1" 16r00 " invalid " + "16r00D2" 16r00 " invalid " + "16r00D3" 16r00 " invalid " + "16r00D4" 16r00 " invalid " + "16r00D5" 16r00 " invalid " + "16r00D6" 16r00 " invalid " + "16r00D7" 16r00 " invalid " + "16r00D8" 16rE9 " LATIN CAPITAL LETTER O WITH STROKE # Oslash " + "16r00D9" 16r00 " invalid " + "16r00DA" 16r00 " invalid " + "16r00DB" 16r00 " invalid " + "16r00DC" 16r00 " invalid " + "16r00DD" 16r00 " invalid " + "16r00DE" 16r00 " invalid " + "16r00DF" 16rFB " LATIN SMALL LETTER SHARP S # germandbls " + "16r00E0" 16r00 " invalid " + "16r00E1" 16r00 " invalid " + "16r00E2" 16r00 " invalid " + "16r00E3" 16r00 " invalid " + "16r00E4" 16r00 " invalid " + "16r00E5" 16r00 " invalid " + "16r00E6" 16rF1 " LATIN SMALL LETTER AE # ae " + "16r00E7" 16r00 " invalid " + "16r00E8" 16r00 " invalid " + "16r00E9" 16r00 " invalid " + "16r00EA" 16r00 " invalid " + "16r00EB" 16r00 " invalid " + "16r00EC" 16r00 " invalid " + "16r00ED" 16r00 " invalid " + "16r00EE" 16r00 " invalid " + "16r00EF" 16r00 " invalid " + "16r00F0" 16r00 " invalid " + "16r00F1" 16r00 " invalid " + "16r00F2" 16r00 " invalid " + "16r00F3" 16r00 " invalid " + "16r00F4" 16r00 " invalid " + "16r00F5" 16r00 " invalid " + "16r00F6" 16r00 " invalid " + "16r00F7" 16r00 " invalid " + "16r00F8" 16rF9 " LATIN SMALL LETTER O WITH STROKE # oslash " + ] at:(unicode - 16r26). + t == 0 ifFalse:[^ t]. + ^ self encodingError + ] value. + ]. + unicode <= 16r130 ifTrue:[ + ^ self encodingError + ]. + unicode == 16r131 ifTrue:[ + (#[ + "16r0131" 1 " LATIN SMALL LETTER DOTLESS I # dotlessi " + ] at:(unicode - 304)) ~~ 0 ifTrue:[^ unicode]. + ^ self encodingError + ]. + unicode <= 16r140 ifTrue:[ + ^ self encodingError + ]. + [ + |t| + t := #[ + "16r0141" 16rE8 " LATIN CAPITAL LETTER L WITH STROKE # Lslash " + "16r0142" 16rF8 " LATIN SMALL LETTER L WITH STROKE # lslash " + "16r0143" 16r00 " invalid " + "16r0144" 16r00 " invalid " + "16r0145" 16r00 " invalid " + "16r0146" 16r00 " invalid " + "16r0147" 16r00 " invalid " + "16r0148" 16r00 " invalid " + "16r0149" 16r00 " invalid " + "16r014A" 16r00 " invalid " + "16r014B" 16r00 " invalid " + "16r014C" 16r00 " invalid " + "16r014D" 16r00 " invalid " + "16r014E" 16r00 " invalid " + "16r014F" 16r00 " invalid " + "16r0150" 16r00 " invalid " + "16r0151" 16r00 " invalid " + "16r0152" 16rEA " LATIN CAPITAL LIGATURE OE # OE " + "16r0153" 16rFA " LATIN SMALL LIGATURE OE # oe " + ] at:(unicode - 16r140). + t == 0 ifFalse:[^ t]. + ^ self encodingError + ] value. + ]. + unicode <= 16r191 ifTrue:[ + ^ self encodingError + ]. + ^ "16r0192" 16r00A6 " LATIN SMALL LETTER F WITH HOOK # florin " + ]. + unicode <= 16r2C5 ifTrue:[ + ^ self encodingError + ]. + [ + |t| + t := #[ + "16r02C6" 16rC3 " MODIFIER LETTER CIRCUMFLEX ACCENT # circumflex " + "16r02C7" 16rCF " CARON # caron " + "16r02C8" 16r00 " invalid " + "16r02C9" 16rC5 " MODIFIER LETTER MACRON # macron " + "16r02CA" 16r00 " invalid " + "16r02CB" 16r00 " invalid " + "16r02CC" 16r00 " invalid " + "16r02CD" 16r00 " invalid " + "16r02CE" 16r00 " invalid " + "16r02CF" 16r00 " invalid " + "16r02D0" 16r00 " invalid " + "16r02D1" 16r00 " invalid " + "16r02D2" 16r00 " invalid " + "16r02D3" 16r00 " invalid " + "16r02D4" 16r00 " invalid " + "16r02D5" 16r00 " invalid " + "16r02D6" 16r00 " invalid " + "16r02D7" 16r00 " invalid " + "16r02D8" 16rC6 " BREVE # breve " + "16r02D9" 16rC7 " DOT ABOVE # dotaccent " + "16r02DA" 16rCA " RING ABOVE # ring " + "16r02DB" 16rCE " OGONEK # ogonek " + "16r02DC" 16rC4 " SMALL TILDE # tilde " + "16r02DD" 16rCD " DOUBLE ACUTE ACCENT # hungarumlaut " + ] at:(unicode - 16r2C5). + t == 0 ifFalse:[^ t]. + ^ self encodingError + ] value. + ]. + unicode <= 16r2012 ifTrue:[ + ^ self encodingError + ]. + unicode <= 16r203A ifTrue:[ + [ + |t| + t := #[ + "16r2013" 16rB1 " EN DASH # endash " + "16r2014" 16rD0 " EM DASH # emdash " + "16r2015" 16r00 " invalid " + "16r2016" 16r00 " invalid " + "16r2017" 16r00 " invalid " + "16r2018" 16r60 " LEFT SINGLE QUOTATION MARK # quoteleft " + "16r2019" 16r27 " RIGHT SINGLE QUOTATION MARK # quoteright " + "16r201A" 16rB8 " SINGLE LOW-9 QUOTATION MARK # quotesinglbase " + "16r201B" 16r00 " invalid " + "16r201C" 16rAA " LEFT DOUBLE QUOTATION MARK # quotedblleft " + "16r201D" 16rBA " RIGHT DOUBLE QUOTATION MARK # quotedblright " + "16r201E" 16rB9 " DOUBLE LOW-9 QUOTATION MARK # quotedblbase " + "16r201F" 16r00 " invalid " + "16r2020" 16rB2 " DAGGER # dagger " + "16r2021" 16rB3 " DOUBLE DAGGER # daggerdbl " + "16r2022" 16rB7 " BULLET # bullet " + "16r2023" 16r00 " invalid " + "16r2024" 16r00 " invalid " + "16r2025" 16r00 " invalid " + "16r2026" 16rBC " HORIZONTAL ELLIPSIS # ellipsis " + "16r2027" 16r00 " invalid " + "16r2028" 16r00 " invalid " + "16r2029" 16r00 " invalid " + "16r202A" 16r00 " invalid " + "16r202B" 16r00 " invalid " + "16r202C" 16r00 " invalid " + "16r202D" 16r00 " invalid " + "16r202E" 16r00 " invalid " + "16r202F" 16r00 " invalid " + "16r2030" 16rBD " PER MILLE SIGN # perthousand " + "16r2031" 16r00 " invalid " + "16r2032" 16r00 " invalid " + "16r2033" 16r00 " invalid " + "16r2034" 16r00 " invalid " + "16r2035" 16r00 " invalid " + "16r2036" 16r00 " invalid " + "16r2037" 16r00 " invalid " + "16r2038" 16r00 " invalid " + "16r2039" 16rAC " SINGLE LEFT-POINTING ANGLE QUOTATION MARK # guilsinglleft " + "16r203A" 16rAD " SINGLE RIGHT-POINTING ANGLE QUOTATION MARK # guilsinglright " + ] at:(unicode - 16r2012). + t == 0 ifFalse:[^ t]. + ^ self encodingError + ] value. + ]. + unicode <= 16r2214 ifTrue:[ + ^ self encodingError + ]. + [ + |t| + t := #[ + "16r2215" 16rA4 " DIVISION SLASH # fraction " + "16r2216" 16r00 " invalid " + "16r2217" 16r00 " invalid " + "16r2218" 16r00 " invalid " + "16r2219" 16rB4 " BULLET OPERATOR # periodcentered " + ] at:(unicode - 16r2214). + t == 0 ifFalse:[^ t]. + ^ self encodingError + ] value. + ]. + unicode <= 16rFB00 ifTrue:[ + ^ self encodingError + ]. + ^ #[ + "16rFB01" 16rAE " LATIN SMALL LIGATURE FI # fi " + "16rFB02" 16rAF " LATIN SMALL LIGATURE FL # fl " + ] at:(unicode - 16rFB00). +! ! + +!AdobeStandard class methodsFor:'documentation'! + +version + ^ '$Header$' +! + +version_CVS + ^ '$Header$' +! ! +