]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ada/prj-pars.adb
3psoccon.ads, [...]: Files added.
[thirdparty/gcc.git] / gcc / ada / prj-pars.adb
CommitLineData
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
27with Ada.Exceptions; use Ada.Exceptions;
28
fbf5a39b 29with Prj.Err; use Prj.Err;
19235870
RK
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;
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
98end Prj.Pars;