3 DCL bool_true BOOL := TRUE;
4 DCL bool_false BOOL := FALSE;
5 DCL booltable1 ARRAY (0:3) BOOL INIT := [ TRUE, FALSE, FALSE, TRUE ];
6 DCL booltable2 ARRAY (4:7) BOOL INIT := [ TRUE, FALSE, FALSE, TRUE ];
8 DCL control_char CHAR := C'07';
9 DCL printable_char CHAR := 'a';
10 DCL chartable1 ARRAY (0:2) CHAR INIT := [ C'00', C'01', C'02' ];
11 DCL chartable2 ARRAY (3:5) CHAR INIT := [ C'00', C'01', C'02' ];
13 DCL string1 CHARS (4) := 'abcd';
14 DCL string2 CHARS (5) := 'ef' // C'00' // 'gh';
15 DCL string3 CHARS (6) := 'ef' // 'gh' // 'ij';
16 DCL string4 CHARS (7) := (6) 'z' // C'00';
18 DCL byte_low BYTE := -128;
19 DCL byte_high BYTE := 127;
20 DCL bytetable1 ARRAY (0:4) BYTE INIT := [ -2, -1, 0, 1, 2 ];
21 DCL bytetable2 ARRAY (5:9) BYTE INIT := [ -2, -1, 0, 1, 2 ];
22 DCL bytetable3 ARRAY (1:2,'c':'d',FALSE:TRUE) BYTE
23 INIT := [ [ [ 0, 1 ], [ 2, 3 ] ], [ [ 4, 5 ], [ 6, 7 ] ] ];
24 DCL bytetable4 ARRAY (1:2) ARRAY ('c':'d') ARRAY (FALSE:TRUE) BYTE
25 INIT := [ [ [ 0, 1 ], [ 2, 3 ] ], [ [ 4, 5 ], [ 6, 7 ] ] ];
27 DCL ubyte_low UBYTE := 0;
28 DCL ubyte_high UBYTE := 255;
29 DCL ubytetable1 ARRAY (0:4) UBYTE INIT := [ 0, 1, 2, 3, 4 ];
30 DCL ubytetable2 ARRAY (5:9) UBYTE INIT := [ 0, 1, 2, 3, 4 ];
32 DCL int_low INT := -32_768;
33 DCL int_high INT := 32_767;
34 DCL inttable1 ARRAY (0:4) INT INIT := [ -2, -1, 0, 1, 2 ];
35 DCL inttable2 ARRAY (5:9) INT INIT := [ -2, -1, 0, 1, 2 ];
37 DCL uint_low UINT := 0;
38 DCL uint_high UINT := 65_535;
39 DCL uinttable1 ARRAY (0:4) UINT INIT := [ 0, 1, 2, 3, 4 ];
40 DCL uinttable2 ARRAY (5:9) UINT INIT := [ 0, 1, 2, 3, 4 ];
42 DCL long_low LONG := -2_147_483_648;
43 DCL long_high LONG := 2_147_483_647;
44 DCL longtable1 ARRAY (0:4) LONG INIT := [ -2, -1, 0, 1, 2 ];
45 DCL longtable2 ARRAY (5:9) LONG INIT := [ -2, -1, 0, 1, 2 ];
47 DCL ulong_low ULONG := 0;
48 DCL ulong_high ULONG := 4_294_967_295;
49 DCL ulongtable1 ARRAY (0:4) ULONG INIT := [ 0, 1, 2, 3, 4 ];
50 DCL ulongtable2 ARRAY (5:9) ULONG INIT := [ 0, 1, 2, 3, 4 ];
52 DCL real1 FLOAT := 3.14159265358;
53 DCL real2 FLOAT := -3.14159265358;
54 DCL realtable1 ARRAY (0:4) FLOAT INIT := [ -2.0, -1.0, 0.0, 1.0, 2.0 ];
55 DCL realtable2 ARRAY (5:9) FLOAT INIT := [ -2.0, -1.0, 0.0, 1.0, 2.0 ];
57 DCL long_real1 DOUBLE := 3.14e300;
58 DCL long_real2 DOUBLE := -3.14e-300;
59 DCL longrealtable1 ARRAY (0:4) DOUBLE INIT := [ -2.0, -1.0, 0.0, 1.0, 2.0 ];
60 DCL longrealtable2 ARRAY (5:9) DOUBLE INIT := [ -2.0, -1.0, 0.0, 1.0, 2.0 ];
62 /* DCL powerset1 POWERSET INT(0:7);*/
63 /* DCL chars1 CHAR (16) INIT := (16)'b'; */
64 /* DCL bits1 BIT(20) := B'11111111000010101011'; */
66 NEWMODE simple_struct = STRUCT (abool BOOL, aint INT, astring CHARS (8));
67 DCL struct1 simple_struct := [ TRUE, 123, "a string" ];
69 NEWMODE nested_struct = STRUCT (abool BOOL, nstruct simple_struct, aint INT);
70 DCL struct2 nested_struct := [ TRUE, [ FALSE, 456, "deadbeef" ], 789 ];
72 /* This table is used as a source for every ascii character. */
74 DCL asciitable ARRAY (0:255) CHAR INIT := [
75 C'00', C'01', C'02', C'03', C'04', C'05', C'06', C'07',
76 C'08', C'09', C'0a', C'0b', C'0c', C'0d', C'0e', C'0f',
77 C'10', C'11', C'12', C'13', C'14', C'15', C'16', C'17',
78 C'18', C'19', C'1a', C'1b', C'1c', C'1d', C'1e', C'1f',
79 C'20', C'21', C'22', C'23', C'24', C'25', C'26', C'27',
80 C'28', C'29', C'2a', C'2b', C'2c', C'2d', C'2e', C'2f',
81 C'30', C'31', C'32', C'33', C'34', C'35', C'36', C'37',
82 C'38', C'39', C'3a', C'3b', C'3c', C'3d', C'3e', C'3f',
83 C'40', C'41', C'42', C'43', C'44', C'45', C'46', C'47',
84 C'48', C'49', C'4a', C'4b', C'4c', C'4d', C'4e', C'4f',
85 C'50', C'51', C'52', C'53', C'54', C'55', C'56', C'57',
86 C'58', C'59', C'5a', C'5b', C'5c', C'5d', C'5e', C'5f',
87 C'60', C'61', C'62', C'63', C'64', C'65', C'66', C'67',
88 C'68', C'69', C'6a', C'6b', C'6c', C'6d', C'6e', C'6f',
89 C'70', C'71', C'72', C'73', C'74', C'75', C'76', C'77',
90 C'78', C'79', C'7a', C'7b', C'7c', C'7d', C'7e', C'7f',
91 C'80', C'81', C'82', C'83', C'84', C'85', C'86', C'87',
92 C'88', C'89', C'8a', C'8b', C'8c', C'8d', C'8e', C'8f',
93 C'90', C'91', C'92', C'93', C'94', C'95', C'96', C'97',
94 C'98', C'99', C'9a', C'9b', C'9c', C'9d', C'9e', C'9f',
95 C'a0', C'a1', C'a2', C'a3', C'a4', C'a5', C'a6', C'a7',
96 C'a8', C'a9', C'aa', C'ab', C'ac', C'ad', C'ae', C'af',
97 C'b0', C'b1', C'b2', C'b3', C'b4', C'b5', C'b6', C'b7',
98 C'b8', C'b9', C'ba', C'bb', C'bc', C'bd', C'be', C'bf',
99 C'c0', C'c1', C'c2', C'c3', C'c4', C'c5', C'c6', C'c7',
100 C'c8', C'c9', C'ca', C'cb', C'cc', C'cd', C'ce', C'cf',
101 C'd0', C'd1', C'd2', C'd3', C'd4', C'd5', C'd6', C'd7',
102 C'd8', C'd9', C'da', C'db', C'dc', C'dd', C'de', C'df',
103 C'e0', C'e1', C'e2', C'e3', C'e4', C'e5', C'e6', C'e7',
104 C'e8', C'e9', C'ea', C'eb', C'ec', C'ed', C'ee', C'ef',
105 C'f0', C'f1', C'f2', C'f3', C'f4', C'f5', C'f6', C'f7',
106 C'f8', C'f9', C'fa', C'fb', C'fc', C'fd', C'fe', C'ff'
109 DCL charmatrix ARRAY (0:255) CHAR INIT := [
110 'a','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
111 'a','a','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
112 'a','a','a','X','X','X','X','X','X','X','X','X','X','X','X','X',
113 'a','a','a','a','X','X','X','X','X','X','X','X','X','X','X','X',
114 'a','a','a','a','a','X','X','X','X','X','X','X','X','X','X','X',
115 'a','a','a','a','a','a','X','X','X','X','X','X','X','X','X','X',
116 'a','a','a','a','a','a','a','X','X','X','X','X','X','X','X','X',
117 'a','a','a','a','a','a','a','a','X','X','X','X','X','X','X','X',
118 'a','a','a','a','a','a','a','a','a','X','X','X','X','X','X','X',
119 'a','a','a','a','a','a','a','a','a','a','X','X','X','X','X','X',
120 'a','a','a','a','a','a','a','a','a','a','a','X','X','X','X','X',
121 'a','a','a','a','a','a','a','a','a','a','a','a','X','X','X','X',
122 'a','a','a','a','a','a','a','a','a','a','a','a','a','X','X','X',
123 'a','a','a','a','a','a','a','a','a','a','a','a','a','a','X','X',
124 'a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','X',
125 'a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a'
130 DCL val1 BOOL := TRUE;
131 DCL val2 BOOL := FALSE;
132 DCL val3 BOOL := TRUE;
134 val1 := TRUE XOR TRUE;
135 val1 := TRUE XOR FALSE;
136 val1 := FALSE XOR TRUE;
137 val1 := FALSE XOR FALSE;
138 val1 := val2 XOR val3;
140 val1 := TRUE AND TRUE;
141 val1 := TRUE AND FALSE;
142 val1 := FALSE AND TRUE;
143 val1 := FALSE AND FALSE;
144 val1 := val2 AND val3;
146 val1 := TRUE ANDIF TRUE;
147 val1 := TRUE ANDIF FALSE;
148 val1 := FALSE ANDIF TRUE;
149 val1 := FALSE ANDIF FALSE;
150 val1 := val2 ANDIF val3;
152 val1 := TRUE OR TRUE;
153 val1 := TRUE OR FALSE;
154 val1 := FALSE OR TRUE;
155 val1 := FALSE OR FALSE;
156 val1 := val2 OR val3;
159 -- val1 := NOT FALSE;
165 scalar_arithmetic: PROC ();
176 val1 := val2 MOD val3;
177 val1 := val2 REM val3;
179 END scalar_arithmetic;
181 write_arrays: PROC ();
198 scalar_arithmetic ();
205 dummy_pr_5020: PROC ();
207 NEWMODE x = STRUCT (l LONG, b BOOL);
209 DCL y ARRAY ('a':'b') x;