OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gcc-4.5.1/] [gcc/] [ada/] [vms_conv.ads] - Rev 816

Go to most recent revision | Compare with Previous | Blame | View Log

------------------------------------------------------------------------------
--                                                                          --
--                         GNAT COMPILER COMPONENTS                         --
--                                                                          --
--                            V M S _ C O N V                               --
--                                                                          --
--                                 S p e c                                  --
--                                                                          --
--          Copyright (C) 2003-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- --
-- 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 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 Command_Type is
     (Bind,
      Chop,
      Clean,
      Compile,
      Check,
      Sync,
      Elim,
      Find,
      Krunch,
      Link,
      List,
      Make,
      Metric,
      Name,
      Preprocess,
      Pretty,
      Shared,
      Stack,
      Stub,
      Xref,
      Undefined);
 
   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;
 

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.