$c+
module test13_1
private
{ test of array and tuple component extraction }
	 integer a,b,x;
	  tuple [integer first, integer second] pair;
	 typedefinition integer range [1..3] subs;
	 typedefinition integer array [subs] values;
	 values z;
	 tuple [integer size, values val] nested;
	 
	 
 begin
	 read b; { Use 2 as input value. }
	 x := 1;
	 a := b + x;
	 pair := [x , b + 1];
	 write pair@first, pair@second - 2; { 11 }
	 if b = 2 ->	a := 1;
	 		b := 1;
	 [] b = 100 ->	a := 6;
			b := 100 / a;
	 [] b # 2  -> skip;
	 fi;
	 write a, b, x, b*x ; {1111}
	 pair@second := 1;
	 write pair@first, pair@second; {11}
	 z[1], z[2], z[3] := 3, 2, 1;
	 nested := [3, z];
	 write nested@val[z[1]]; {1}
 end. 
