'BEGIN' 'COMMENT' LIBRARY 1; 'INTEGER' I, CASE; 'BOOLEAN' B; 'REAL' X; 'INTEGER''PROCEDURE' P(K, Q); 'VALUE' K; 'INTEGER' K; 'INTEGER''PROCEDURE' 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)); 'INTEGER''PROCEDURE' Q1(I); 'VALUE' I; 'INTEGER' I; Q1 := 100 + I; 'INTEGER''PROCEDURE' Q2(B); 'VALUE' B; 'BOOLEAN' B; Q2 := 200 + ('IF' B 'THEN' 1 'ELSE' 0); 'INTEGER''PROCEDURE' 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'