t_ustrassign.mod 880 B

1234567891011121314151617181920212223
  1. MODULE TUStrAssign;
  2. (* UString whole-string assignment: U"..." copies into a 1-D
  3. ARRAY OF UCHAR by content (count-clamped, 0-codepoint terminator).
  4. Exit 63. *)
  5. VAR ExitCode : INTEGER;
  6. VAR a : ARRAY [0 .. 7] OF UCHAR;
  7. VAR b : ARRAY [0 .. 1] OF UCHAR;
  8. CONST Term = 0;
  9. BEGIN
  10. a := U"hi";
  11. IF a[0] = U'h' THEN ExitCode := ExitCode + 1 ELSE ExitCode := 100 END;
  12. IF a[1] = U'i' THEN ExitCode := ExitCode + 2 ELSE ExitCode := 101 END;
  13. IF UORD(a[2]) = Term THEN ExitCode := ExitCode + 4 ELSE ExitCode := 102 END;
  14. (* capacity 2: U"abc" truncates to 2 codepoints *)
  15. b := U"abc";
  16. IF b[0] = U'a' THEN ExitCode := ExitCode + 8 ELSE ExitCode := 103 END;
  17. IF b[1] = U'b' THEN ExitCode := ExitCode + 16 ELSE ExitCode := 104 END;
  18. (* non-ASCII codepoint round-trips *)
  19. a := U"hé";
  20. IF a[1] = U'é' THEN ExitCode := ExitCode + 32 ELSE ExitCode := 105 END
  21. END TUStrAssign.