]>
Commit | Line | Data |
---|---|---|
19235870 RK |
1 | ------------------------------------------------------------------------------ |
2 | -- -- | |
3 | -- GNAT COMPILER COMPONENTS -- | |
4 | -- -- | |
fbf5a39b | 5 | -- P R J . P A R S -- |
19235870 RK |
6 | -- -- |
7 | -- B o d y -- | |
8 | -- -- | |
fbf5a39b | 9 | -- Copyright (C) 2001-2002 Free Software Foundation, Inc. -- |
19235870 RK |
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. -- | |
71ff80dc | 23 | -- Extensive contributions were provided by Ada Core Technologies Inc. -- |
19235870 RK |
24 | -- -- |
25 | ------------------------------------------------------------------------------ | |
26 | ||
27 | with Ada.Exceptions; use Ada.Exceptions; | |
28 | ||
fbf5a39b | 29 | with Prj.Err; use Prj.Err; |
19235870 RK |
30 | with Output; use Output; |
31 | with Prj.Com; use Prj.Com; | |
32 | with Prj.Part; | |
33 | with Prj.Proc; | |
34 | with Prj.Tree; use Prj.Tree; | |
35 | ||
36 | package body Prj.Pars is | |
37 | ||
38 | ----------- | |
39 | -- Parse -- | |
40 | ----------- | |
41 | ||
42 | procedure Parse | |
43 | (Project : out Project_Id; | |
fbf5a39b AC |
44 | Project_File_Name : String; |
45 | Packages_To_Check : String_List_Access := All_Packages) | |
19235870 RK |
46 | is |
47 | Project_Tree : Project_Node_Id := Empty_Node; | |
48 | The_Project : Project_Id := No_Project; | |
fbf5a39b | 49 | Success : Boolean := True; |
19235870 RK |
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, | |
fbf5a39b AC |
57 | Always_Errout_Finalize => False, |
58 | Packages_To_Check => Packages_To_Check); | |
19235870 RK |
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, | |
fbf5a39b | 65 | Success => Success, |
19235870 RK |
66 | From_Project_Node => Project_Tree, |
67 | Report_Error => null); | |
fbf5a39b AC |
68 | Prj.Err.Finalize; |
69 | ||
70 | if not Success then | |
71 | The_Project := No_Project; | |
72 | end if; | |
19235870 RK |
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 | ||
98 | end Prj.Pars; |