TAL Programmer's Guide
Emulating Pascal Variant Parts
Using Equivalenced Variables
096254 Tandem Computers Incorporated 10–21
Emulating Pascal
Variant Parts
You can simulate variant parts of a Pascal record type by using equivalenced
structures as follows. (For information on record type variant parts, see the Pascal
Reference Manual.)
LITERAL triangle, rectangle, circle;
STRUCT geometry (*);
BEGIN
REAL x, y;
REAL area;
INT shape; ! 0 = TRIANGLE,
! 1 = RECTANGLE,
! 2 = CIRCLE
STRUCT triangle_info; !If SHAPE = TRIANGLE
BEGIN
REAL side1, side2, side3;
REAL(64) angle1, angle2, angle3;
END;
STRUCT rectangle_info = triangle_info;
!If SHAPE = RECTANGLE
BEGIN
REAL side1, side2;
END;
STRUCT circle_info = triangle_info;
!If SHAPE = CIRCLE
BEGIN
REAL diameter;
END;
END;