CharacterEncoderImplementations__EBCDIC.st
author Jan Vrany <jan.vrany@labware.com>
Wed, 22 Mar 2023 13:57:18 +0000
branchjv
changeset 25445 1623217d2268
parent 18011 deb0c3355881
permissions -rw-r--r--
Cherry-picked OrderedCollection.st from 0b286fd51da7: * d4c86d7c0bfc: #TUNING by stefan, Stefan Vogel <sv@exept.de> * 692b6497a669: #DOCUMENTATION by stefan, Stefan Vogel <sv@exept.de> * d47bb2912953: #DOCUMENTATION by stefan, Stefan Vogel <sv@exept.de> * abb4316c6bff: #FEATURE by cg, Claus Gittinger <cg@exept.de> * 3a8fce0e8d11: #TUNING by stefan, Stefan Vogel <sv@exept.de> * 03d29bf8c5bb: #REFACTORING by stefan, Stefan Vogel <sv@exept.de> * cccc6c4abcfc: #REFACTORING by stefan, Stefan Vogel <sv@exept.de> * 35d957c7a840: #FEATURE by cg, Claus Gittinger <cg@exept.de> * 6b11890f5f2c: #OTHER by cg, Claus Gittinger <cg@exept.de> * abb6108fb06b: #FEATURE by cg, Claus Gittinger <cg@exept.de> * 2c4768bb2e89: #FEATURE by cg, Claus Gittinger <cg@exept.de> * 4029e964d0f1: #FEATURE by cg, Claus Gittinger <cg@exept.de> * ddcab3a9c2df: #OTHER by cg, Claus Gittinger <cg@exept.de> * 2213eb56e0c7: #REFACTORING by exept, Claus Gittinger <cg@exept.de> * 09ca874a6160: #REFACTORING by exept, Claus Gittinger <cg@exept.de> * 30b332af1f33: #BUGFIX by stefan, Stefan Vogel <sv@exept.de> * 779764ba117b: #REFACTORING by cg, Claus Gittinger <cg@exept.de> * b3d232a613c9: #BUGFIX by stefan, Stefan Vogel <sv@exept.de> * c417f7edaec1: #BUGFIX by stefan, Stefan Vogel <sv@exept.de> * 904b6538f379: #FEATURE by exept, Claus Gittinger <cg@exept.de> * c5887f03e01f: #REFACTORING by stefan, Stefan Vogel <sv@exept.de> * 8912d03aff48: #BUGFIX by exept, Claus Gittinger <cg@exept.de> * de5cd1dab4c3: #DOCUMENTATION by exept, Claus Gittinger <cg@exept.de> * 9bbd26603378: #OTHER by exept, Claus Gittinger <cg@exept.de> * c2c9dc110f42: #FEATURE by stefan, Stefan Vogel <sv@exept.de> * 81d123c6703d: #DOCUMENTATION by stefan, Stefan Vogel <sv@exept.de> * 8aadbb21458a: #BUGFIX by stefan, Stefan Vogel <sv@exept.de> * f210dbb8b2f6: #TUNING by stefan, Stefan Vogel <sv@exept.de> * c2c774fc53c0: #FEATURE by exept, Claus Gittinger <cg@exept.de> * b6f462670875: #DOCUMENTATION by exept, Claus Gittinger <cg@exept.de> * 27ae4021d5d6: #FEATURE by stefan, Stefan Vogel <sv@exept.de> * 10d9e9d85594: #TUNING by exept, Claus Gittinger <cg@exept.de> * 2653d855dcc7: #DOCUMENTATION by exept, Claus Gittinger <cg@exept.de> * 6ea1698a1a34: #FEATURE by stefan, Stefan Vogel <sv@exept.de> * 28762315e664: #OTHER by exept, Claus Gittinger <cg@exept.de> * 7142ea786f3e: #TUNING by stefan, Stefan Vogel <sv@exept.de> * 7875acb42b53: #BUGFIX by stefan, Stefan Vogel <sv@exept.de> * 163a0eebc97e: #BUGFIX by Maren, matilk

"
 COPYRIGHT (c) 2010 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:#EBCDIC
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'Collections-Text-Encodings'
!

!EBCDIC class methodsFor:'documentation'!

copyright
"
 COPYRIGHT (c) 2010 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
"
    EBCDIC 

    [see with:]
        CharacterEncoderImplementations::EBCDIC showCharacterSet

    [author:]
        Claus Gittinger
"
! !

!EBCDIC methodsFor:'encoding & decoding'!

decode:codeArg
    "Automagically generated by generateCode - do not modify.
     Decode from my encoding into unicode."

    |code "{ Class: SmallInteger }"|

    code := codeArg.
    code > 16rFF ifTrue:[
        ^ self decodingError.
    ].
    ^ #(
       "16r0000"    16r0000  
       "16r0001"    16r0001  
       "16r0002"    16r0002  
       "16r0003"    16r0003  
       "16r0004"    nil  
       "16r0005"    16r0009     "HT"  
       "16r0006"    nil  
       "16r0007"    16r007F     "DEL"  
       "16r0008"    nil  
       "16r0009"    nil  
       "16r000A"    nil  
       "16r000B"    16r000B     "VT"
       "16r000C"    16r000C  
       "16r000D"    16r000D  
       "16r000E"    16r000E  
       "16r000F"    16r000F  

       "16r0010"    16r0010  
       "16r0011"    16r0011  
       "16r0012"    16r0012  
       "16r0013"    16r0013  
       "16r0014"    nil  
       "16r0015"    16r0085       
       "16r0016"    16r0008   
       "16r0017"    nil  
       "16r0018"    16r0018  
       "16r0019"    16r0019  
       "16r001A"    nil  
       "16r001B"    nil  
       "16r001C"    16r001C  
       "16r001D"    16r001D  
       "16r001E"    16r001E  
       "16r001F"    16r001F  

       "16r0020"    nil         "DS"  
       "16r0021"    nil         "SOS"
       "16r0022"    nil  
       "16r0023"    nil  
       "16r0024"    nil  
       "16r0025"    16r000A     "LF"
       "16r0026"    16r0017     "ETB"
       "16r0027"    16r001B     "ESC"
       "16r0028"    nil  
       "16r0029"    nil  
       "16r002A"    nil  
       "16r002B"    nil  
       "16r002C"    nil  
       "16r002D"    16r0005     "ENQ"  
       "16r002E"    16r0006     "ACK"
       "16r002F"    16r0007     "BEL"

       "16r0030"    nil  
       "16r0031"    nil  
       "16r0032"    nil  
       "16r0033"    nil  
       "16r0034"    nil  
       "16r0035"    nil  
       "16r0036"    nil  
       "16r0037"    16r0004     "EOT"  
       "16r0038"    nil  
       "16r0039"    nil  
       "16r003A"    nil  
       "16r003B"    nil  
       "16r003C"    16r0014     "DC4"  
       "16r003D"    16r0015     "NAK"
       "16r003E"    nil  
       "16r003F"    16r001A     "SUB"

       "16r0040"    16r0020     "BLANK"  
       "16r0041"    16r00A0
       "16r0042"    16r00E2     "a circumflex"  
       "16r0043"    16r00E4  
       "16r0044"    16r00E0  
       "16r0045"    16r00E1  
       "16r0046"    16r00E3  
       "16r0047"    16r00E5  
       "16r0048"    16r00E7  
       "16r0049"    16r00F1  
       "16r004A"    16r005B  
       "16r004B"    16r002E  
       "16r004C"    16r003C  
       "16r004D"    16r0028  
       "16r004E"    16r002B  
       "16r004F"    16r0021  

       "16r0050"    16r0026  
       "16r0051"    16r00E9  
       "16r0052"    16r00EA  
       "16r0053"    16r00EB  
       "16r0054"    16r00E8  
       "16r0055"    16r00ED  
       "16r0056"    16r00EE  
       "16r0057"    16r00EF  
       "16r0058"    16r00EC  
       "16r0059"    16r00DF  
       "16r005A"    16r005D  
       "16r005B"    16r0024  
       "16r005C"    16r002A  
       "16r005D"    16r0029  
       "16r005E"    16r003B  
       "16r005F"    16r005E  

       "16r0060"    16r002D  
       "16r0061"    16r002F  
       "16r0062"    16r00C2  
       "16r0063"    16r00C4  
       "16r0064"    16r00C0  
       "16r0065"    16r00C1  
       "16r0066"    16r00C3  
       "16r0067"    16r00C5  
       "16r0068"    16r00C7  
       "16r0069"    16r00D1  
       "16r006A"    16r00A6  
       "16r006B"    16r002C  
       "16r006C"    16r0025  
       "16r006D"    16r005F  
       "16r006E"    16r003E  
       "16r006F"    16r003F  

       "16r0070"    16r00F8  
       "16r0071"    16r00C9  
       "16r0072"    16r00CA  
       "16r0073"    16r00CB  
       "16r0074"    16r00C8  
       "16r0075"    16r00CD  
       "16r0076"    16r00CE  
       "16r0077"    16r00CF  
       "16r0078"    16r00CC  
       "16r0079"    16r0060  
       "16r007A"    16r003A  
       "16r007B"    16r0023  
       "16r007C"    16r0040  
       "16r007D"    16r0027  
       "16r007E"    16r003D  
       "16r007F"    16r0022  

       "16r0080"    16r00D8  
       "16r0081"    16r0061  
       "16r0082"    16r0062  
       "16r0083"    16r0063  
       "16r0084"    16r0064  
       "16r0085"    16r0065  
       "16r0086"    16r0066  
       "16r0087"    16r0067  
       "16r0088"    16r0068  
       "16r0089"    16r0069  
       "16r008A"    16r00AB     
       "16r008B"    16r00BB  
       "16r008C"    16r00F0  
       "16r008D"    16r00FD     
       "16r008E"    16r00FE  
       "16r008F"    16r00B1  

       "16r0090"    16r00B0  
       "16r0091"    16r006A  
       "16r0092"    16r006B  
       "16r0093"    16r006C  
       "16r0094"    16r006D  
       "16r0095"    16r006E  
       "16r0096"    16r006F  
       "16r0097"    16r0070  
       "16r0098"    16r0071  
       "16r0099"    16r0072  
       "16r009A"    16r00AA  
       "16r009B"    16r00BA  
       "16r009C"    16r00E6  
       "16r009D"    16r00B8  
       "16r009E"    16r00C6  
       "16r009F"    16r00A4  

       "16r00A0"    16r00B5     "Mu"
       "16r00A1"    16r007E  
       "16r00A2"    16r0073  
       "16r00A3"    16r0074  
       "16r00A4"    16r0075  
       "16r00A5"    16r0076  
       "16r00A6"    16r0077  
       "16r00A7"    16r0078  
       "16r00A8"    16r0079  
       "16r00A9"    16r007A  
       "16r00AA"    16r00A1  
       "16r00AB"    16r00BF  
       "16r00AC"    16r00D0  
       "16r00AD"    16r00DD  
       "16r00AE"    16r00DE  
       "16r00AF"    16r00AE  

       "16r00B0"    16r00A2  
       "16r00B1"    16r00A3  
       "16r00B2"    16r00A5  
       "16r00B3"    16r00B7  
       "16r00B4"    16r00A9  
       "16r00B5"    16r00A7  
       "16r00B6"    16r00B6  
       "16r00B7"    16r00BC  
       "16r00B8"    16r00BD  
       "16r00B9"    16r00BE  
       "16r00BA"    16r00AC  
       "16r00BB"    16r007C  
       "16r00BC"    16r00AF  
       "16r00BD"    16r00A8  
       "16r00BE"    16r00B4  
       "16r00BF"    16r00D7 

       "16r00C0"    16r007B  
       "16r00C1"    16r0041  
       "16r00C2"    16r0042  
       "16r00C3"    16r0043  
       "16r00C4"    16r0044  
       "16r00C5"    16r0045  
       "16r00C6"    16r0046  
       "16r00C7"    16r0047  
       "16r00C8"    16r0048  
       "16r00C9"    16r0049  
       "16r00CA"    16r00AD  
       "16r00CB"    16r00F4  
       "16r00CC"    16r00F6  
       "16r00CD"    16r00F2  
       "16r00CE"    16r00F3  
       "16r00CF"    16r00F5  

       "16r00D0"    16r007D  
       "16r00D1"    16r004A  
       "16r00D2"    16r004B  
       "16r00D3"    16r004C  
       "16r00D4"    16r004D  
       "16r00D5"    16r004E  
       "16r00D6"    16r004F  
       "16r00D7"    16r0050  
       "16r00D8"    16r0051  
       "16r00D9"    16r0052  
       "16r00DA"    16r00B9  
       "16r00DB"    16r00FB  
       "16r00DC"    16r00FC  
       "16r00DD"    16r00F9  
       "16r00DE"    16r00FA  
       "16r00DF"    16r00FF  

       "16r00E0"    16r005C  
       "16r00E1"    16r00F7  
       "16r00E2"    16r0053  
       "16r00E3"    16r0054  
       "16r00E4"    16r0055  
       "16r00E5"    16r0056  
       "16r00E6"    16r0057  
       "16r00E7"    16r0058  
       "16r00E8"    16r0059  
       "16r00E9"    16r005A  
       "16r00EA"    16r00B2  
       "16r00EB"    16r00D4  
       "16r00EC"    16r00D6  
       "16r00ED"    16r00D2  
       "16r00EE"    16r00D3  
       "16r00EF"    16r00D5  

       "16r00F0"    16r0030  
       "16r00F1"    16r0031  
       "16r00F2"    16r0032  
       "16r00F3"    16r0033  
       "16r00F4"    16r0034  
       "16r00F5"    16r0035  
       "16r00F6"    16r0036  
       "16r00F7"    16r0037  
       "16r00F8"    16r0038  
       "16r00F9"    16r0039  
       "16r00FA"    16r00B3  
       "16r00FB"    16r00DB  
       "16r00FC"    16r00DC  
       "16r00FD"    16r00D9  
       "16r00FE"    16r00DA  
       "16r00FF"    nil  
       ) at:(code + 1).
!

encode:codeArg
    "Automagically generated by generateCode - do not modify.
     Encode from unicode into my encoding."

    |code "{ Class: SmallInteger }"|

    code := codeArg.
    code > 16rFF ifTrue:[
        ^ self decodingError.
    ].
    ^ #(
       "16r0000"    16r0000  
       "16r0001"    16r0001  
       "16r0002"    16r0002  
       "16r0003"    16r0003 
       "16r0004"    16r0037
       "16r0005"    16r002D
       "16r0006"    16r002E
       "16r0007"    16r002F  
       "16r0008"    16r0016  
       "16r0009"    16r0005  
       "16r000A"    16r0025
       "16r000B"    16r000B     
       "16r000C"    16r000C  
       "16r000D"    16r000D  
       "16r000E"    16r000E  
       "16r000F"    16r000F  

       "16r0010"    16r0010  
       "16r0011"    16r0011  
       "16r0012"    16r0012  
       "16r0013"    16r0013  
       "16r0014"    16r003C
       "16r0015"    16r003D
       "16r0016"    nil   
       "16r0017"    16r0026  
       "16r0018"    16r0018  
       "16r0019"    16r0019  
       "16r001A"    16r003F
       "16r001B"    16r0027  
       "16r001C"    16r001C  
       "16r001D"    16r001D  
       "16r001E"    16r001E  
       "16r001F"    16r001F  

       "16r0020"    16r0040   
       "16r0021"    16r004F       
       "16r0022"    16r007F  
       "16r0023"    16r007B  
       "16r0024"    16r005B  
       "16r0025"    16r006C   
       "16r0026"    16r0050
       "16r0027"    16r007D
       "16r0028"    16r004D  
       "16r0029"    16r005D  
       "16r002A"    16r005C  
       "16r002B"    16r004E  
       "16r002C"    16r006B  
       "16r002D"    16r0060
       "16r002E"    16r004B
       "16r002F"    16r0061

       "16r0030"    16r00F0  
       "16r0031"    16r00F1  
       "16r0032"    16r00F2  
       "16r0033"    16r00F3  
       "16r0034"    16r00F4  
       "16r0035"    16r00F5  
       "16r0036"    16r00F6  
       "16r0037"    16r00F7  
       "16r0038"    16r00F8  
       "16r0039"    16r00F9  
       "16r003A"    16r007A  
       "16r003B"    16r005E  
       "16r003C"    16r004C  
       "16r003D"    16r007E
       "16r003E"    16r006E  
       "16r003F"    16r006F

       "16r0040"    16r007C
       "16r0041"    16r00C1  
       "16r0042"    16r00C2
       "16r0043"    16r00C3 
       "16r0044"    16r00C4  
       "16r0045"    16r00C5  
       "16r0046"    16r00C6  
       "16r0047"    16r00C7 
       "16r0048"    16r00C8 
       "16r0049"    16r00C9  
       "16r004A"    16r00D1  
       "16r004B"    16r00D2  
       "16r004C"    16r00D3  
       "16r004D"    16r00D4  
       "16r004E"    16r00D5
       "16r004F"    16r00D6  

       "16r0050"    16r00D7  
       "16r0051"    16r00D8  
       "16r0052"    16r00D9  
       "16r0053"    16r00E2   
       "16r0054"    16r00E3   
       "16r0055"    16r00E4   
       "16r0056"    16r00E5   
       "16r0057"    16r00E6   
       "16r0058"    16r00E7   
       "16r0059"    16r00E8   
       "16r005A"    16r00E9  
       "16r005B"    16r004A  
       "16r005C"    16r00E0  
       "16r005D"    16r005A  
       "16r005E"    16r005F  
       "16r005F"    16r006D  

       "16r0060"    16r0079  
       "16r0061"    16r0081  
       "16r0062"    16r0082  
       "16r0063"    16r0083  
       "16r0064"    16r0084  
       "16r0065"    16r0085  
       "16r0066"    16r0086  
       "16r0067"    16r0087  
       "16r0068"    16r0088  
       "16r0069"    16r0089  
       "16r006A"    16r0091  
       "16r006B"    16r0092  
       "16r006C"    16r0093  
       "16r006D"    16r0094  
       "16r006E"    16r0095  
       "16r006F"    16r0096  

       "16r0070"    16r0097  
       "16r0071"    16r0098  
       "16r0072"    16r0099  
       "16r0073"    16r00A2  
       "16r0074"    16r00A3  
       "16r0075"    16r00A4  
       "16r0076"    16r00A5  
       "16r0077"    16r00A6  
       "16r0078"    16r00A7  
       "16r0079"    16r00A8  
       "16r007A"    16r00A9  
       "16r007B"    16r00C0  
       "16r007C"    16r00BB  
       "16r007D"    16r00D0  
       "16r007E"    16r00A1  
       "16r007F"    16r0007  

       "16r0080"    nil  
       "16r0081"    nil  
       "16r0082"    nil  
       "16r0083"    nil  
       "16r0084"    nil  
       "16r0085"    16r0015  
       "16r0086"    nil  
       "16r0087"    nil  
       "16r0088"    nil  
       "16r0089"    nil  
       "16r008A"    nil     
       "16r008B"    nil  
       "16r008C"    nil  
       "16r008D"    nil     
       "16r008E"    nil  
       "16r008F"    nil  

       "16r0090"    nil  
       "16r0091"    nil  
       "16r0092"    nil  
       "16r0093"    nil  
       "16r0094"    nil  
       "16r0095"    nil  
       "16r0096"    nil  
       "16r0097"    nil  
       "16r0098"    nil  
       "16r0099"    nil  
       "16r009A"    nil  
       "16r009B"    nil  
       "16r009C"    nil  
       "16r009D"    nil  
       "16r009E"    nil  
       "16r009F"    nil  

       "16r00A0"    16r0041    
       "16r00A1"    16r00AA  
       "16r00A2"    16r00B0  
       "16r00A3"    16r00B1  
       "16r00A4"    16r009F  
       "16r00A5"    16r00B2  
       "16r00A6"    16r006A  
       "16r00A7"    16r00B5  
       "16r00A8"    16r00BD  
       "16r00A9"    16r00B4  
       "16r00AA"    16r009A  
       "16r00AB"    16r008A  
       "16r00AC"    16r00BA  
       "16r00AD"    16r00CA  
       "16r00AE"    16r00AF  
       "16r00AF"    16r00BC  

       "16r00B0"    16r0090  
       "16r00B1"    16r008F  
       "16r00B2"    16r00EA  
       "16r00B3"    16r00FA  
       "16r00B4"    16r00BE  
       "16r00B5"    16r00A0  
       "16r00B6"    16r00B6  
       "16r00B7"    16r00B3  
       "16r00B8"    16r009D  
       "16r00B9"    16r00DA  
       "16r00BA"    16r009B  
       "16r00BB"    16r008B  
       "16r00BC"    16r00B7  
       "16r00BD"    16r00B8  
       "16r00BE"    16r00B9  
       "16r00BF"    16r00AB 

       "16r00C0"    16r0064  
       "16r00C1"    16r0065  
       "16r00C2"    16r0062 
       "16r00C3"    16r0066  
       "16r00C4"    16r0063  
       "16r00C5"    16r0067 
       "16r00C6"    16r009E  
       "16r00C7"    16r0068  
       "16r00C8"    16r0074  
       "16r00C9"    16r0071  
       "16r00CA"    16r0072  
       "16r00CB"    16r0073 
       "16r00CC"    16r0078  
       "16r00CD"    16r0075  
       "16r00CE"    16r0076  
       "16r00CF"    16r0077  

       "16r00D0"    16r00AC  
       "16r00D1"    16r0069  
       "16r00D2"    16r00ED  
       "16r00D3"    16r00EE  
       "16r00D4"    16r00EB  
       "16r00D5"    16r00EF  
       "16r00D6"    16r00EC  
       "16r00D7"    16r00BF  
       "16r00D8"    16r0080  
       "16r00D9"    16r00FD  
       "16r00DA"    16r00FE  
       "16r00DB"    16r00FB     
       "16r00DC"    16r00FC  
       "16r00DD"    16r00AD  
       "16r00DE"    16r00AE  
       "16r00DF"    16r0059   

       "16r00E0"    16r0044  
       "16r00E1"    16r0045  
       "16r00E2"    16r0042  
       "16r00E3"    16r0046  
       "16r00E4"    16r0043  
       "16r00E5"    16r0047  
       "16r00E6"    16r009C  
       "16r00E7"    16r0048  
       "16r00E8"    16r0054   
       "16r00E9"    16r0051  
       "16r00EA"    16r0052   
       "16r00EB"    16r0053   
       "16r00EC"    16r0058   
       "16r00ED"    16r0055   
       "16r00EE"    16r0056   
       "16r00EF"    16r0057   

       "16r00F0"    16r008C  
       "16r00F1"    16r0049  
       "16r00F2"    16r00CD  
       "16r00F3"    16r00CE  
       "16r00F4"    16r00CB  
       "16r00F5"    16r00CF  
       "16r00F6"    16r00CC  
       "16r00F7"    16r00E1  
       "16r00F8"    16r0070 
       "16r00F9"    16r00DD  
       "16r00FA"    16r00DE  
       "16r00FB"    16r00DB  
       "16r00FC"    16r00DC  
       "16r00FD"    16r008D  
       "16r00FE"    16r008E  
       "16r00FF"    16r00DF  
       ) at:code+1.
! !

!EBCDIC class methodsFor:'documentation'!

version_CVS
    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__EBCDIC.st,v 1.1 2010-09-20 15:26:46 cg Exp $'
! !