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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [ada/] [vms_conv.ads] - Blame information for rev 728

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

Line No. Rev Author Line
1 706 jeremybenn
------------------------------------------------------------------------------
2
--                                                                          --
3
--                         GNAT COMPILER COMPONENTS                         --
4
--                                                                          --
5
--                            V M S _ C O N V                               --
6
--                                                                          --
7
--                                 S p e c                                  --
8
--                                                                          --
9
--          Copyright (C) 2003-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
--  This package is part of the GNAT driver. It contains the procedure
27
--  VMS_Conversion to convert a VMS command line to the equivalent command
28
--  line with switches for the GNAT tools that the GNAT driver will invoke.
29
--  The qualifier declarations are contained in package VMS_Data.
30
 
31
with Table;
32
with VMS_Data; use VMS_Data;
33
with VMS_Cmds; use VMS_Cmds;
34
 
35
with GNAT.OS_Lib; use GNAT.OS_Lib;
36
 
37
package VMS_Conv is
38
 
39
   --  A table to keep the switches on the command line
40
 
41
   package Last_Switches is new Table.Table
42
     (Table_Component_Type => String_Access,
43
      Table_Index_Type     => Integer,
44
      Table_Low_Bound      => 1,
45
      Table_Initial        => 20,
46
      Table_Increment      => 100,
47
      Table_Name           => "Gnatcmd.Last_Switches");
48
 
49
   Normal_Exit : exception;
50
   --  Raise this exception for normal program termination
51
 
52
   Error_Exit : exception;
53
   --  Raise this exception if error detected
54
 
55
   Errors : Natural := 0;
56
   --  Count errors detected
57
 
58
   Display_Command : Boolean := False;
59
   --  Set true if /? switch causes display of generated command (on VMS)
60
 
61
   -------------------
62
   -- Command Table --
63
   -------------------
64
 
65
   --  The command table contains an entry for each command recognized by
66
   --  GNATCmd. The entries are represented by an array of records.
67
 
68
   type Parameter_Type is
69
   --  A parameter is defined as a whitespace bounded string, not beginning
70
   --   with a slash. (But see note under FILES_OR_WILDCARD).
71
     (File,
72
      --  A required file or directory parameter
73
 
74
      Optional_File,
75
      --  An optional file or directory parameter
76
 
77
      Other_As_Is,
78
      --  A parameter that's passed through as is (not canonicalized)
79
 
80
      Unlimited_Files,
81
      --  An unlimited number of whitespace separate file or directory
82
      --  parameters including wildcard specifications.
83
 
84
      Unlimited_As_Is,
85
      --  An unlimited number of whitespace separated parameters that are
86
      --  passed through as is (not canonicalized).
87
 
88
      Files_Or_Wildcard);
89
      --  A comma separated list of files and/or wildcard file specifications.
90
      --  A comma preceded by or followed by whitespace is considered as a
91
      --  single comma character w/o whitespace.
92
 
93
   type Parameter_Array is array (Natural range <>) of Parameter_Type;
94
   type Parameter_Ref is access all Parameter_Array;
95
 
96
   type Alternate_Command is (Comp, Ls, Kr, Pp, Prep);
97
   --  Alternate command label for non VMS system use
98
 
99
   Corresponding_To : constant array (Alternate_Command) of Command_Type :=
100
     (Comp  => Compile,
101
      Ls    => List,
102
      Kr    => Krunch,
103
      Prep  => Preprocess,
104
      Pp    => Pretty);
105
   --  Mapping of alternate commands to commands
106
 
107
   subtype Real_Command_Type is Command_Type range Bind .. Xref;
108
 
109
   type Command_Entry is record
110
      Cname : String_Ptr;
111
      --  Command name for GNAT xxx command
112
 
113
      Usage : String_Ptr;
114
      --  A usage string, used for error messages
115
 
116
      Unixcmd : String_Ptr;
117
      --  Corresponding Unix command
118
 
119
      Unixsws : Argument_List_Access;
120
      --  Switches for the Unix command
121
 
122
      VMS_Only : Boolean;
123
      --  When True, the command can only be used on VMS
124
 
125
      Switches : Switches_Ptr;
126
      --  Pointer to array of switch strings
127
 
128
      Params : Parameter_Ref;
129
      --  Describes the allowable types of parameters.
130
      --  Params (1) is the type of the first parameter, etc.
131
      --  An empty parameter array means this command takes no parameters.
132
 
133
      Defext : String (1 .. 3);
134
      --  Default extension. If non-blank, then this extension is supplied by
135
      --  default as the extension for any file parameter which does not have
136
      --  an extension already.
137
   end record;
138
 
139
   -------------------
140
   -- Switch Tables --
141
   -------------------
142
 
143
   --  The switch tables contain an entry for each switch recognized by the
144
   --  command processor. It is initialized by procedure Initialize.
145
 
146
   Command_List : array (Real_Command_Type) of Command_Entry;
147
 
148
   ----------------
149
   -- Procedures --
150
   ----------------
151
 
152
   procedure Initialize;
153
   --  Initialized the switch table Command_List
154
 
155
   procedure Output_Version;
156
   --  Output the version of this program
157
 
158
   procedure VMS_Conversion (The_Command : out Command_Type);
159
   --  Converts VMS command line to equivalent Unix command line
160
 
161
end VMS_Conv;

powered by: WebSVN 2.1.0

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