|
|
@@ -0,0 +1,22 @@
|
|
|
+MODULE Stdlib2Prog;
|
|
|
+(* Broadened stdlib: Math (sqrt/power/arcsin/arccos), Strings
|
|
|
+ (Assign/Equal/Pos), CharClass. Prints a line and exits 42. *)
|
|
|
+IMPORT SysIO, Math, Strings, CharClass;
|
|
|
+VAR ExitCode : INTEGER;
|
|
|
+VAR s : ARRAY [0..31] OF CHAR;
|
|
|
+VAR n : INTEGER;
|
|
|
+BEGIN
|
|
|
+ n := 0;
|
|
|
+ IF Math.sqrt(144.0) > 11.9 THEN n := n + 10 END; (* 12 -> 10 *)
|
|
|
+ IF Math.power(2.0, 10.0) > 1023.9 THEN n := n + 10 END;(* 1024 -> 20 *)
|
|
|
+ IF Math.arcsin(0.0) = 0.0 THEN n := n + 2 END; (* -> 22 *)
|
|
|
+ IF Math.arccos(1.0) = 0.0 THEN n := n + 2 END; (* -> 24 *)
|
|
|
+ Strings.Assign("abc", s);
|
|
|
+ IF Strings.Equal("abc", s) THEN n := n + 6 END; (* -> 30 *)
|
|
|
+ IF Strings.Pos("bc", s) = 2 THEN n := n + 6 END; (* 1-based -> 36 *)
|
|
|
+ IF CharClass.IsDigit('7') AND CharClass.IsAlpha('Q') THEN
|
|
|
+ n := n + 6 (* -> 42 *)
|
|
|
+ END;
|
|
|
+ SysIO.Write("stdlib2 n="); SysIO.WriteInt(n); SysIO.WriteLn;
|
|
|
+ ExitCode := n
|
|
|
+END Stdlib2Prog.
|