2
0

StdMap_iso8859_7.txt 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. MODULE EncStdMap_iso8859_7;
  2. (* This file was generated automatically *)
  3. (* Source: http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-7.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,0A3H,0A6H..0A9H,0ABH..0ADH,0B0H..0B3H,0B7H,0BBH,0BDH: y := 00H + x
  16. | 2018H,2019H: y := -1F77H + x
  17. | 037AH,0384H..0386H,0388H..038AH,038CH,038EH..03A1H,03A3H..03CEH: y := -02D0H + x
  18. | 20AFH: y := 0A5H
  19. | 20ACH: y := 0A4H
  20. | 2015H: y := 0AFH
  21. ELSE
  22. RETURN
  23. END;
  24. t[tW] := SHORT(CHR(y)); INC(tW);
  25. INC(fR); DEC(fLen)
  26. END
  27. END Encode;
  28. PROCEDURE NewEncoder* (): Codecs.Encoder;
  29. VAR e: Encoder;
  30. BEGIN
  31. NEW(e); RETURN e
  32. END NewEncoder;
  33. (* Decoder *)
  34. PROCEDURE (d: Decoder) Decode (IN f: ARRAY OF SHORTCHAR; VAR fR, fLen: INTEGER; VAR t: ARRAY OF CHAR; VAR tW: INTEGER; OUT state: BOOLEAN);
  35. VAR x, y: INTEGER;
  36. BEGIN
  37. WHILE fLen > 0 DO
  38. x := ORD(f[fR]);
  39. CASE x OF
  40. | 00H..0A0H,0A3H,0A6H..0A9H,0ABH..0ADH,0B0H..0B3H,0B7H,0BBH,0BDH: y := 00H + x
  41. | 0AFH: y := 2015H
  42. | 0A4H: y := 20ACH
  43. | 0A5H: y := 20AFH
  44. | 0AAH,0B4H..0B6H,0B8H..0BAH,0BCH,0BEH..0D1H,0D3H..0FEH: y := 02D0H + x
  45. | 0A1H,0A2H: y := 1F77H + x
  46. ELSE
  47. RETURN
  48. END;
  49. t[tW] := CHR(y); INC(tW);
  50. INC(fR); DEC(fLen)
  51. END;
  52. state := FALSE
  53. END Decode;
  54. PROCEDURE (d: Decoder) Reset, EMPTY;
  55. PROCEDURE NewDecoder* (): Codecs.Decoder;
  56. VAR d: Decoder;
  57. BEGIN
  58. NEW(d); RETURN d
  59. END NewDecoder;
  60. END EncStdMap_iso8859_7.