with Communications_with_User; use Communications_with_User; with Drivers_for_Vertex_Points; use Drivers_for_Vertex_Points; with Drivers_for_Mixed_Contributions; use Drivers_for_Mixed_Contributions; procedure Driver_for_Criterion ( file : in file_type; points : in out Array_of_Lists ) is function Menu_for_Criterion return character is -- DESCRIPTION : -- Shows the menu for computing the set of essential points. ans : character; begin new_line; put_line("MENU for sweeping out non-contributing points :"); put_line(" 0. no computation of vertex points."); put_line(" 1. elimination of non-vertex points"); put_line(" 2. apply simple criterion once"); put_line(" 3. exhaustive sweep through supports"); put("Make your choice : "); Ask_Alternative(ans,"0123"); return ans; end Menu_for_Criterion; procedure Dispatch_Criterion ( choice : character ) is -- DESCRIPTION : -- Dispatches the selected choice. nred : natural := 0; begin if choice /= '0' then Vertex_Points(file,points); case choice is when '2' => Once_Simple_Sweep(file,points,nred); when '3' => Full_Simple_Sweep(file,points,nred); when others => null; end case; end if; end Dispatch_Criterion; procedure Driver is choice : character := Menu_for_Criterion; begin Dispatch_Criterion(choice); end Driver; begin Driver; end Driver_for_Criterion;