summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2008-03-26 07:39:50 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2008-03-26 07:39:50 +0000
commit79879aee6a342eea431e7ec8e3d604e68df79331 (patch)
tree02208e30faa9386ce553c365f878daeba8b06582 /gcc
parent92f75e58a6a19db73d6f2676dede2806db71e39d (diff)
downloadgcc-79879aee6a342eea431e7ec8e3d604e68df79331.tar.gz
2008-03-26 Vincent Celier <celier@adacore.com>
* gnatcmd.adb: Add processing for GNAT SYNC * vms_conv.ads: (Command_Type): Add command Sync * vms_conv.adb (Initialize): Add Command_List data for new command Sync * vms_data.ads: Add entries for -gnatw.w Add qualifier for gnatstub --header-file option Add switches for GNAT SYNC * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC (Add_Package_Name): New procedure (Package_Name_List): New function (Initialize): Add known package names to the list (Register_New_Package): Add the new package name to the list git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133567 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/gnatcmd.adb55
-rw-r--r--gcc/ada/prj-attr.adb50
-rw-r--r--gcc/ada/prj-attr.ads8
-rw-r--r--gcc/ada/vms_conv.adb10
-rw-r--r--gcc/ada/vms_conv.ads1
-rw-r--r--gcc/ada/vms_data.ads596
6 files changed, 474 insertions, 246 deletions
diff --git a/gcc/ada/gnatcmd.adb b/gcc/ada/gnatcmd.adb
index c664338ae87..8e527cc76ee 100644
--- a/gcc/ada/gnatcmd.adb
+++ b/gcc/ada/gnatcmd.adb
@@ -118,19 +118,22 @@ procedure GNATCmd is
-- tool. We allocate objects because we cannot declare aliased objects
-- as we are in a procedure, not a library level package.
- Naming_String : constant String_Access := new String'("naming");
- Binder_String : constant String_Access := new String'("binder");
- Compiler_String : constant String_Access := new String'("compiler");
- Check_String : constant String_Access := new String'("check");
- Eliminate_String : constant String_Access := new String'("eliminate");
- Finder_String : constant String_Access := new String'("finder");
- Linker_String : constant String_Access := new String'("linker");
- Gnatls_String : constant String_Access := new String'("gnatls");
- Pretty_String : constant String_Access := new String'("pretty_printer");
- Stack_String : constant String_Access := new String'("stack");
- Gnatstub_String : constant String_Access := new String'("gnatstub");
- Metric_String : constant String_Access := new String'("metrics");
- Xref_String : constant String_Access := new String'("cross_reference");
+ subtype SA is String_Access;
+
+ Naming_String : constant SA := new String'("naming");
+ Binder_String : constant SA := new String'("binder");
+ Compiler_String : constant SA := new String'("compiler");
+ Check_String : constant SA := new String'("check");
+ Synchronize_String : constant SA := new String'("synchronize");
+ Eliminate_String : constant SA := new String'("eliminate");
+ Finder_String : constant SA := new String'("finder");
+ Linker_String : constant SA := new String'("linker");
+ Gnatls_String : constant SA := new String'("gnatls");
+ Pretty_String : constant SA := new String'("pretty_printer");
+ Stack_String : constant SA := new String'("stack");
+ Gnatstub_String : constant SA := new String'("gnatstub");
+ Metric_String : constant SA := new String'("metrics");
+ Xref_String : constant SA := new String'("cross_reference");
Packages_To_Check_By_Binder : constant String_List_Access :=
new String_List'((Naming_String, Binder_String));
@@ -138,6 +141,9 @@ procedure GNATCmd is
Packages_To_Check_By_Check : constant String_List_Access :=
new String_List'((Naming_String, Check_String, Compiler_String));
+ Packages_To_Check_By_Sync : constant String_List_Access :=
+ new String_List'((Naming_String, Synchronize_String, Compiler_String));
+
Packages_To_Check_By_Eliminate : constant String_List_Access :=
new String_List'((Naming_String, Eliminate_String, Compiler_String));
@@ -549,8 +555,9 @@ procedure GNATCmd is
end if;
else
- -- For gnatcheck, gnatpp and gnatmetric, put all sources
- -- of the project, or of all projects if -U was specified.
+ -- For gnatcheck, gnatsync, gnatpp and gnatmetric, put all
+ -- sources of the project, or of all projects if -U was
+ -- specified.
for Kind in Spec_Or_Body loop
if Check_Project
@@ -1561,6 +1568,7 @@ begin
if The_Command = Bind
or else The_Command = Check
+ or else The_Command = Sync
or else The_Command = Elim
or else The_Command = Find
or else The_Command = Link
@@ -1578,6 +1586,9 @@ begin
when Check =>
Tool_Package_Name := Name_Check;
Packages_To_Check := Packages_To_Check_By_Check;
+ when Sync =>
+ Tool_Package_Name := Name_Synchronize;
+ Packages_To_Check := Packages_To_Check_By_Sync;
when Elim =>
Tool_Package_Name := Name_Eliminate;
Packages_To_Check := Packages_To_Check_By_Eliminate;
@@ -1761,6 +1772,7 @@ begin
elsif
(The_Command = Check or else
+ The_Command = Sync or else
The_Command = Pretty or else
The_Command = Metric or else
The_Command = Stack or else
@@ -1776,6 +1788,7 @@ begin
end if;
elsif ((The_Command = Check and then Argv (Argv'First) /= '+')
+ or else The_Command = Sync
or else The_Command = Metric
or else The_Command = Pretty)
and then Project_File /= null
@@ -1938,6 +1951,7 @@ begin
or else The_Command = Stub
or else The_Command = Elim
or else The_Command = Check
+ or else The_Command = Sync
then
-- If there are switches in package Compiler, put them in the
-- Carg_Switches table.
@@ -2295,8 +2309,8 @@ begin
end;
end if;
- -- For gnat check, metric or pretty with -U + a main, get the list
- -- of sources from the closure and add them to the arguments.
+ -- For gnat check, sync, metric or pretty with -U + a main, get the
+ -- list of sources from the closure and add them to the arguments.
if ASIS_Main /= null then
Get_Closure;
@@ -2315,11 +2329,12 @@ begin
(Project, Project_Tree, Including_Libraries => False);
end if;
- -- For gnat check, gnat pretty, gnat metric, gnat list, and gnat
- -- stack, if no file has been put on the command line, call tool
- -- with all the sources of the main project.
+ -- For gnat check, gnat sync, gnat pretty, gnat metric, gnat list,
+ -- and gnat stack, if no file has been put on the command line, call
+ -- tool with all the sources of the main project.
elsif The_Command = Check or else
+ The_Command = Sync or else
The_Command = Pretty or else
The_Command = Metric or else
The_Command = List or else
diff --git a/gcc/ada/prj-attr.adb b/gcc/ada/prj-attr.adb
index 0f3fef4a722..c340b293244 100644
--- a/gcc/ada/prj-attr.adb
+++ b/gcc/ada/prj-attr.adb
@@ -260,6 +260,12 @@ package body Prj.Attr is
"Ladefault_switches#" &
"Lbswitches#" &
+ -- package Synchronize
+
+ "Psynchronize#" &
+ "Ladefault_switches#" &
+ "Lbswitches#" &
+
-- package Eliminate
"Peliminate#" &
@@ -296,9 +302,38 @@ package body Prj.Attr is
Initialized : Boolean := False;
-- A flag to avoid multiple initialization
+ Package_Names : String_List_Access := new Strings.String_List (1 .. 20);
+ Last_Package_Name : Natural := 0;
+ -- Package_Names (1 .. Last_Package_Name) contains the list of the known
+ -- package names, coming from the Initialization_Data string or from
+ -- calls to one of the two procedures Register_New_Package.
+
+ procedure Add_Package_Name (Name : String);
+ -- Add a package name in the Package_Name list, extending it, if necessary
+
function Name_Id_Of (Name : String) return Name_Id;
-- Returns the Name_Id for Name in lower case
+ ----------------------
+ -- Add_Package_Name --
+ ----------------------
+
+ procedure Add_Package_Name (Name : String) is
+ begin
+ if Last_Package_Name = Package_Names'Last then
+ declare
+ New_List : constant Strings.String_List_Access :=
+ new Strings.String_List (1 .. Package_Names'Last * 2);
+ begin
+ New_List (Package_Names'Range) := Package_Names.all;
+ Package_Names := New_List;
+ end;
+ end if;
+
+ Last_Package_Name := Last_Package_Name + 1;
+ Package_Names (Last_Package_Name) := new String'(Name);
+ end Add_Package_Name;
+
-----------------------
-- Attribute_Kind_Of --
-----------------------
@@ -433,6 +468,8 @@ package body Prj.Attr is
First_Attribute => Empty_Attr);
Start := Finish + 1;
+ Add_Package_Name (Get_Name_String (Package_Name));
+
when 'S' =>
Var_Kind := Single;
Optional_Index := False;
@@ -594,6 +631,15 @@ package body Prj.Attr is
end if;
end Optional_Index_Of;
+ -----------------------
+ -- Package_Name_List --
+ -----------------------
+
+ function Package_Name_List return Strings.String_List is
+ begin
+ return Package_Names (1 .. Last_Package_Name);
+ end Package_Name_List;
+
------------------------
-- Package_Node_Id_Of --
------------------------
@@ -729,6 +775,8 @@ package body Prj.Attr is
(Name => Pkg_Name,
Known => True,
First_Attribute => Empty_Attr);
+
+ Add_Package_Name (Get_Name_String (Pkg_Name));
end Register_New_Package;
procedure Register_New_Package
@@ -805,6 +853,8 @@ package body Prj.Attr is
(Name => Pkg_Name,
Known => True,
First_Attribute => First_Attr);
+
+ Add_Package_Name (Get_Name_String (Pkg_Name));
end Register_New_Package;
---------------------------
diff --git a/gcc/ada/prj-attr.ads b/gcc/ada/prj-attr.ads
index 135878e25c2..2d314b6cbb3 100644
--- a/gcc/ada/prj-attr.ads
+++ b/gcc/ada/prj-attr.ads
@@ -28,10 +28,18 @@
-- It is also possible to define new packages with their attributes
+with System.Strings;
with Table;
package Prj.Attr is
+ use System;
+
+ function Package_Name_List return Strings.String_List;
+ -- Returns the list of valid package names, including those added by
+ -- procedures Register_New_Package below. The String_Access components of
+ -- the returned String_List should never be feeed.
+
procedure Initialize;
-- Initialize the predefined project level attributes and the predefined
-- packages and their attribute. This procedure should be called by
diff --git a/gcc/ada/vms_conv.adb b/gcc/ada/vms_conv.adb
index efd3ab1bd79..128026134b6 100644
--- a/gcc/ada/vms_conv.adb
+++ b/gcc/ada/vms_conv.adb
@@ -397,6 +397,16 @@ package body VMS_Conv is
Params => new Parameter_Array'(1 => Unlimited_Files),
Defext => " "),
+ Sync =>
+ (Cname => new S'("SYNC"),
+ Usage => new S'("GNAT SYNC name /qualifiers"),
+ VMS_Only => False,
+ Unixcmd => new S'("gnatsync"),
+ Unixsws => null,
+ Switches => Sync_Switches'Access,
+ Params => new Parameter_Array'(1 => Unlimited_Files),
+ Defext => " "),
+
Elim =>
(Cname => new S'("ELIM"),
Usage => new S'("GNAT ELIM name /qualifiers"),
diff --git a/gcc/ada/vms_conv.ads b/gcc/ada/vms_conv.ads
index 179edc6e128..666cd3a2fad 100644
--- a/gcc/ada/vms_conv.ads
+++ b/gcc/ada/vms_conv.ads
@@ -98,6 +98,7 @@ package VMS_Conv is
Clean,
Compile,
Check,
+ Sync,
Elim,
Find,
Krunch,
diff --git a/gcc/ada/vms_data.ads b/gcc/ada/vms_data.ads
index dc2675b33c9..fa8e108e315 100644
--- a/gcc/ada/vms_data.ads
+++ b/gcc/ada/vms_data.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1996-2007, Free Software Foundation, Inc. --
+-- Copyright (C) 1996-2008, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -190,7 +190,7 @@ package VMS_Data is
-- Switches for GNAT BIND --
----------------------------
- S_Bind_Add : aliased constant S := "/ADD_PROJECT_SEARCH_DIR=*" &
+ S_Bind_Add : aliased constant S := "/ADD_PROJECT_SEARCH_DIR=*" &
"-aP*";
-- /ADD_PROJECT_SEARCH_PATH==(directory[,...])
--
@@ -710,7 +710,7 @@ package VMS_Data is
--
-- Add directories to the project search path.
- S_Check_All : aliased constant S := "/ALL " &
+ S_Check_All : aliased constant S := "/ALL " &
"-a";
-- /NOALL (D)
-- /ALL
@@ -719,7 +719,7 @@ package VMS_Data is
-- components of the GNAT RTL when building and analyzing the global
-- structure for checking the global rules.
- S_Check_Ext : aliased constant S := "/EXTERNAL_REFERENCE=" & '"' &
+ S_Check_Ext : aliased constant S := "/EXTERNAL_REFERENCE=" & '"' &
"-X" & '"';
-- /EXTERNAL_REFERENCE="name=val"
--
@@ -729,33 +729,33 @@ package VMS_Data is
-- Example:
-- /EXTERNAL_REFERENCE="DEBUG=TRUE"
- S_Check_Files : aliased constant S := "/FILES=@" &
+ S_Check_Files : aliased constant S := "/FILES=@" &
"-files=@";
-- /FILES=filename
--
-- Take as arguments the files that are listed in the specified
-- text file.
- S_Check_Help : aliased constant S := "/HELP " &
+ S_Check_Help : aliased constant S := "/HELP " &
"-h";
-- /NOHELP (D)
-- /HELP
--
-- Print information about currently implemented checks.
- S_Check_Locs : aliased constant S := "/LOCS " &
+ S_Check_Locs : aliased constant S := "/LOCS " &
"-l";
-- /NOLOCS (D)
-- /LOCS
--
-- Use full source locations referebces in the report file.
- S_Check_Mess : aliased constant S := "/MESSAGES_PROJECT_FILE=" &
- "DEFAULT " &
- "-vP0 " &
- "MEDIUM " &
- "-vP1 " &
- "HIGH " &
+ S_Check_Mess : aliased constant S := "/MESSAGES_PROJECT_FILE=" &
+ "DEFAULT " &
+ "-vP0 " &
+ "MEDIUM " &
+ "-vP1 " &
+ "HIGH " &
"-vP2";
-- /MESSAGES_PROJECT_FILE[=messages-option]
--
@@ -769,7 +769,7 @@ package VMS_Data is
-- HIGH A great number of messages are output, most of them not
-- being useful for the user.
- S_Check_Project : aliased constant S := "/PROJECT_FILE=<" &
+ S_Check_Project : aliased constant S := "/PROJECT_FILE=<" &
"-P>";
-- /PROJECT_FILE=filename
--
@@ -778,21 +778,21 @@ package VMS_Data is
-- gnatcheck. The source directories to be searched will be communicated
-- to gnatcheck through logical name ADA_PRJ_INCLUDE_FILE.
- S_Check_Quiet : aliased constant S := "/QUIET " &
+ S_Check_Quiet : aliased constant S := "/QUIET " &
"-q";
-- /NOQUIET (D)
-- /QUIET
--
-- Work quietly, only output warnings and errors.
- S_Check_Sections : aliased constant S := "/SECTIONS=" &
- "DEFAULT " &
- "-s123 " &
- "COMPILER_STYLE " &
- "-s1 " &
- "BY_RULES " &
- "-s2 " &
- "BY_FILES_BY_RULES " &
+ S_Check_Sections : aliased constant S := "/SECTIONS=" &
+ "DEFAULT " &
+ "-s123 " &
+ "COMPILER_STYLE " &
+ "-s1 " &
+ "BY_RULES " &
+ "-s2 " &
+ "BY_FILES_BY_RULES " &
"-s3";
-- /SECTIONS[=section-option, section-option, ...]
--
@@ -816,14 +816,14 @@ package VMS_Data is
-- If one of these options is specified, then the report file contains
-- only sections set by these options
- S_Check_Short : aliased constant S := "/SHORT " &
+ S_Check_Short : aliased constant S := "/SHORT " &
"-s";
-- /NOSHORT (D)
-- /SHORT
--
-- Generate a short form of the report file.
- S_Check_Verb : aliased constant S := "/VERBOSE " &
+ S_Check_Verb : aliased constant S := "/VERBOSE " &
"-v";
-- /NOVERBOSE (D)
-- /VERBOSE
@@ -847,6 +847,137 @@ package VMS_Data is
S_Check_Verb 'Access);
----------------------------
+ -- Switches for GNAT SYNC --
+ ----------------------------
+
+ S_Sync_Add : aliased constant S := "/ADD_PROJECT_SEARCH_DIR=*" &
+ "-aP*";
+ -- /ADD_PROJECT_SEARCH_PATH==(directory[,...])
+ --
+ -- Add directories to the project search path.
+
+ S_Sync_All : aliased constant S := "/ALL " &
+ "-a";
+ -- /NOALL (D)
+ -- /ALL
+ --
+ -- Also check the components of the GNAT run time and process the needed
+ -- components of the GNAT RTL when building and analyzing the global
+ -- structure for checking the global rules.
+
+ S_Sync_Ext : aliased constant S := "/EXTERNAL_REFERENCE=" & '"' &
+ "-X" & '"';
+ -- /EXTERNAL_REFERENCE="name=val"
+ --
+ -- Specifies an external reference to the project manager. Useful only if
+ -- /PROJECT_FILE is used.
+ --
+ -- Example:
+ -- /EXTERNAL_REFERENCE="DEBUG=TRUE"
+
+ S_Sync_Files : aliased constant S := "/FILES=@" &
+ "-files=@";
+ -- /FILES=filename
+ --
+ -- Take as arguments the files that are listed in the specified
+ -- text file.
+
+ S_Sync_Mess : aliased constant S := "/MESSAGES_PROJECT_FILE=" &
+ "DEFAULT " &
+ "-vP0 " &
+ "MEDIUM " &
+ "-vP1 " &
+ "HIGH " &
+ "-vP2";
+ -- /MESSAGES_PROJECT_FILE[=messages-option]
+ --
+ -- Specifies the "verbosity" of the parsing of project files.
+ -- messages-option may be one of the following:
+ --
+ -- DEFAULT (D) No messages are output if there is no error or warning.
+ --
+ -- MEDIUM A small number of messages are output.
+ --
+ -- HIGH A great number of messages are output, most of them not
+ -- being useful for the user.
+
+ S_Sync_Project : aliased constant S := "/PROJECT_FILE=<" &
+ "-P>";
+ -- /PROJECT_FILE=filename
+ --
+ -- Specifies the main project file to be used. The project files rooted
+ -- at the main project file will be parsed before the invocation of the
+ -- gnatcheck. The source directories to be searched will be communicated
+ -- to gnatcheck through logical name ADA_PRJ_INCLUDE_FILE.
+
+ S_Sync_Quiet : aliased constant S := "/QUIET " &
+ "-q";
+ -- /NOQUIET (D)
+ -- /QUIET
+ --
+ -- Work quietly, only output warnings and errors.
+
+ S_Sync_Verb : aliased constant S := "/VERBOSE " &
+ "-v";
+ -- /NOVERBOSE (D)
+ -- /VERBOSE
+ --
+ -- The version number and copyright notice are output, as well as exact
+ -- copies of the gnat1 commands spawned to obtain the chop control
+ -- information.
+
+ S_Sync_Exec : aliased constant S := "/EXECUTION_TIME " &
+ "-t";
+ -- /NOEXECUTION_TIME (D)
+ -- /EXECUTION_TIME
+ --
+ -- Output the execution time
+
+ S_Sync_Details : aliased constant S := "/DETAILs=" &
+ "MEDIUM " &
+ "-om " &
+ "SHORT " &
+ "-os " &
+ "FULL " &
+ "-of";
+ -- /DETAILS[=options]
+ --
+ -- Specifies the details of the output.
+ -- Options may be one of the following:
+ --
+ -- MEDIUM (D)
+ -- SHORT
+ -- FULL
+
+ S_Sync_Warnoff : aliased constant S := "/WARNINGS_OFF " &
+ "-wq";
+ --
+ -- /WARNINGS_OFF
+ --
+ -- Turn warnings off
+
+ S_Sync_Output : aliased constant S := "/OUTPUT_FILE=<" &
+ "-out_file=>";
+ --
+ -- /OUTPUT_FILE=filename
+ --
+ -- Redirect output to a text file
+
+ Sync_Switches : aliased constant Switches :=
+ (S_Sync_Add 'Access,
+ S_Sync_All 'Access,
+ S_Sync_Ext 'Access,
+ S_Sync_Files 'Access,
+ S_Sync_Mess 'Access,
+ S_Sync_Project 'Access,
+ S_Sync_Quiet 'Access,
+ S_Sync_Verb 'Access,
+ S_Sync_Exec 'Access,
+ S_Sync_Details 'Access,
+ S_Sync_Warnoff 'Access,
+ S_Sync_Output 'Access);
+
+ ----------------------------
-- Switches for GNAT CHOP --
----------------------------
@@ -1143,7 +1274,7 @@ package VMS_Data is
-- Allows GNAT to recognize the full range of Ada 95 constructs.
-- This is the normal default for GNAT Pro.
- S_GCC_Ada_05 : aliased constant S := "/05 " &
+ S_GCC_Ada_05 : aliased constant S := "/05 " &
"-gnat05";
-- /05 (D)
--
@@ -1268,7 +1399,7 @@ package VMS_Data is
--
-- Look for source files in the default directory.
- S_GCC_Data : aliased constant S := "/DATA_PREPROCESSING=<" &
+ S_GCC_Data : aliased constant S := "/DATA_PREPROCESSING=<" &
"-gnatep>";
-- /DATA_PREPROCESSING=file_name
--
@@ -1652,7 +1783,7 @@ package VMS_Data is
-- lines from the original source file, output as comment lines with the
-- associated line number.
- S_GCC_Just : aliased constant S := "/JUSTIFY_MESSAGES=#" &
+ S_GCC_Just : aliased constant S := "/JUSTIFY_MESSAGES=#" &
"-gnatj#";
-- /NO_JUSTIFY_MESSAGES (D)
@@ -1665,7 +1796,7 @@ package VMS_Data is
-- behavior (each message counted separately and not reformatted to fit
-- a particular line length) can be obtained using /NO_JUSTIFY_MESSAGES.
- S_GCC_JustX : aliased constant S := "/NO_JUSTIFY_MESSAGES " &
+ S_GCC_JustX : aliased constant S := "/NO_JUSTIFY_MESSAGES " &
"-gnatj0";
-- NODOC (see /JUSTIFY_MESSAGES)
@@ -1686,7 +1817,7 @@ package VMS_Data is
-- a body is compiled, the corresponding spec is also listed, along
-- with any subunits.
- S_GCC_Mapping : aliased constant S := "/MAPPING_FILE=<" &
+ S_GCC_Mapping : aliased constant S := "/MAPPING_FILE=<" &
"-gnatem>";
-- /MAPPING_FILE=file_name
--
@@ -1749,7 +1880,7 @@ package VMS_Data is
-- HIGH A great number of messages are output, most of them not
-- being useful for the user.
- S_GCC_Nesting : aliased constant S := "/MAX_NESTING=#" &
+ S_GCC_Nesting : aliased constant S := "/MAX_NESTING=#" &
"-gnatyL#";
-- /MAX_NESTING=nnn
--
@@ -1796,7 +1927,7 @@ package VMS_Data is
--
-- Do not look in the default directory for source files of the runtime.
- S_GCC_Nostlib : aliased constant S := "/NOSTD_LIBRARIES " &
+ S_GCC_Nostlib : aliased constant S := "/NOSTD_LIBRARIES " &
"-nostdlib";
-- /NOSTD_LIBRARIES
--
@@ -2715,6 +2846,10 @@ package VMS_Data is
"-gnatww " &
"NOLOWBOUND_ASSUMED " &
"-gnatwW " &
+ "WARNINGS_OFF_PRAGMAS " &
+ "-gnatw.w " &
+ "NO_WARNINGS_OFF_PRAGMAS " &
+ "-gnatw.W " &
"IMPORT_EXPORT_PRAGMAS " &
"-gnatwx " &
"NOIMPORT_EXPORT_PRAGMAS " &
@@ -3346,7 +3481,7 @@ package VMS_Data is
-- Switches for GNAT FIND --
----------------------------
- S_Find_Add : aliased constant S := "/ADD_PROJECT_SEARCH_DIR=*" &
+ S_Find_Add : aliased constant S := "/ADD_PROJECT_SEARCH_DIR=*" &
"-aP*";
-- /ADD_PROJECT_SEARCH_PATH==(directory[,...])
--
@@ -3468,7 +3603,7 @@ package VMS_Data is
--
-- This qualifier is not compatible with /PROJECT_FILE
- S_Find_Prj : aliased constant S := "/PROJECT_FILE=<" &
+ S_Find_Prj : aliased constant S := "/PROJECT_FILE=<" &
"-P>";
-- /PROJECT_FILE=filename
--
@@ -3556,7 +3691,7 @@ package VMS_Data is
-- Switches for GNAT LINK --
----------------------------
- S_Link_Add : aliased constant S := "/ADD_PROJECT_SEARCH_DIR=*" &
+ S_Link_Add : aliased constant S := "/ADD_PROJECT_SEARCH_DIR=*" &
"-aP*";
-- /ADD_PROJECT_SEARCH_PATH==(directory[,...])
--
@@ -3772,7 +3907,7 @@ package VMS_Data is
-- Switches for GNAT LIST --
----------------------------
- S_List_Add : aliased constant S := "/ADD_PROJECT_SEARCH_DIR=*" &
+ S_List_Add : aliased constant S := "/ADD_PROJECT_SEARCH_DIR=*" &
"-aP*";
-- /ADD_PROJECT_SEARCH_PATH==(directory[,...])
--
@@ -3973,7 +4108,7 @@ package VMS_Data is
-- have been previously compiled and must be up to date,
-- and the main program need to have been bound.
- S_Make_Add : aliased constant S := "/ADD_PROJECT_SEARCH_DIR=*" &
+ S_Make_Add : aliased constant S := "/ADD_PROJECT_SEARCH_DIR=*" &
"-aP*";
-- /ADD_PROJECT_SEARCH_PATH==(directory[,...])
--
@@ -4157,7 +4292,7 @@ package VMS_Data is
-- are found on the Ada object path, the new object and ALI files are
-- created in the directory containing the source being compiled.
- S_Make_Index : aliased constant S := "/SOURCE_INDEX=#" &
+ S_Make_Index : aliased constant S := "/SOURCE_INDEX=#" &
"-eI#";
-- /SOURCE_INDEX=nnn
--
@@ -4472,7 +4607,7 @@ package VMS_Data is
-- Switches for GNAT METRIC --
------------------------------
- S_Metric_Add : aliased constant S := "/ADD_PROJECT_SEARCH_DIR=*" &
+ S_Metric_Add : aliased constant S := "/ADD_PROJECT_SEARCH_DIR=*" &
"-aP*";
-- /ADD_PROJECT_SEARCH_PATH==(directory[,...])
--
@@ -4486,80 +4621,80 @@ package VMS_Data is
-- specified, the underlying tool gnatmetric is called for all the
-- sources of all the Project Files in the project tree.
- S_Metric_Debug : aliased constant S := "/DEBUG_OUTPUT " &
+ S_Metric_Debug : aliased constant S := "/DEBUG_OUTPUT " &
"-dv";
-- /DEBUG_OUTPUT
--
-- Generate the debug information
- S_Metric_Direct : aliased constant S := "/DIRECTORY=@" &
+ S_Metric_Direct : aliased constant S := "/DIRECTORY=@" &
"-d=@";
-- /DIRECTORY=pathname
--
-- Put the files with detailed metric information into the specified
-- directory
- S_Metric_Element : aliased constant S := "/ELEMENT_METRICS=" &
- "ALL " &
- "!-ed,!-es,!-enl,!-eps," &
- "!-eas,!-ept,!-eat,!-enu," &
- "!-ec " &
- "DECLARATION_TOTAL " &
- "-ed " &
- "STATEMENT_TOTAL " &
- "-es " &
- "LOOP_NESTING_MAX " &
- "-enl " &
- "INT_SUBPROGRAMS " &
- "-eps " &
- "SUBPROGRAMS_ALL " &
- "-eas " &
- "INT_TYPES " &
- "-ept " &
- "TYPES_ALL " &
- "-eat " &
- "PROGRAM_NESTING_MAX " &
- "-enu " &
- "CONSTRUCT_NESTING_MAX " &
+ S_Metric_Element : aliased constant S := "/ELEMENT_METRICS=" &
+ "ALL " &
+ "!-ed,!-es,!-enl,!-eps," &
+ "!-eas,!-ept,!-eat,!-enu," &
+ "!-ec " &
+ "DECLARATION_TOTAL " &
+ "-ed " &
+ "STATEMENT_TOTAL " &
+ "-es " &
+ "LOOP_NESTING_MAX " &
+ "-enl " &
+ "INT_SUBPROGRAMS " &
+ "-eps " &
+ "SUBPROGRAMS_ALL " &
+ "-eas " &
+ "INT_TYPES " &
+ "-ept " &
+ "TYPES_ALL " &
+ "-eat " &
+ "PROGRAM_NESTING_MAX " &
+ "-enu " &
+ "CONSTRUCT_NESTING_MAX " &
"-ec";
-- NODOC (see /SYNTAX_METRICS)
- S_Metric_Syntax : aliased constant S := "/SYNTAX_METRICS=" &
- "ALL_ON " &
- "--syntax-all " &
- "ALL_OFF " &
- "--no-syntax-all " &
- "DECLARATIONS_ON " &
- "--declarations " &
- "DECLARATIONS_OFF " &
- "--no-declarations " &
- "STATEMENTS_ON " &
- "--statements " &
- "STATEMENTS_OFF " &
- "--no-statements " &
- "PUBLIC_SUBPROGRAMS_ON " &
- "--public-subprograms " &
- "PUBLIC_SUBPROGRAMS_OFF " &
- "--no-public-subprograms " &
- "ALL_SUBPROGRAMS_ON " &
- "--all-subprograms " &
- "ALL_SUBPROGRAMS_OFF " &
- "--no-all-subprograms " &
- "PUBLIC_TYPES_ON " &
- "--public-types " &
- "PUBLIC_TYPES_OFF " &
- "--no-public-types " &
- "ALL_TYPES_ON " &
- "--all-types " &
- "ALL_TYPES_OFF " &
- "--no-all-types " &
- "UNIT_NESTING_ON " &
- "--unit-nesting " &
- "UNIT_NESTING_OFF " &
- "--no-unit-nesting " &
- "CONSTRUCT_NESTING_ON " &
- "--construct-nesting " &
- "CONSTRUCT_NESTING_OFF " &
+ S_Metric_Syntax : aliased constant S := "/SYNTAX_METRICS=" &
+ "ALL_ON " &
+ "--syntax-all " &
+ "ALL_OFF " &
+ "--no-syntax-all " &
+ "DECLARATIONS_ON " &
+ "--declarations " &
+ "DECLARATIONS_OFF " &
+ "--no-declarations " &
+ "STATEMENTS_ON " &
+ "--statements " &
+ "STATEMENTS_OFF " &
+ "--no-statements " &
+ "PUBLIC_SUBPROGRAMS_ON " &
+ "--public-subprograms " &
+ "PUBLIC_SUBPROGRAMS_OFF " &
+ "--no-public-subprograms " &
+ "ALL_SUBPROGRAMS_ON " &
+ "--all-subprograms " &
+ "ALL_SUBPROGRAMS_OFF " &
+ "--no-all-subprograms " &
+ "PUBLIC_TYPES_ON " &
+ "--public-types " &
+ "PUBLIC_TYPES_OFF " &
+ "--no-public-types " &
+ "ALL_TYPES_ON " &
+ "--all-types " &
+ "ALL_TYPES_OFF " &
+ "--no-all-types " &
+ "UNIT_NESTING_ON " &
+ "--unit-nesting " &
+ "UNIT_NESTING_OFF " &
+ "--no-unit-nesting " &
+ "CONSTRUCT_NESTING_ON " &
+ "--construct-nesting " &
+ "CONSTRUCT_NESTING_OFF " &
"--no-construct-nesting";
-- /SYNTAX_METRICS(option, option ...)
--
@@ -4598,7 +4733,7 @@ package VMS_Data is
--
-- All combinations of syntax element metrics options are allowed.
- S_Metric_Ext : aliased constant S := "/EXTERNAL_REFERENCE=" & '"' &
+ S_Metric_Ext : aliased constant S := "/EXTERNAL_REFERENCE=" & '"' &
"-X" & '"';
-- /EXTERNAL_REFERENCE="name=val"
--
@@ -4608,21 +4743,21 @@ package VMS_Data is
-- Example:
-- /EXTERNAL_REFERENCE="DEBUG=TRUE"
- S_Metric_Files : aliased constant S := "/FILES=@" &
+ S_Metric_Files : aliased constant S := "/FILES=@" &
"-files=@";
-- /FILES=filename
--
-- Take as arguments the files that are listed in the specified
-- text file.
- S_Metric_Format : aliased constant S := "/FORMAT_OUTPUT=" &
- "DEFAULT " &
- "!-x,!-nt,!-sfn " &
- "XML " &
- "-x " &
- "NO_TEXT " &
- "-nt " &
- "SHORT_SOURCE_FILE_NAME " &
+ S_Metric_Format : aliased constant S := "/FORMAT_OUTPUT=" &
+ "DEFAULT " &
+ "!-x,!-nt,!-sfn " &
+ "XML " &
+ "-x " &
+ "NO_TEXT " &
+ "-nt " &
+ "SHORT_SOURCE_FILE_NAME " &
"-sfn";
-- /FORMAT_OUTPUT=(option, option ...)
--
@@ -4636,64 +4771,64 @@ package VMS_Data is
-- NO_TEXT Do not generate the text output (implies XML)
-- SHORT_SOURCE_FILE_NAME Use short argument source names in output
- S_Metric_Globout : aliased constant S := "/GLOBAL_OUTPUT=@" &
+ S_Metric_Globout : aliased constant S := "/GLOBAL_OUTPUT=@" &
"-og@";
-- /GLOBAL_OUTPUT=filename
--
-- Put the textual global metric information into the specified file
- S_Metric_Line : aliased constant S := "/LINE_METRICS=" &
- "ALL " &
- "!-la,!-lcode,!-lcomm," &
- "!-leol,!-lb " &
- "LINES_ALL " &
- "-la " &
- "CODE_LINES " &
- "-lcode " &
- "COMENT_LINES " &
- "-lcomm " &
- "MIXED_CODE_COMMENTS " &
- "-leol " &
- "COMMENT_PERCENTAGE " &
- "-lratio " &
- "BLANK_LINES " &
- "-lb " &
- "AVERAGE_LINES_IN_BODIES " &
+ S_Metric_Line : aliased constant S := "/LINE_METRICS=" &
+ "ALL " &
+ "!-la,!-lcode,!-lcomm," &
+ "!-leol,!-lb " &
+ "LINES_ALL " &
+ "-la " &
+ "CODE_LINES " &
+ "-lcode " &
+ "COMENT_LINES " &
+ "-lcomm " &
+ "MIXED_CODE_COMMENTS " &
+ "-leol " &
+ "COMMENT_PERCENTAGE " &
+ "-lratio " &
+ "BLANK_LINES " &
+ "-lb " &
+ "AVERAGE_LINES_IN_BODIES " &
"-lav ";
-- NODOC (see /LINE_COUNT_METRICS)
- S_Metric_Lines : aliased constant S := "/LINE_COUNT_METRICS=" &
- "ALL_ON " &
- "--lines-all " &
- "ALL_OFF " &
- "--no-lines-all " &
- "ALL_LINES_ON " &
- "--lines " &
- "ALL_LINES_OFF " &
- "--no-lines " &
- "CODE_LINES_ON " &
- "--lines-code " &
- "CODE_LINES_OFF " &
- "--no-lines-code " &
- "COMMENT_LINES_ON " &
- "--lines-comment " &
- "COMMENT_LINES_OFF " &
- "--no-lines-comment " &
- "CODE_COMMENT_LINES_ON " &
- "--lines-eol-comment " &
- "CODE_COMMENT_LINES_OFF " &
- "--no-lines-eol-comment " &
- "COMMENT_PERCENTAGE_ON " &
- "--lines-ratio " &
- "COMMENT_PERCENTAGE_OFF " &
- "--no-lines-ratio " &
- "BLANK_LINES_ON " &
- "--lines-blank " &
- "BLANK_LINES_OFF " &
- "--no-lines-blank " &
- "AVERAGE_BODY_LINES_ON " &
- "--lines-average " &
- "AVERAGE_BODY_LINES_OFF " &
+ S_Metric_Lines : aliased constant S := "/LINE_COUNT_METRICS=" &
+ "ALL_ON " &
+ "--lines-all " &
+ "ALL_OFF " &
+ "--no-lines-all " &
+ "ALL_LINES_ON " &
+ "--lines " &
+ "ALL_LINES_OFF " &
+ "--no-lines " &
+ "CODE_LINES_ON " &
+ "--lines-code " &
+ "CODE_LINES_OFF " &
+ "--no-lines-code " &
+ "COMMENT_LINES_ON " &
+ "--lines-comment " &
+ "COMMENT_LINES_OFF " &
+ "--no-lines-comment " &
+ "CODE_COMMENT_LINES_ON " &
+ "--lines-eol-comment " &
+ "CODE_COMMENT_LINES_OFF " &
+ "--no-lines-eol-comment " &
+ "COMMENT_PERCENTAGE_ON " &
+ "--lines-ratio " &
+ "COMMENT_PERCENTAGE_OFF " &
+ "--no-lines-ratio " &
+ "BLANK_LINES_ON " &
+ "--lines-blank " &
+ "BLANK_LINES_OFF " &
+ "--no-lines-blank " &
+ "AVERAGE_BODY_LINES_ON " &
+ "--lines-average " &
+ "AVERAGE_BODY_LINES_OFF " &
"--no-lines-average";
-- /LINE_COUNT_METRICS=(option, option ...)
@@ -4729,26 +4864,26 @@ package VMS_Data is
--
-- All combinations of line metrics options are allowed.
- S_Metric_Complexity : aliased constant S := "/COMPLEXITY_METRICS=" &
- "ALL_ON " &
- "--complexity-all " &
- "ALL_OFF " &
- "--no-complexity-all " &
- "CYCLOMATIC_ON " &
- "--complexity-cyclomatic " &
- "CYCLOMATIC_OFF " &
- "--no-complexity-cyclomatic " &
- "ESSENTIAL_ON " &
- "--complexity-essential " &
- "ESSENTIAL_OFF " &
- "--no-complexity-essential " &
- "LOOP_NESTING_ON " &
- "--loop-nesting " &
- "LOOP_NESTING_OFF " &
- "--no-loop-nesting " &
- "AVERAGE_COMPLEXITY_ON " &
- "--complexity-average " &
- "AVERAGE_COMPLEXITY_OFF " &
+ S_Metric_Complexity : aliased constant S := "/COMPLEXITY_METRICS=" &
+ "ALL_ON " &
+ "--complexity-all " &
+ "ALL_OFF " &
+ "--no-complexity-all " &
+ "CYCLOMATIC_ON " &
+ "--complexity-cyclomatic " &
+ "CYCLOMATIC_OFF " &
+ "--no-complexity-cyclomatic "&
+ "ESSENTIAL_ON " &
+ "--complexity-essential " &
+ "ESSENTIAL_OFF " &
+ "--no-complexity-essential " &
+ "LOOP_NESTING_ON " &
+ "--loop-nesting " &
+ "LOOP_NESTING_OFF " &
+ "--no-loop-nesting " &
+ "AVERAGE_COMPLEXITY_ON " &
+ "--complexity-average " &
+ "AVERAGE_COMPLEXITY_OFF " &
"--no-complexity-average";
-- /COMPLEXITY_METRICS=(option, option ...)
@@ -4790,12 +4925,12 @@ package VMS_Data is
-- Do not count EXIT statements as GOTOs when computing the Essential
-- Complexity.
- S_Metric_Mess : aliased constant S := "/MESSAGES_PROJECT_FILE=" &
- "DEFAULT " &
- "-vP0 " &
- "MEDIUM " &
- "-vP1 " &
- "HIGH " &
+ S_Metric_Mess : aliased constant S := "/MESSAGES_PROJECT_FILE=" &
+ "DEFAULT " &
+ "-vP0 " &
+ "MEDIUM " &
+ "-vP1 " &
+ "HIGH " &
"-vP2";
-- /MESSAGES_PROJECT_FILE[=messages-option]
--
@@ -4809,7 +4944,7 @@ package VMS_Data is
-- HIGH A great number of messages are output, most of them not
-- being useful for the user.
- S_Metric_Project : aliased constant S := "/PROJECT_FILE=<" &
+ S_Metric_Project : aliased constant S := "/PROJECT_FILE=<" &
"-P>";
-- /PROJECT_FILE=filename
--
@@ -4817,7 +4952,7 @@ package VMS_Data is
-- at the main project file will be parsed before the invocation of the
-- binder.
- S_Metric_Quiet : aliased constant S := "/QUIET " &
+ S_Metric_Quiet : aliased constant S := "/QUIET " &
"-q";
-- /NOQUIET (D)
-- /QUIET
@@ -4826,37 +4961,37 @@ package VMS_Data is
-- the number of program units left to be processed. This option turns
-- this trace off.
- S_Metric_Suffix : aliased constant S := "/SUFFIX_DETAILS=" & '"' &
+ S_Metric_Suffix : aliased constant S := "/SUFFIX_DETAILS=" & '"' &
"-o" & '"';
-- /SUFFIX_DETAILS=suffix
--
-- Use the given suffix as the suffix for the name of the file to place
-- the detailed metrics into.
- S_Metric_Suppress : aliased constant S := "/SUPPRESS=" &
- "NOTHING " &
- "!-nocc,!-noec,!-nonl," &
- "!-ne,!-nolocal " &
- "CYCLOMATIC_COMPLEXITY " &
- "-nocc " &
- "ESSENTIAL_COMPLEXITY " &
- "-noec " &
- "MAXIMAL_LOOP_NESTING " &
- "-nonl " &
- "EXITS_AS_GOTOS " &
- "-ne " &
- "LOCAL_DETAILS " &
+ S_Metric_Suppress : aliased constant S := "/SUPPRESS=" &
+ "NOTHING " &
+ "!-nocc,!-noec,!-nonl," &
+ "!-ne,!-nolocal " &
+ "CYCLOMATIC_COMPLEXITY " &
+ "-nocc " &
+ "ESSENTIAL_COMPLEXITY " &
+ "-noec " &
+ "MAXIMAL_LOOP_NESTING " &
+ "-nonl " &
+ "EXITS_AS_GOTOS " &
+ "-ne " &
+ "LOCAL_DETAILS " &
"-nolocal ";
-- NODOC (see /COMPLEXITY_METRICS /NO_LOCAL_DETAILS /NO_EXITS_AS_GOTOS)
- S_Metric_Verbose : aliased constant S := "/VERBOSE " &
+ S_Metric_Verbose : aliased constant S := "/VERBOSE " &
"-v";
-- /NOVERBOSE (D)
-- /VERBOSE
--
-- Verbose mode.
- S_Metric_XMLout : aliased constant S := "/XML_OUTPUT=@" &
+ S_Metric_XMLout : aliased constant S := "/XML_OUTPUT=@" &
"-ox@";
-- /XML_OUTPUT=filename
--
@@ -5079,7 +5214,7 @@ package VMS_Data is
-- Switches for GNAT PRETTY --
------------------------------
- S_Pretty_Add : aliased constant S := "/ADD_PROJECT_SEARCH_DIR=*" &
+ S_Pretty_Add : aliased constant S := "/ADD_PROJECT_SEARCH_DIR=*" &
"-aP*";
-- /ADD_PROJECT_SEARCH_PATH==(directory[,...])
--
@@ -5120,7 +5255,7 @@ package VMS_Data is
-- Specifying one of the ON options without first specifying the OFF
-- option has no effect, because by default all alignments are set to ON.
- S_Pretty_All_Prjs : aliased constant S := "/ALL_PROJECTS " &
+ S_Pretty_All_Prjs : aliased constant S := "/ALL_PROJECTS " &
"-U";
-- /NOALL_PROJECTS (D)
-- /ALL_PROJECTS
@@ -5293,7 +5428,7 @@ package VMS_Data is
-- Do not place the THEN keyword in IF statement and the LOOP keyword in
-- for- and while-loops on a separate line.
- S_Pretty_Use_On_New_Line : aliased constant S := "/USE_ON_NEW_LINE " &
+ S_Pretty_Use_On_New_Line : aliased constant S := "/USE_ON_NEW_LINE " &
"--use-on-new-line";
-- /USE_ON_NEW_LINE
--
@@ -5495,7 +5630,7 @@ package VMS_Data is
--
-- MIXED_CASE Names are in mixed case.
- S_Pretty_No_Backup : aliased constant S := "/NO_BACKUP " &
+ S_Pretty_No_Backup : aliased constant S := "/NO_BACKUP " &
"-rnb";
-- /REPLACE_NO_BACKUP
--
@@ -5739,7 +5874,7 @@ package VMS_Data is
-- Switches for GNAT STACK --
-----------------------------
- S_Stack_Add : aliased constant S := "/ADD_PROJECT_SEARCH_DIR=*" &
+ S_Stack_Add : aliased constant S := "/ADD_PROJECT_SEARCH_DIR=*" &
"-aP*";
-- /ADD_PROJECT_SEARCH_PATH==(directory[,...])
--
@@ -5925,7 +6060,7 @@ package VMS_Data is
-- Switches for GNAT STUB --
----------------------------
- S_Stub_Add : aliased constant S := "/ADD_PROJECT_SEARCH_DIR=*" &
+ S_Stub_Add : aliased constant S := "/ADD_PROJECT_SEARCH_DIR=*" &
"-aP*";
-- /ADD_PROJECT_SEARCH_PATH==(directory[,...])
--
@@ -5983,6 +6118,14 @@ package VMS_Data is
-- preceding the compilation unit) from the source of the
-- library unit declaration into the body stub.
+ S_Stub_Header_File : aliased constant S := "/FROM_HEADER_FILE=<" &
+ "--header-file=>";
+
+ -- /FROM_HEADER_FILE==filename
+ --
+ -- Use the content of the file as the comment header for a generated body
+ -- stub.
+
S_Stub_Indent : aliased constant S := "/INDENTATION=#" &
"-i#";
-- /INDENTATION=nnn
@@ -6099,28 +6242,29 @@ package VMS_Data is
-- Verbose mode: generate version information.
Stub_Switches : aliased constant Switches :=
- (S_Stub_Add 'Access,
- S_Stub_Config 'Access,
- S_Stub_Current 'Access,
- S_Stub_Ext 'Access,
- S_Stub_Full 'Access,
- S_Stub_Header 'Access,
- S_Stub_Indent 'Access,
- S_Stub_Keep 'Access,
- S_Stub_Length 'Access,
- S_Stub_Mess 'Access,
- S_Stub_Output 'Access,
- S_Stub_Project 'Access,
- S_Stub_Quiet 'Access,
- S_Stub_Search 'Access,
- S_Stub_Tree 'Access,
- S_Stub_Verbose 'Access);
+ (S_Stub_Add 'Access,
+ S_Stub_Config 'Access,
+ S_Stub_Current 'Access,
+ S_Stub_Ext 'Access,
+ S_Stub_Full 'Access,
+ S_Stub_Header 'Access,
+ S_Stub_Header_File'Access,
+ S_Stub_Indent 'Access,
+ S_Stub_Keep 'Access,
+ S_Stub_Length 'Access,
+ S_Stub_Mess 'Access,
+ S_Stub_Output 'Access,
+ S_Stub_Project 'Access,
+ S_Stub_Quiet 'Access,
+ S_Stub_Search 'Access,
+ S_Stub_Tree 'Access,
+ S_Stub_Verbose 'Access);
----------------------------
-- Switches for GNAT XREF --
----------------------------
- S_Xref_Add : aliased constant S := "/ADD_PROJECT_SEARCH_DIR=*" &
+ S_Xref_Add : aliased constant S := "/ADD_PROJECT_SEARCH_DIR=*" &
"-aP*";
-- /ADD_PROJECT_SEARCH_PATH==(directory[,...])
--