CharacterEncoderImplementations__MS_Hebrew.st
changeset 8813 c2908c7fc648
parent 8148 dbf64e3142d9
child 17711 39faaaf888b4
equal deleted inserted replaced
8812:de70efb478c4 8813:c2908c7fc648
    33  inclusion of the above copyright notice.   This software may not
    33  inclusion of the above copyright notice.   This software may not
    34  be provided or otherwise made available to, or used by, any
    34  be provided or otherwise made available to, or used by, any
    35  other person.  No title to or ownership of the software is
    35  other person.  No title to or ownership of the software is
    36  hereby transferred.
    36  hereby transferred.
    37 "
    37 "
       
    38 !
       
    39 
       
    40 documentation
       
    41 "
       
    42     CP1255 / Microsoft Hebrew
       
    43 
       
    44     [see with:]
       
    45         CharacterEncoderImplementations::MS_Hebrew showCharacterSet
       
    46 
       
    47     [author:]
       
    48         Claus Gittinger
       
    49 "
    38 ! !
    50 ! !
    39 
    51 
    40 !MS_Hebrew class methodsFor:'mapping'!
    52 !MS_Hebrew class methodsFor:'mapping'!
    41 
    53 
    42 mapFileURL2_relativePathName
    54 mapFileURL2_relativePathName
    43     ^ 'CP1255'
    55     ^ 'CP1255'
       
    56 
       
    57     "
       
    58      self generateCode
       
    59     "
    44 !
    60 !
    45 
    61 
    46 mapping
    62 mapping
    47 "
    63 "
    48 # From: http://std.dkuug.dk/i18n/charmaps/CP1255
    64 # From: http://std.dkuug.dk/i18n/charmaps/CP1255
   264 END CHARMAP
   280 END CHARMAP
   265 
   281 
   266 "
   282 "
   267 ! !
   283 ! !
   268 
   284 
       
   285 !MS_Hebrew methodsFor:'encoding & decoding'!
       
   286 
       
   287 decode:codeArg
       
   288     "Automagically generated by generateCode - do not modify.
       
   289      Decode from my encoding into unicode."
       
   290 
       
   291     |code "{ Class: SmallInteger }"|
       
   292 
       
   293     code := codeArg.
       
   294     code <= 16r7F ifTrue:[ ^ code ].
       
   295     code > 16rFE ifTrue:[
       
   296         ^ self decodingError.
       
   297     ].
       
   298     [
       
   299         |t|
       
   300         t := #(
       
   301            "16r0080"    16r0000 " invalid " 
       
   302            "16r0081"    16r0000 " invalid " 
       
   303            "16r0082"    16r201A " SINGLE LOW-9 QUOTATION MARK " 
       
   304            "16r0083"    16r0192 " LATIN SMALL LETTER F WITH HOOK " 
       
   305            "16r0084"    16r201E " DOUBLE LOW-9 QUOTATION MARK " 
       
   306            "16r0085"    16r2026 " HORIZONTAL ELLIPSIS " 
       
   307            "16r0086"    16r2020 " DAGGER " 
       
   308            "16r0087"    16r2021 " DOUBLE DAGGER " 
       
   309            "16r0088"    16r0000 " invalid " 
       
   310            "16r0089"    16r2030 " PER MILLE SIGN " 
       
   311            "16r008A"    16r0000 " invalid " 
       
   312            "16r008B"    16r2039 " SINGLE LEFT-POINTING ANGLE QUOTATION MARK " 
       
   313            "16r008C"    16r0000 " invalid " 
       
   314            "16r008D"    16r0000 " invalid " 
       
   315            "16r008E"    16r0000 " invalid " 
       
   316            "16r008F"    16r0000 " invalid " 
       
   317            "16r0090"    16r0000 " invalid " 
       
   318            "16r0091"    16r2018 " LEFT SINGLE QUOTATION MARK " 
       
   319            "16r0092"    16r2019 " RIGHT SINGLE QUOTATION MARK " 
       
   320            "16r0093"    16r201C " LEFT DOUBLE QUOTATION MARK " 
       
   321            "16r0094"    16r201D " RIGHT DOUBLE QUOTATION MARK " 
       
   322            "16r0095"    16r2022 " BULLET " 
       
   323            "16r0096"    16r2013 " EN DASH " 
       
   324            "16r0097"    16r2014 " EM DASH " 
       
   325            "16r0098"    16r0000 " invalid " 
       
   326            "16r0099"    16r2122 " TRADE MARK SIGN " 
       
   327            "16r009A"    16r0000 " invalid " 
       
   328            "16r009B"    16r203A " SINGLE RIGHT-POINTING ANGLE QUOTATION MARK " 
       
   329            "16r009C"    16r0000 " invalid " 
       
   330            "16r009D"    16r0000 " invalid " 
       
   331            "16r009E"    16r0000 " invalid " 
       
   332            "16r009F"    16r0000 " invalid " 
       
   333            "16r00A0"    16r00A0 " NO-BREAK SPACE " 
       
   334            "16r00A1"    16r0000 " invalid " 
       
   335            "16r00A2"    16r00A2 " CENT SIGN " 
       
   336            "16r00A3"    16r00A3 " POUND SIGN " 
       
   337            "16r00A4"    16r00A4 " CURRENCY SIGN " 
       
   338            "16r00A5"    16r00A5 " YEN SIGN " 
       
   339            "16r00A6"    16r00A6 " BROKEN BAR " 
       
   340            "16r00A7"    16r00A7 " SECTION SIGN " 
       
   341            "16r00A8"    16r00A8 " DIAERESIS " 
       
   342            "16r00A9"    16r00A9 " COPYRIGHT SIGN " 
       
   343            "16r00AA"    16r00D7 " MULTIPLICATION SIGN " 
       
   344            "16r00AB"    16r00AB " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK " 
       
   345            "16r00AC"    16r00AC " NOT SIGN " 
       
   346            "16r00AD"    16r00AD " SOFT HYPHEN " 
       
   347            "16r00AE"    16r00AE " REGISTERED SIGN " 
       
   348            "16r00AF"    16r203E " OVERLINE " 
       
   349            "16r00B0"    16r00B0 " DEGREE SIGN " 
       
   350            "16r00B1"    16r00B1 " PLUS-MINUS SIGN " 
       
   351            "16r00B2"    16r00B2 " SUPERSCRIPT TWO " 
       
   352            "16r00B3"    16r00B3 " SUPERSCRIPT THREE " 
       
   353            "16r00B4"    16r00B4 " ACUTE ACCENT " 
       
   354            "16r00B5"    16r00B5 " MICRO SIGN " 
       
   355            "16r00B6"    16r00B6 " PILCROW SIGN " 
       
   356            "16r00B7"    16r00B7 " MIDDLE DOT " 
       
   357            "16r00B8"    16r00B8 " CEDILLA " 
       
   358            "16r00B9"    16r00B9 " SUPERSCRIPT ONE " 
       
   359            "16r00BA"    16r00F7 " DIVISION SIGN " 
       
   360            "16r00BB"    16r00BB " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK " 
       
   361            "16r00BC"    16r00BC " VULGAR FRACTION ONE QUARTER " 
       
   362            "16r00BD"    16r00BD " VULGAR FRACTION ONE HALF " 
       
   363            "16r00BE"    16r00BE " VULGAR FRACTION THREE QUARTERS " 
       
   364            "16r00BF"    16r0000 " invalid " 
       
   365            "16r00C0"    16r0000 " invalid " 
       
   366            "16r00C1"    16r0000 " invalid " 
       
   367            "16r00C2"    16r0000 " invalid " 
       
   368            "16r00C3"    16r0000 " invalid " 
       
   369            "16r00C4"    16r0000 " invalid " 
       
   370            "16r00C5"    16r0000 " invalid " 
       
   371            "16r00C6"    16r0000 " invalid " 
       
   372            "16r00C7"    16r0000 " invalid " 
       
   373            "16r00C8"    16r0000 " invalid " 
       
   374            "16r00C9"    16r0000 " invalid " 
       
   375            "16r00CA"    16r0000 " invalid " 
       
   376            "16r00CB"    16r0000 " invalid " 
       
   377            "16r00CC"    16r0000 " invalid " 
       
   378            "16r00CD"    16r0000 " invalid " 
       
   379            "16r00CE"    16r0000 " invalid " 
       
   380            "16r00CF"    16r0000 " invalid " 
       
   381            "16r00D0"    16r0000 " invalid " 
       
   382            "16r00D1"    16r0000 " invalid " 
       
   383            "16r00D2"    16r0000 " invalid " 
       
   384            "16r00D3"    16r0000 " invalid " 
       
   385            "16r00D4"    16r0000 " invalid " 
       
   386            "16r00D5"    16r0000 " invalid " 
       
   387            "16r00D6"    16r0000 " invalid " 
       
   388            "16r00D7"    16r0000 " invalid " 
       
   389            "16r00D8"    16r0000 " invalid " 
       
   390            "16r00D9"    16r0000 " invalid " 
       
   391            "16r00DA"    16r0000 " invalid " 
       
   392            "16r00DB"    16r0000 " invalid " 
       
   393            "16r00DC"    16r0000 " invalid " 
       
   394            "16r00DD"    16r0000 " invalid " 
       
   395            "16r00DE"    16r0000 " invalid " 
       
   396            "16r00DF"    16r2017 " DOUBLE LOW LINE " 
       
   397            "16r00E0"    16r05D0 " HEBREW LETTER ALEF " 
       
   398            "16r00E1"    16r05D1 " HEBREW LETTER BET " 
       
   399            "16r00E2"    16r05D2 " HEBREW LETTER GIMEL " 
       
   400            "16r00E3"    16r05D3 " HEBREW LETTER DALET " 
       
   401            "16r00E4"    16r05D4 " HEBREW LETTER HE " 
       
   402            "16r00E5"    16r05D5 " HEBREW LETTER VAV " 
       
   403            "16r00E6"    16r05D6 " HEBREW LETTER ZAYIN " 
       
   404            "16r00E7"    16r05D7 " HEBREW LETTER HET " 
       
   405            "16r00E8"    16r05D8 " HEBREW LETTER TET " 
       
   406            "16r00E9"    16r05D9 " HEBREW LETTER YOD " 
       
   407            "16r00EA"    16r05DA " HEBREW LETTER FINAL KAF " 
       
   408            "16r00EB"    16r05DB " HEBREW LETTER KAF " 
       
   409            "16r00EC"    16r05DC " HEBREW LETTER LAMED " 
       
   410            "16r00ED"    16r05DD " HEBREW LETTER FINAL MEM " 
       
   411            "16r00EE"    16r05DE " HEBREW LETTER MEM " 
       
   412            "16r00EF"    16r05DF " HEBREW LETTER FINAL NUN " 
       
   413            "16r00F0"    16r05E0 " HEBREW LETTER NUN " 
       
   414            "16r00F1"    16r05E1 " HEBREW LETTER SAMEKH " 
       
   415            "16r00F2"    16r05E2 " HEBREW LETTER AYIN " 
       
   416            "16r00F3"    16r05E3 " HEBREW LETTER FINAL PE " 
       
   417            "16r00F4"    16r05E4 " HEBREW LETTER PE " 
       
   418            "16r00F5"    16r05E5 " HEBREW LETTER FINAL TSADI " 
       
   419            "16r00F6"    16r05E6 " HEBREW LETTER TSADI " 
       
   420            "16r00F7"    16r05E7 " HEBREW LETTER QOF " 
       
   421            "16r00F8"    16r05E8 " HEBREW LETTER RESH " 
       
   422            "16r00F9"    16r05E9 " HEBREW LETTER SHIN " 
       
   423            "16r00FA"    16r05EA " HEBREW LETTER TAV " 
       
   424            "16r00FB"    16r0000 " invalid " 
       
   425            "16r00FC"    16r0000 " invalid " 
       
   426            "16r00FD"    16r200E " LEFT-TO-RIGHT MARK " 
       
   427            "16r00FE"    16r200F " RIGHT-TO-LEFT MARK " 
       
   428            ) at:(code - 16r7F).
       
   429         t == 0 ifFalse:[^ t].
       
   430         ^ self decodingError.
       
   431     ] value.
       
   432 !
       
   433 
       
   434 encode:unicodeArg
       
   435     "Automagically generated by generateCode - do not modify.
       
   436      Encode from unicode into my encoding."
       
   437 
       
   438     |unicode "{ Class: SmallInteger }"|
       
   439 
       
   440     unicode := unicodeArg.
       
   441     unicode <= 16r7F ifTrue:[ ^ unicode ].
       
   442     unicode > 16r2122 ifTrue:[
       
   443         ^ self encodingError.
       
   444     ].
       
   445     unicode <= 16r9F ifTrue:[
       
   446         ^ self encodingError
       
   447     ].
       
   448     unicode <= 16r5EA ifTrue:[
       
   449         unicode <= 16r192 ifTrue:[
       
   450             unicode <= 16rF7 ifTrue:[
       
   451                 unicode <= 16rD7 ifTrue:[
       
   452                     unicode <= 16rBE ifTrue:[
       
   453                         [
       
   454                             |t|
       
   455                             t := #[
       
   456                                "16r00A0"    16rA0 " NO-BREAK SPACE " 
       
   457                                "16r00A1"    16r00 " invalid " 
       
   458                                "16r00A2"    16rA2 " CENT SIGN " 
       
   459                                "16r00A3"    16rA3 " POUND SIGN " 
       
   460                                "16r00A4"    16rA4 " CURRENCY SIGN " 
       
   461                                "16r00A5"    16rA5 " YEN SIGN " 
       
   462                                "16r00A6"    16rA6 " BROKEN BAR " 
       
   463                                "16r00A7"    16rA7 " SECTION SIGN " 
       
   464                                "16r00A8"    16rA8 " DIAERESIS " 
       
   465                                "16r00A9"    16rA9 " COPYRIGHT SIGN " 
       
   466                                "16r00AA"    16r00 " invalid " 
       
   467                                "16r00AB"    16rAB " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK " 
       
   468                                "16r00AC"    16rAC " NOT SIGN " 
       
   469                                "16r00AD"    16rAD " SOFT HYPHEN " 
       
   470                                "16r00AE"    16rAE " REGISTERED SIGN " 
       
   471                                "16r00AF"    16r00 " invalid " 
       
   472                                "16r00B0"    16rB0 " DEGREE SIGN " 
       
   473                                "16r00B1"    16rB1 " PLUS-MINUS SIGN " 
       
   474                                "16r00B2"    16rB2 " SUPERSCRIPT TWO " 
       
   475                                "16r00B3"    16rB3 " SUPERSCRIPT THREE " 
       
   476                                "16r00B4"    16rB4 " ACUTE ACCENT " 
       
   477                                "16r00B5"    16rB5 " MICRO SIGN " 
       
   478                                "16r00B6"    16rB6 " PILCROW SIGN " 
       
   479                                "16r00B7"    16rB7 " MIDDLE DOT " 
       
   480                                "16r00B8"    16rB8 " CEDILLA " 
       
   481                                "16r00B9"    16rB9 " SUPERSCRIPT ONE " 
       
   482                                "16r00BA"    16r00 " invalid " 
       
   483                                "16r00BB"    16rBB " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK " 
       
   484                                "16r00BC"    16rBC " VULGAR FRACTION ONE QUARTER " 
       
   485                                "16r00BD"    16rBD " VULGAR FRACTION ONE HALF " 
       
   486                                "16r00BE"    16rBE " VULGAR FRACTION THREE QUARTERS " 
       
   487                                ] at:(unicode - 16r9F).
       
   488                             t == 0 ifFalse:[^ t].
       
   489                             ^ self encodingError
       
   490                         ] value.
       
   491                     ].
       
   492                     unicode <= 16rD6 ifTrue:[
       
   493                         ^ self encodingError
       
   494                     ].
       
   495                     ^  "16r00D7" 16r00AA " MULTIPLICATION SIGN " 
       
   496                 ].
       
   497                 unicode <= 16rF6 ifTrue:[
       
   498                     ^ self encodingError
       
   499                 ].
       
   500                 ^  "16r00F7" 16r00BA " DIVISION SIGN " 
       
   501             ].
       
   502             unicode <= 16r191 ifTrue:[
       
   503                 ^ self encodingError
       
   504             ].
       
   505             ^  "16r0192" 16r0083 " LATIN SMALL LETTER F WITH HOOK " 
       
   506         ].
       
   507         unicode <= 16r5CF ifTrue:[
       
   508             ^ self encodingError
       
   509         ].
       
   510         ^ #[
       
   511            "16r05D0"    16rE0 " HEBREW LETTER ALEF " 
       
   512            "16r05D1"    16rE1 " HEBREW LETTER BET " 
       
   513            "16r05D2"    16rE2 " HEBREW LETTER GIMEL " 
       
   514            "16r05D3"    16rE3 " HEBREW LETTER DALET " 
       
   515            "16r05D4"    16rE4 " HEBREW LETTER HE " 
       
   516            "16r05D5"    16rE5 " HEBREW LETTER VAV " 
       
   517            "16r05D6"    16rE6 " HEBREW LETTER ZAYIN " 
       
   518            "16r05D7"    16rE7 " HEBREW LETTER HET " 
       
   519            "16r05D8"    16rE8 " HEBREW LETTER TET " 
       
   520            "16r05D9"    16rE9 " HEBREW LETTER YOD " 
       
   521            "16r05DA"    16rEA " HEBREW LETTER FINAL KAF " 
       
   522            "16r05DB"    16rEB " HEBREW LETTER KAF " 
       
   523            "16r05DC"    16rEC " HEBREW LETTER LAMED " 
       
   524            "16r05DD"    16rED " HEBREW LETTER FINAL MEM " 
       
   525            "16r05DE"    16rEE " HEBREW LETTER MEM " 
       
   526            "16r05DF"    16rEF " HEBREW LETTER FINAL NUN " 
       
   527            "16r05E0"    16rF0 " HEBREW LETTER NUN " 
       
   528            "16r05E1"    16rF1 " HEBREW LETTER SAMEKH " 
       
   529            "16r05E2"    16rF2 " HEBREW LETTER AYIN " 
       
   530            "16r05E3"    16rF3 " HEBREW LETTER FINAL PE " 
       
   531            "16r05E4"    16rF4 " HEBREW LETTER PE " 
       
   532            "16r05E5"    16rF5 " HEBREW LETTER FINAL TSADI " 
       
   533            "16r05E6"    16rF6 " HEBREW LETTER TSADI " 
       
   534            "16r05E7"    16rF7 " HEBREW LETTER QOF " 
       
   535            "16r05E8"    16rF8 " HEBREW LETTER RESH " 
       
   536            "16r05E9"    16rF9 " HEBREW LETTER SHIN " 
       
   537            "16r05EA"    16rFA " HEBREW LETTER TAV " 
       
   538            ] at:(unicode - 16r5CF).
       
   539     ].
       
   540     unicode <= 16r200D ifTrue:[
       
   541         ^ self encodingError
       
   542     ].
       
   543     unicode <= 16r203E ifTrue:[
       
   544         [
       
   545             |t|
       
   546             t := #[
       
   547                "16r200E"    16rFD " LEFT-TO-RIGHT MARK " 
       
   548                "16r200F"    16rFE " RIGHT-TO-LEFT MARK " 
       
   549                "16r2010"    16r00 " invalid " 
       
   550                "16r2011"    16r00 " invalid " 
       
   551                "16r2012"    16r00 " invalid " 
       
   552                "16r2013"    16r96 " EN DASH " 
       
   553                "16r2014"    16r97 " EM DASH " 
       
   554                "16r2015"    16r00 " invalid " 
       
   555                "16r2016"    16r00 " invalid " 
       
   556                "16r2017"    16rDF " DOUBLE LOW LINE " 
       
   557                "16r2018"    16r91 " LEFT SINGLE QUOTATION MARK " 
       
   558                "16r2019"    16r92 " RIGHT SINGLE QUOTATION MARK " 
       
   559                "16r201A"    16r82 " SINGLE LOW-9 QUOTATION MARK " 
       
   560                "16r201B"    16r00 " invalid " 
       
   561                "16r201C"    16r93 " LEFT DOUBLE QUOTATION MARK " 
       
   562                "16r201D"    16r94 " RIGHT DOUBLE QUOTATION MARK " 
       
   563                "16r201E"    16r84 " DOUBLE LOW-9 QUOTATION MARK " 
       
   564                "16r201F"    16r00 " invalid " 
       
   565                "16r2020"    16r86 " DAGGER " 
       
   566                "16r2021"    16r87 " DOUBLE DAGGER " 
       
   567                "16r2022"    16r95 " BULLET " 
       
   568                "16r2023"    16r00 " invalid " 
       
   569                "16r2024"    16r00 " invalid " 
       
   570                "16r2025"    16r00 " invalid " 
       
   571                "16r2026"    16r85 " HORIZONTAL ELLIPSIS " 
       
   572                "16r2027"    16r00 " invalid " 
       
   573                "16r2028"    16r00 " invalid " 
       
   574                "16r2029"    16r00 " invalid " 
       
   575                "16r202A"    16r00 " invalid " 
       
   576                "16r202B"    16r00 " invalid " 
       
   577                "16r202C"    16r00 " invalid " 
       
   578                "16r202D"    16r00 " invalid " 
       
   579                "16r202E"    16r00 " invalid " 
       
   580                "16r202F"    16r00 " invalid " 
       
   581                "16r2030"    16r89 " PER MILLE SIGN " 
       
   582                "16r2031"    16r00 " invalid " 
       
   583                "16r2032"    16r00 " invalid " 
       
   584                "16r2033"    16r00 " invalid " 
       
   585                "16r2034"    16r00 " invalid " 
       
   586                "16r2035"    16r00 " invalid " 
       
   587                "16r2036"    16r00 " invalid " 
       
   588                "16r2037"    16r00 " invalid " 
       
   589                "16r2038"    16r00 " invalid " 
       
   590                "16r2039"    16r8B " SINGLE LEFT-POINTING ANGLE QUOTATION MARK " 
       
   591                "16r203A"    16r9B " SINGLE RIGHT-POINTING ANGLE QUOTATION MARK " 
       
   592                "16r203B"    16r00 " invalid " 
       
   593                "16r203C"    16r00 " invalid " 
       
   594                "16r203D"    16r00 " invalid " 
       
   595                "16r203E"    16rAF " OVERLINE " 
       
   596                ] at:(unicode - 16r200D).
       
   597             t == 0 ifFalse:[^ t].
       
   598             ^ self encodingError
       
   599         ] value.
       
   600     ].
       
   601     unicode <= 16r2121 ifTrue:[
       
   602         ^ self encodingError
       
   603     ].
       
   604     ^  "16r2122" 16r0099 " TRADE MARK SIGN " 
       
   605 ! !
       
   606 
   269 !MS_Hebrew class methodsFor:'documentation'!
   607 !MS_Hebrew class methodsFor:'documentation'!
   270 
   608 
   271 version
   609 version
   272     ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MS_Hebrew.st,v 1.3 2004-03-09 21:59:46 cg Exp $'
   610     ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MS_Hebrew.st,v 1.4 2005-03-31 18:48:50 cg Exp $'
   273 ! !
   611 ! !