begin
comment LIBRARY 1;
integer
I,
CASE;
boolean
B;
real
X;
integerprocedure P(K, Q);
value
K;
integer
K;
integerprocedure
Q;
comment (X1) : 'VALUE' X1 : 'REAL' X1 ;
P ≔ if K = 1 then
Q(I)
else if K = 2 then
Q(B)
else if K = 3 then
Q(X)
else
Q(Q(20));
integerprocedure Q1(I);
value
I;
integer
I;
Q1 ≔ 100 + I;
integerprocedure Q2(B);
value
B;
boolean
B;
Q2 ≔ 200 + (if B then 1 else 0);
integerprocedure Q3(X);
value
X;
real
X;
Q3 ≔ 300 + X;
procedure FAIL(M, N);
value
M,
N;
integer
M,
N;
if M ≠ N then
begin
OUTREAL(99, M);
OUTREAL(99, N);
OUTREAL(99, CASE)
end
else
CASE ≔ CASE + 1;
I ≔ 1;
X ≔ 10·4;
CASE ≔ 0;
B ≔ false;
FAIL(P(1, Q1), 101);
FAIL(P(4, Q1), 220);
FAIL(P(2, Q2), 200);
FAIL(P(3, Q3), 310);
FAIL(P(4, Q3), 620);
OUTREAL(99, CASE)
end