MODULE TDynStr; // DynamicStrings (core subset) + SysStorage. Exit 42. FROM DynamicStrings IMPORT String, InitString, KillString, Length, ConCat, Add, Equal, EqualArray, CopyOut, char, Mult, Slice, Index, RIndex, ToUpper, ReplaceChar, Dup, RemoveWhitePostfix; FROM SYSTEM IMPORT ADDRESS; IMPORT SysStorage; VAR ExitCode : INTEGER; VAR s, t, u : String; VAR p : ADDRESS; VAR buf : ARRAY [0..63] OF CHAR; VAR n : CARDINAL; BEGIN SysStorage.ALLOCATE(p, 16); SysStorage.DEALLOCATE(p, 16); s := InitString("Hello"); t := InitString(" World"); s := ConCat(s, t); (* "Hello World" *) u := Add(s, InitString("!")); (* new "Hello World!" *) n := Length(u); (* 12 *) IF Equal(s, InitString("Hello World")) THEN END; IF EqualArray(s, "Hello World") THEN END; s := ToUpper(s); (* "HELLO WORLD" *) s := ReplaceChar(s, "L", "l"); (* "HEllO WORlD" *) CopyOut(buf, s); t := Mult(InitString("ab"), 3); (* "ababab" *) IF Length(t) = 6 THEN END; t := KillString(t); s := KillString(s); u := KillString(u); IF n = 12 THEN ExitCode := 42 ELSE ExitCode := 1 END END TDynStr.