OSDN Git Service

Regenerate gcc/configure.
[pf3gnuchains/gcc-fork.git] / gcc / ada / prj-ext.ads
1 ------------------------------------------------------------------------------
2 --                                                                          --
3 --                         GNAT COMPILER COMPONENTS                         --
4 --                                                                          --
5 --                              P R J . E X T                               --
6 --                                                                          --
7 --                                 S p e c                                  --
8 --                                                                          --
9 --          Copyright (C) 2000-2009, 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 3,  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 COPYING3.  If not, go to --
19 -- http://www.gnu.org/licenses for a complete copy of the license.          --
20 --                                                                          --
21 -- GNAT was originally developed  by the GNAT team at  New York University. --
22 -- Extensive contributions were provided by Ada Core Technologies Inc.      --
23 --                                                                          --
24 ------------------------------------------------------------------------------
25
26 --  Subprograms to set, get and cache external references, to be used as
27 --  External functions in project files.
28
29 with Prj.Tree;
30
31 package Prj.Ext is
32
33    ------------------
34    -- Project Path --
35    ------------------
36
37    procedure Add_Search_Project_Directory
38      (Tree : Prj.Tree.Project_Node_Tree_Ref;
39       Path : String);
40    --  Add a directory to the project path. Directories added with this
41    --  procedure are added in order after the current directory and before
42    --  the path given by the environment variable GPR_PROJECT_PATH. A value
43    --  of "-" will remove the default project directory from the project path.
44    --
45    --  Calls to this subprogram must be performed before the first call to
46    --  Project_Path below, or PATH will be added at the end of the search
47    --  path.
48
49    function Project_Path (Tree : Prj.Tree.Project_Node_Tree_Ref) return String;
50    --  Return the current value of the project path, either the value set
51    --  during elaboration of the package or, if procedure Set_Project_Path has
52    --  been called, the value set by the last call to Set_Project_Path.
53
54    procedure Set_Project_Path
55      (Tree     : Prj.Tree.Project_Node_Tree_Ref;
56       New_Path : String);
57    --  Give a new value to the project path. The new value New_Path should
58    --  always start with the current directory (".") and the path separators
59    --  should be the correct ones for the platform.
60
61    -------------------------
62    -- External References --
63    -------------------------
64
65    --  External references influence the way a project tree is processed (in
66    --  particular they provide the values for the typed string variables that
67    --  are then used in case constructions).
68
69    --  External references are project-tree specific, so that when multiple
70    --  trees are loaded in parallel we can have different scenarios (or even
71    --  load the same tree twice and see different views of it).
72
73    procedure Add
74      (Tree          : Prj.Tree.Project_Node_Tree_Ref;
75       External_Name : String;
76       Value         : String);
77    --  Add an external reference (or modify an existing one)
78
79    function Value_Of
80      (Tree          : Prj.Tree.Project_Node_Tree_Ref;
81       External_Name : Name_Id;
82       With_Default  : Name_Id := No_Name)
83       return          Name_Id;
84    --  Get the value of an external reference, and cache it for future uses
85
86    function Check
87      (Tree        : Prj.Tree.Project_Node_Tree_Ref;
88       Declaration : String) return Boolean;
89    --  Check that an external declaration <external>=<value> is correct.
90    --  If it is correct, the external reference is Added.
91
92    procedure Reset (Tree : Prj.Tree.Project_Node_Tree_Ref);
93    --  Clear the internal data structure that stores the external references
94    --  and free any allocated memory.
95
96 end Prj.Ext;