]>
Commit | Line | Data |
---|---|---|
70482933 RK |
1 | ------------------------------------------------------------------------------ |
2 | -- -- | |
3 | -- GNAT COMPILER COMPONENTS -- | |
4 | -- -- | |
5 | -- B A C K _ E N D -- | |
6 | -- -- | |
7 | -- S p e c -- | |
8 | -- -- | |
66647d44 | 9 | -- Copyright (C) 1992-2008, Free Software Foundation, Inc. -- |
70482933 RK |
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- -- | |
b5c84c3c | 13 | -- ware Foundation; either version 3, or (at your option) any later ver- -- |
70482933 RK |
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 -- | |
b5c84c3c RD |
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. -- | |
70482933 RK |
20 | -- -- |
21 | -- GNAT was originally developed by the GNAT team at New York University. -- | |
71ff80dc | 22 | -- Extensive contributions were provided by Ada Core Technologies Inc. -- |
70482933 RK |
23 | -- -- |
24 | ------------------------------------------------------------------------------ | |
25 | ||
26 | -- Call the back end with all the information needed. Also contains other | |
27 | -- back-end specific interfaces required by the front end. | |
28 | ||
29 | package Back_End is | |
30 | ||
31 | type Back_End_Mode_Type is ( | |
32 | Generate_Object, | |
33 | -- Full back end operation with object file generation | |
34 | ||
35 | Declarations_Only, | |
36 | -- Partial back end operation with no object file generation. In this | |
37 | -- mode the only useful action performed by gigi is to process all | |
38 | -- declarations issuing any error messages (in partcicular those to | |
39 | -- do with rep clauses), and to back annotate representation info. | |
40 | ||
41 | Skip); | |
42 | -- Back end call is skipped (syntax only, or errors found) | |
43 | ||
44 | pragma Convention (C, Back_End_Mode_Type); | |
45 | for Back_End_Mode_Type use (0, 1, 2); | |
46 | ||
47 | procedure Call_Back_End (Mode : Back_End_Mode_Type); | |
48 | -- Call back end, i.e. make call to driver traversing the tree and | |
49 | -- outputting code. This call is made with all tables locked. | |
50 | -- The back end is responsible for unlocking any tables it may need | |
51 | -- to change, and locking them again before returning. | |
52 | ||
53 | procedure Scan_Compiler_Arguments; | |
54 | -- Acquires command-line parameters passed to the compiler and processes | |
f53f9dd7 | 55 | -- them. Calls Scan_Front_End_Switches for any front-end switches found. |
70482933 | 56 | -- |
f53f9dd7 RD |
57 | -- The processing of arguments is private to the back end, since the way |
58 | -- of acquiring the arguments as well as the set of allowable back end | |
59 | -- switches is different depending on the particular back end being used. | |
70482933 | 60 | -- |
f53f9dd7 RD |
61 | -- Any processed switches that influence the result of a compilation must |
62 | -- be added to the Compilation_Arguments table. | |
70482933 RK |
63 | |
64 | end Back_End; |