program M;
   (* example of multilevel iheritance *)
   var x: integer;
   unit A: class;
      var x: integer;
   begin
      x := 3;
      inner;
   end A;
begin
   pref A block
     var y: integer, bb: B;
     unit B: class;
     begin
       x := y;
       writeln(x);
       inner;
     end B;
   begin
     y := 2;
     bb := new B;
     pref A block
       var y: integer, cc: C;
       unit C: B class;
       begin
         y := x;
         writeln(y);
         inner;
       end C;
     begin
       y := 4;
       cc := new C;
     end
   end;
   writeln(x);
end program;
   