StdMap_iso8859_15.txt 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. MODULE EncStdMap_iso8859_15;
  2. (* This file was generated automatically *)
  3. (* Source: http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-15.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..0A3H,0A5H,0A7H,0A9H..0B3H,0B5H..0B7H,0B9H..0BBH,0BFH..0FFH: y := 00H + x
  16. | 0160H,0178H: y := -0BAH + x
  17. | 0161H: y := 0A8H
  18. | 0152H,0153H: y := -96H + x
  19. | 017DH: y := 0B4H
  20. | 20ACH: y := 0A4H
  21. | 017EH: y := 0B8H
  22. ELSE
  23. RETURN
  24. END;
  25. t[tW] := SHORT(CHR(y)); INC(tW);
  26. INC(fR); DEC(fLen)
  27. END
  28. END Encode;
  29. PROCEDURE NewEncoder* (): Codecs.Encoder;
  30. VAR e: Encoder;
  31. BEGIN
  32. NEW(e); RETURN e
  33. END NewEncoder;
  34. (* Decoder *)
  35. PROCEDURE (d: Decoder) Decode (IN f: ARRAY OF SHORTCHAR; VAR fR, fLen: INTEGER; VAR t: ARRAY OF CHAR; VAR tW: INTEGER; OUT state: BOOLEAN);
  36. VAR x, y: INTEGER;
  37. BEGIN
  38. WHILE fLen > 0 DO
  39. x := ORD(f[fR]);
  40. CASE x OF
  41. | 00H..0A3H,0A5H,0A7H,0A9H..0B3H,0B5H..0B7H,0B9H..0BBH,0BFH..0FFH: y := 00H + x
  42. | 0B8H: y := 017EH
  43. | 0A4H: y := 20ACH
  44. | 0B4H: y := 017DH
  45. | 0BCH,0BDH: y := 96H + x
  46. | 0A8H: y := 0161H
  47. | 0A6H,0BEH: y := 0BAH + x
  48. ELSE
  49. RETURN
  50. END;
  51. t[tW] := CHR(y); INC(tW);
  52. INC(fR); DEC(fLen)
  53. END;
  54. state := FALSE
  55. END Decode;
  56. PROCEDURE (d: Decoder) Reset, EMPTY;
  57. PROCEDURE NewDecoder* (): Codecs.Decoder;
  58. VAR d: Decoder;
  59. BEGIN
  60. NEW(d); RETURN d
  61. END NewDecoder;
  62. END EncStdMap_iso8859_15.