with Ada.Containers; use Ada.Containers; with Ada.Containers.Hashed_Sets; with Ada.Text_IO; use Ada.Text_IO; with Libfoolang.Analysis; use Libfoolang.Analysis; procedure Main is package Context_Sets is new Ada.Containers.Hashed_Sets (Element_Type => Analysis_Context, Hash => Hash, Equivalent_Elements => "=", "=" => "="); package Unit_Sets is new Ada.Containers.Hashed_Sets (Element_Type => Analysis_Unit, Hash => Hash, Equivalent_Elements => "=", "=" => "="); package Node_Sets is new Ada.Containers.Hashed_Sets (Element_Type => Foo_Node, Hash => Hash, Equivalent_Elements => "=", "=" => "="); CS : Context_Sets.Set; US : Unit_Sets.Set; NS : Node_Sets.Set; C : constant Analysis_Context := Create_Context; U1 : constant Analysis_Unit := C.Get_From_Buffer (Filename => "main1.txt", Buffer => "example"); U2 : constant Analysis_Unit := C.Get_From_Buffer (Filename => "main2.txt", Buffer => "example"); begin CS.Insert (Create_Context); CS.Insert (C); US.Insert (U1); US.Include (U1); US.Insert (U2); if US.Length /= 2 then raise Program_Error; end if; NS.Insert (U1.Root); NS.Include (U1.Root); NS.Insert (U2.Root); if NS.Length /= 2 then raise Program_Error; end if; Put_Line ("Done."); end Main;