StdMap_iso8859_8.txt 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. MODULE EncStdMap_iso8859_8;
  2. (* This file was generated automatically *)
  3. (* Source: http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-8.TXT *)
  4. IMPORT Codecs := EncCodecs;
  5. TYPE
  6. Encoder = POINTER TO RECORD (Codecs.Encoder) END;
  7. Decoder = POINTER TO RECORD (Codecs.Decoder) END;
  8. (* Encoder *)
  9. PROCEDURE (e: Encoder) Encode (IN f: ARRAY OF CHAR; VAR fR, fLen: INTEGER; VAR t: ARRAY OF SHORTCHAR; VAR tW: INTEGER);
  10. VAR x, y: INTEGER;
  11. BEGIN
  12. WHILE fLen > 0 DO
  13. x := ORD(f[fR]);
  14. CASE x OF
  15. | 00H..0A0H: y := x
  16. | 0A2H..0A9H: y := x
  17. | 0ABH..0B9H: y := x
  18. | 0BBH..0BEH: y := x
  19. | 0D7H: y := 0AAH
  20. | 0F7H: y := 0BAH
  21. | 05D0H..05EAH: y := x - 04F0H
  22. | 200EH..200FH: y := x - 1F11H
  23. | 2017H: y := 0DFH
  24. ELSE
  25. RETURN
  26. END;
  27. t[tW] := SHORT(CHR(y)); INC(tW);
  28. INC(fR); DEC(fLen)
  29. END
  30. END Encode;
  31. PROCEDURE NewEncoder* (): Codecs.Encoder;
  32. VAR e: Encoder;
  33. BEGIN
  34. NEW(e); RETURN e
  35. END NewEncoder;
  36. (* Decoder *)
  37. PROCEDURE (d: Decoder) Decode (IN f: ARRAY OF SHORTCHAR; VAR fR, fLen: INTEGER; VAR t: ARRAY OF CHAR; VAR tW: INTEGER; OUT state: BOOLEAN);
  38. VAR x, y: INTEGER;
  39. BEGIN
  40. WHILE fLen > 0 DO
  41. x := ORD(f[fR]);
  42. CASE x OF
  43. | 00H..0A0H: y := x
  44. | 0A2H..0A9H: y := x
  45. | 0AAH: y := 0D7H
  46. | 0ABH..0B9H: y := x
  47. | 0BAH: y := 0F7H
  48. | 0BBH..0BEH: y := x
  49. | 0DFH: y := 2017H
  50. | 0E0H..0FAH: y := x + 04F0H
  51. | 0FDH..0FEH: y := x + 1F11H
  52. ELSE
  53. RETURN
  54. END;
  55. t[tW] := CHR(y); INC(tW);
  56. INC(fR); DEC(fLen)
  57. END;
  58. state := FALSE
  59. END Decode;
  60. PROCEDURE (d: Decoder) Reset, EMPTY;
  61. PROCEDURE NewDecoder* (): Codecs.Decoder;
  62. VAR d: Decoder;
  63. BEGIN
  64. NEW(d); RETURN d
  65. END NewDecoder;
  66. END EncStdMap_iso8859_8.