8sa1-gcc/gcc/ada/vms_conv.ads
Arnaud Charlet 9d983bbf20 [multiple changes]
2010-09-09  Matthew Heaney  <heaney@adacore.com>

	* a-convec.adb, a-coinve.adb (Clear, Delete, Delete_Last, Finalize,
	Merge, Insert, Insert_Space, Move, Reserve_Capacity, Generic_Sorting,
	Replace_Element, Reverse_Elements, Swap): Change exception message to
	correctly indicate kind of tampering (cursor or element).
	* a-cdlili.adb, a-cidlli.adb (Clear, Delete, Delete_First, Delete_Last,
	Merge, Generic_Sorting, Insert, Move, Reverse_Elements, Splice,
	Swap_Links, Replace_Element, Swap): Ditto.
	* a-coorse.adb, a-ciorse.adb (Include, Replace, Replace_Element): Ditto
	* a-coorma.adb, a-ciorma.adb (Include, Replace, Replace_Element): Ditto
	* a-coormu.adb, a-ciormu.adb (Replace_Element): Ditto
	* a-chtgke.adb (Delete_Key_Sans_Free, Generic_Conditional_Insert,
	Generic_Replace_Element): Ditto
	* a-chtgop.adb (Clear, Move, Reserve_Capacity): Ditto
	* a-cohama.adb, a-cihama.adb (Delete, Include, Replace,
	Replace_Element): Ditto.
	* a-cohase.adb, a-cihase.adb (Delete, Difference, Intersection,
	Symmetric_Difference, Union, Include, Replace): Ditto

2010-09-09  Ed Schonberg  <schonberg@adacore.com>

	* sprint.adb (Write_Id): If the parent node is an expanded name, check
	that its entity_or_associated_node is an entity before writing it out.
	* exp_disp.adb (Make_Tags); if a type is declared in C++ and has no
	constructors, there is no need for a dispatch table pointer because the
	table is fully inherited from the C++ code.

2010-09-09  Thomas Quinot  <quinot@adacore.com>

	* projects.texi: Fix wrong identifiers on package end lines in project
	files examples.
	* exp_ch6.adb: Minor reformatting.

2010-09-09  Tristan Gingold  <gingold@adacore.com>

	* gnatcmd.adb, vms_conv.ads, vms_help.adb, vms_cmds.ads: Extract
	Command_Type from vms_conv.ads.

2010-09-09  Eric Botcazou  <ebotcazou@adacore.com>

	* gnat_ugn.texi: Fix description of -O3 optimization level.

From-SVN: r164092
2010-09-09 15:38:12 +02:00

162 lines
6.1 KiB
Ada

------------------------------------------------------------------------------
-- --
-- GNAT COMPILER COMPONENTS --
-- --
-- V M S _ C O N V --
-- --
-- S p e c --
-- --
-- Copyright (C) 2003-2010, 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- --
-- ware Foundation; either version 3, or (at your option) any later ver- --
-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
-- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
-- for more details. You should have received a copy of the GNU General --
-- Public License distributed with GNAT; see file COPYING3. If not, go to --
-- http://www.gnu.org/licenses for a complete copy of the license. --
-- --
-- GNAT was originally developed by the GNAT team at New York University. --
-- Extensive contributions were provided by Ada Core Technologies Inc. --
-- --
------------------------------------------------------------------------------
-- This package is part of the GNAT driver. It contains the procedure
-- VMS_Conversion to convert a VMS command line to the equivalent command
-- line with switches for the GNAT tools that the GNAT driver will invoke.
-- The qualifier declarations are contained in package VMS_Data.
with Table;
with VMS_Data; use VMS_Data;
with VMS_Cmds; use VMS_Cmds;
with GNAT.OS_Lib; use GNAT.OS_Lib;
package VMS_Conv is
-- A table to keep the switches on the command line
package Last_Switches is new Table.Table
(Table_Component_Type => String_Access,
Table_Index_Type => Integer,
Table_Low_Bound => 1,
Table_Initial => 20,
Table_Increment => 100,
Table_Name => "Gnatcmd.Last_Switches");
Normal_Exit : exception;
-- Raise this exception for normal program termination
Error_Exit : exception;
-- Raise this exception if error detected
Errors : Natural := 0;
-- Count errors detected
Display_Command : Boolean := False;
-- Set true if /? switch causes display of generated command (on VMS)
-------------------
-- Command Table --
-------------------
-- The command table contains an entry for each command recognized by
-- GNATCmd. The entries are represented by an array of records.
type Parameter_Type is
-- A parameter is defined as a whitespace bounded string, not beginning
-- with a slash. (But see note under FILES_OR_WILDCARD).
(File,
-- A required file or directory parameter
Optional_File,
-- An optional file or directory parameter
Other_As_Is,
-- A parameter that's passed through as is (not canonicalized)
Unlimited_Files,
-- An unlimited number of whitespace separate file or directory
-- parameters including wildcard specifications.
Unlimited_As_Is,
-- An unlimited number of whitespace separated parameters that are
-- passed through as is (not canonicalized).
Files_Or_Wildcard);
-- A comma separated list of files and/or wildcard file specifications.
-- A comma preceded by or followed by whitespace is considered as a
-- single comma character w/o whitespace.
type Parameter_Array is array (Natural range <>) of Parameter_Type;
type Parameter_Ref is access all Parameter_Array;
type Alternate_Command is (Comp, Ls, Kr, Pp, Prep);
-- Alternate command label for non VMS system use
Corresponding_To : constant array (Alternate_Command) of Command_Type :=
(Comp => Compile,
Ls => List,
Kr => Krunch,
Prep => Preprocess,
Pp => Pretty);
-- Mapping of alternate commands to commands
subtype Real_Command_Type is Command_Type range Bind .. Xref;
type Command_Entry is record
Cname : String_Ptr;
-- Command name for GNAT xxx command
Usage : String_Ptr;
-- A usage string, used for error messages
Unixcmd : String_Ptr;
-- Corresponding Unix command
Unixsws : Argument_List_Access;
-- Switches for the Unix command
VMS_Only : Boolean;
-- When True, the command can only be used on VMS
Switches : Switches_Ptr;
-- Pointer to array of switch strings
Params : Parameter_Ref;
-- Describes the allowable types of parameters.
-- Params (1) is the type of the first parameter, etc.
-- An empty parameter array means this command takes no parameters.
Defext : String (1 .. 3);
-- Default extension. If non-blank, then this extension is supplied by
-- default as the extension for any file parameter which does not have
-- an extension already.
end record;
-------------------
-- Switch Tables --
-------------------
-- The switch tables contain an entry for each switch recognized by the
-- command processor. It is initialized by procedure Initialize.
Command_List : array (Real_Command_Type) of Command_Entry;
----------------
-- Procedures --
----------------
procedure Initialize;
-- Initialized the switch table Command_List
procedure Output_Version;
-- Output the version of this program
procedure VMS_Conversion (The_Command : out Command_Type);
-- Converts VMS command line to equivalent Unix command line
end VMS_Conv;