| 1234567891011121314151617181920212223 |
- MODULE TStrCat;
- (* String concatenation `+` (arrays and literals, including a single
- CHAR operand) and string length. Exit 63. *)
- VAR ExitCode : INTEGER;
- VAR a : ARRAY [0 .. 31] OF CHAR;
- VAR b, c : ARRAY [0 .. 7] OF CHAR;
- BEGIN
- b[0] := "a"; b[1] := "b"; b[2] := CHR(0);
- c[0] := "c"; c[1] := "d"; c[2] := CHR(0);
- a := b + c; (* array + array -> "abcd" *)
- IF a = "abcd" THEN ExitCode := ExitCode + 1 ELSE ExitCode := 100 END;
- a := "xy" + "z"; (* literal + CHAR -> "xyz" *)
- IF a = "xyz" THEN ExitCode := ExitCode + 2 ELSE ExitCode := 100 END;
- a := "hello"; (* string assignment (was a trap) *)
- IF a = "hello" THEN ExitCode := ExitCode + 4 ELSE ExitCode := 100 END;
- IF LEN(a) = 32 THEN ExitCode := ExitCode + 8 ELSE ExitCode := 100 END;
- IF LEN("hello") = 5 THEN ExitCode := ExitCode + 16 ELSE ExitCode := 100 END;
- IF LENGTH("abc") = 3 THEN ExitCode := ExitCode + 32 ELSE ExitCode := 100 END
- END TStrCat.
|