StdMap_cp1253.txt 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. MODULE EncStdMap_cp1253;
  2. (* This file was generated automatically *)
  3. (* Source: http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1253.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..7FH,0A0H,0A3H..0A9H,0ABH..0AEH,0B0H..0B3H,0B5H..0B7H,0BBH,0BDH: y := 00H + x
  16. | 203AH: y := 9BH
  17. | 2013H,2014H: y := -1F7DH + x
  18. | 201EH,2020H,2021H: y := -1F9AH + x
  19. | 201AH: y := 82H
  20. | 2122H: y := 99H
  21. | 0384H,0388H..038AH,038CH,038EH..03A1H,03A3H..03CEH: y := -02D0H + x
  22. | 0192H: y := 83H
  23. | 2039H: y := 8BH
  24. | 2022H: y := 95H
  25. | 20ACH: y := 80H
  26. | 2030H: y := 89H
  27. | 201CH,201DH: y := -1F89H + x
  28. | 2018H,2019H: y := -1F87H + x
  29. | 2015H: y := 0AFH
  30. | 0385H,0386H: y := -02E4H + x
  31. | 2026H: y := 85H
  32. ELSE
  33. RETURN
  34. END;
  35. t[tW] := SHORT(CHR(y)); INC(tW);
  36. INC(fR); DEC(fLen)
  37. END
  38. END Encode;
  39. PROCEDURE NewEncoder* (): Codecs.Encoder;
  40. VAR e: Encoder;
  41. BEGIN
  42. NEW(e); RETURN e
  43. END NewEncoder;
  44. (* Decoder *)
  45. PROCEDURE (d: Decoder) Decode (IN f: ARRAY OF SHORTCHAR; VAR fR, fLen: INTEGER; VAR t: ARRAY OF CHAR; VAR tW: INTEGER; OUT state: BOOLEAN);
  46. VAR x, y: INTEGER;
  47. BEGIN
  48. WHILE fLen > 0 DO
  49. x := ORD(f[fR]);
  50. CASE x OF
  51. | 00H..7FH,0A0H,0A3H..0A9H,0ABH..0AEH,0B0H..0B3H,0B5H..0B7H,0BBH,0BDH: y := 00H + x
  52. | 85H: y := 2026H
  53. | 0A1H,0A2H: y := 02E4H + x
  54. | 0AFH: y := 2015H
  55. | 89H: y := 2030H
  56. | 93H,94H: y := 1F89H + x
  57. | 91H,92H: y := 1F87H + x
  58. | 80H: y := 20ACH
  59. | 95H: y := 2022H
  60. | 8BH: y := 2039H
  61. | 83H: y := 0192H
  62. | 0B4H,0B8H..0BAH,0BCH,0BEH..0D1H,0D3H..0FEH: y := 02D0H + x
  63. | 99H: y := 2122H
  64. | 82H: y := 201AH
  65. | 84H,86H,87H: y := 1F9AH + x
  66. | 96H,97H: y := 1F7DH + x
  67. | 9BH: y := 203AH
  68. ELSE
  69. RETURN
  70. END;
  71. t[tW] := CHR(y); INC(tW);
  72. INC(fR); DEC(fLen)
  73. END;
  74. state := FALSE
  75. END Decode;
  76. PROCEDURE (d: Decoder) Reset, EMPTY;
  77. PROCEDURE NewDecoder* (): Codecs.Decoder;
  78. VAR d: Decoder;
  79. BEGIN
  80. NEW(d); RETURN d
  81. END NewDecoder;
  82. END EncStdMap_cp1253.