is.ob 358 B

12345678910111213141516171819
  1. MODULE m;
  2. TYPE
  3. Base = RECORD END;
  4. Derived1 = RECORD(Base) field1: INTEGER END;
  5. Derived2 = RECORD(Derived1) field2: INTEGER END;
  6. VAR
  7. pb: POINTER TO Base;
  8. pd1: POINTER TO Derived1;
  9. pd2: POINTER TO Derived2;
  10. b: BOOLEAN;
  11. BEGIN
  12. NEW(pd2);
  13. pb := pd2;
  14. pd1 := pd2;
  15. b := pb IS Derived1;
  16. b := pb IS Derived2;
  17. b := pd1 IS Derived2
  18. END m.