OSDN Git Service

2010-12-09 Steven G. Kargl <kargl@gcc.gnu.org>
[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-2010, 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    -- External References --
35    -------------------------
36
37    --  External references influence the way a project tree is processed (in
38    --  particular they provide the values for the typed string variables that
39    --  are then used in case constructions).
40
41    --  External references are project-tree specific, so that when multiple
42    --  trees are loaded in parallel we can have different scenarios (or even
43    --  load the same tree twice and see different views of it).
44
45    procedure Add
46      (Tree          : Prj.Tree.Project_Node_Tree_Ref;
47       External_Name : String;
48       Value         : String);
49    --  Add an external reference (or modify an existing one)
50
51    function Value_Of
52      (Tree          : Prj.Tree.Project_Node_Tree_Ref;
53       External_Name : Name_Id;
54       With_Default  : Name_Id := No_Name)
55       return          Name_Id;
56    --  Get the value of an external reference, and cache it for future uses
57
58    function Check
59      (Tree        : Prj.Tree.Project_Node_Tree_Ref;
60       Declaration : String) return Boolean;
61    --  Check that an external declaration <external>=<value> is correct.
62    --  If it is correct, the external reference is Added.
63
64    procedure Reset (Tree : Prj.Tree.Project_Node_Tree_Ref);
65    --  Clear the internal data structure that stores the external references
66    --  and free any allocated memory.
67
68 end Prj.Ext;