1------------------------------------------------------------------------------ 2-- -- 3-- GNAT COMPILER COMPONENTS -- 4-- -- 5-- P R J . P A R S -- 6-- -- 7-- B o d y -- 8-- -- 9-- Copyright (C) 2001-2002 Free Software Foundation, Inc. -- 10-- -- 11-- GNAT is free software; you can redistribute it and/or modify it under -- 12-- terms of the GNU General Public License as published by the Free Soft- -- 13-- ware Foundation; either version 2, or (at your option) any later ver- -- 14-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- 15-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- 16-- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -- 17-- for more details. You should have received a copy of the GNU General -- 18-- Public License distributed with GNAT; see file COPYING. If not, write -- 19-- to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, -- 20-- MA 02111-1307, USA. -- 21-- -- 22-- GNAT was originally developed by the GNAT team at New York University. -- 23-- Extensive contributions were provided by Ada Core Technologies Inc. -- 24-- -- 25------------------------------------------------------------------------------ 26 27with Ada.Exceptions; use Ada.Exceptions; 28 29with Prj.Err; use Prj.Err; 30with Output; use Output; 31with Prj.Com; use Prj.Com; 32with Prj.Part; 33with Prj.Proc; 34with Prj.Tree; use Prj.Tree; 35 36package body Prj.Pars is 37 38 ----------- 39 -- Parse -- 40 ----------- 41 42 procedure Parse 43 (Project : out Project_Id; 44 Project_File_Name : String; 45 Packages_To_Check : String_List_Access := All_Packages) 46 is 47 Project_Tree : Project_Node_Id := Empty_Node; 48 The_Project : Project_Id := No_Project; 49 Success : Boolean := True; 50 51 begin 52 -- Parse the main project file into a tree 53 54 Prj.Part.Parse 55 (Project => Project_Tree, 56 Project_File_Name => Project_File_Name, 57 Always_Errout_Finalize => False, 58 Packages_To_Check => Packages_To_Check); 59 60 -- If there were no error, process the tree 61 62 if Project_Tree /= Empty_Node then 63 Prj.Proc.Process 64 (Project => The_Project, 65 Success => Success, 66 From_Project_Node => Project_Tree, 67 Report_Error => null); 68 Prj.Err.Finalize; 69 70 if not Success then 71 The_Project := No_Project; 72 end if; 73 end if; 74 75 Project := The_Project; 76 77 exception 78 when X : others => 79 80 -- Internal error 81 82 Write_Line (Exception_Information (X)); 83 Write_Str ("Exception "); 84 Write_Str (Exception_Name (X)); 85 Write_Line (" raised, while processing project file"); 86 Project := No_Project; 87 end Parse; 88 89 ------------------- 90 -- Set_Verbosity -- 91 ------------------- 92 93 procedure Set_Verbosity (To : in Verbosity) is 94 begin 95 Current_Verbosity := To; 96 end Set_Verbosity; 97 98end Prj.Pars; 99