- -- Declarations for gprmake:
-
- First_Language_Index : constant Language_Index := 1;
- First_Language_Indexes_Last : constant Language_Index := 5;
-
- Ada_Language_Index : constant Language_Index :=
- First_Language_Index;
- C_Language_Index : constant Language_Index :=
- Ada_Language_Index + 1;
- C_Plus_Plus_Language_Index : constant Language_Index :=
- C_Language_Index + 1;
-
- Last_Language_Index : Language_Index := No_Language_Index;
-
- subtype First_Language_Indexes is Language_Index
- range First_Language_Index .. First_Language_Indexes_Last;
-
- package Language_Indexes is new System.HTable.Simple_HTable
- (Header_Num => Header_Num,
- Element => Language_Index,
- No_Element => No_Language_Index,
- Key => Name_Id,
- Hash => Hash,
- Equal => "=");
- -- Mapping of language names to language indexes
-
- package Language_Names is new Table.Table
- (Table_Component_Type => Name_Id,
- Table_Index_Type => Language_Index,
- Table_Low_Bound => 1,
- Table_Initial => 4,
- Table_Increment => 100,
- Table_Name => "Prj.Language_Names");
- -- The table for the name of programming languages
-
- procedure Add_Language_Name (Name : Name_Id);
-
- procedure Display_Language_Name (Language : Language_Index);
-
- type Languages_In_Project is array (First_Language_Indexes) of Boolean;
- -- Set of supported languages used in a project
-
- No_Languages : constant Languages_In_Project := (others => False);
- -- No supported languages are used
-
- type Supp_Language_Index is new Nat;
- No_Supp_Language_Index : constant Supp_Language_Index := 0;
-
- type Supp_Language is record
- Index : Language_Index := No_Language_Index;
- Present : Boolean := False;
- Next : Supp_Language_Index := No_Supp_Language_Index;
- end record;
-
- package Present_Language_Table is new GNAT.Dynamic_Tables
- (Table_Component_Type => Supp_Language,
- Table_Index_Type => Supp_Language_Index,
- Table_Low_Bound => 1,
- Table_Initial => 4,
- Table_Increment => 100);
- -- The table for the presence of languages with an index that is outside
- -- of First_Language_Indexes.
-
- type Impl_Suffix_Array is array (First_Language_Indexes) of File_Name_Type;
- -- Suffixes for the non spec sources of the different supported languages
- -- in a project.
-
- No_Impl_Suffixes : constant Impl_Suffix_Array := (others => No_File);
- -- A default value for the non spec source suffixes
-
- type Supp_Suffix is record
- Index : Language_Index := No_Language_Index;
- Suffix : File_Name_Type := No_File;
- Next : Supp_Language_Index := No_Supp_Language_Index;
- end record;
-
- package Supp_Suffix_Table is new GNAT.Dynamic_Tables
- (Table_Component_Type => Supp_Suffix,
- Table_Index_Type => Supp_Language_Index,
- Table_Low_Bound => 1,
- Table_Initial => 4,
- Table_Increment => 100);
- -- The table for the presence of languages with an index that is outside
- -- of First_Language_Indexes.
-
- type Lang_Kind is (GNU, Other);
-
- type Language_Processing_Data is record
- Compiler_Drivers : Name_List_Index := No_Name_List;
- Compiler_Paths : Name_Id := No_Name;
- Compiler_Kinds : Lang_Kind := GNU;
- Dependency_Options : Name_List_Index := No_Name_List;
- Compute_Dependencies : Name_List_Index := No_Name_List;
- Include_Options : Name_List_Index := No_Name_List;
- Binder_Drivers : Name_Id := No_Name;
- Binder_Driver_Paths : Name_Id := No_Name;
- end record;
-
- Default_Language_Processing_Data :
- constant Language_Processing_Data :=
- (Compiler_Drivers => No_Name_List,
- Compiler_Paths => No_Name,
- Compiler_Kinds => GNU,
- Dependency_Options => No_Name_List,
- Compute_Dependencies => No_Name_List,
- Include_Options => No_Name_List,
- Binder_Drivers => No_Name,
- Binder_Driver_Paths => No_Name);
-
- type First_Language_Processing_Data is
- array (First_Language_Indexes) of Language_Processing_Data;
-
- Default_First_Language_Processing_Data :
- constant First_Language_Processing_Data :=
- (others => Default_Language_Processing_Data);
-
- type Supp_Language_Data is record
- Index : Language_Index := No_Language_Index;
- Data : Language_Processing_Data := Default_Language_Processing_Data;
- Next : Supp_Language_Index := No_Supp_Language_Index;
- end record;
-
- package Supp_Language_Table is new GNAT.Dynamic_Tables
- (Table_Component_Type => Supp_Language_Data,
- Table_Index_Type => Supp_Language_Index,
- Table_Low_Bound => 1,
- Table_Initial => 4,
- Table_Increment => 100);
- -- The table for language data when there are more languages than
- -- in First_Language_Indexes.
-
- type Other_Source_Id is new Nat;
- No_Other_Source : constant Other_Source_Id := 0;
-
- type Other_Source is record
- Language : Language_Index; -- language of the source
- File_Name : File_Name_Type; -- source file simple name
- Path_Name : Path_Name_Type; -- source full path name
- Source_TS : Time_Stamp_Type; -- source file time stamp
- Object_Name : File_Name_Type; -- object file simple name
- Object_Path : Path_Name_Type; -- object full path name
- Object_TS : Time_Stamp_Type; -- object file time stamp
- Dep_Name : File_Name_Type; -- dependency file simple name
- Dep_Path : Path_Name_Type; -- dependency full path name
- Dep_TS : Time_Stamp_Type; -- dependency file time stamp
- Naming_Exception : Boolean := False; -- True if a naming exception
- Next : Other_Source_Id := No_Other_Source;
- end record;
- -- Data for a source in a language other than Ada
-
- package Other_Source_Table is new GNAT.Dynamic_Tables
- (Table_Component_Type => Other_Source,
- Table_Index_Type => Other_Source_Id,
- Table_Low_Bound => 1,
- Table_Initial => 200,
- Table_Increment => 100);
- -- The table for sources of languages other than Ada
-