1 /****************************************************************************
3 * GNAT COMPILER COMPONENTS *
11 * Copyright (C) 1992-2001 Free Software Foundation, Inc. *
13 * GNAT is free software; you can redistribute it and/or modify it under *
14 * terms of the GNU General Public License as published by the Free Soft- *
15 * ware Foundation; either version 2, or (at your option) any later ver- *
16 * sion. GNAT is distributed in the hope that it will be useful, but WITH- *
17 * OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY *
18 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License *
19 * for more details. You should have received a copy of the GNU General *
20 * Public License distributed with GNAT; see file COPYING. If not, write *
21 * to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, *
22 * MA 02111-1307, USA. *
24 * GNAT was originally developed by the GNAT team at New York University. *
25 * Extensive contributions were provided by Ada Core Technologies Inc. *
27 ****************************************************************************/
29 /* This is the C file that corresponds to the Ada package specification
30 Snames. It was created manually from the file snames.ads. */
34 #define Name_uParent (First_Name_Id + 256 + 0)
35 #define Name_uTag (First_Name_Id + 256 + 1)
36 #define Name_Off (First_Name_Id + 256 + 2)
37 #define Name_Space (First_Name_Id + 256 + 3)
38 #define Name_Time (First_Name_Id + 256 + 4)
39 #define Name_uInit_Proc (First_Name_Id + 256 + 5)
40 #define Name_uSize (First_Name_Id + 256 + 6)
42 /* Define the function to return one of the numeric values below. Note
43 that it actually returns a char since an enumeration value of less
44 than 256 entries is represented that way in Ada. The operand is a Chars
47 #define Get_Attribute_Id snames__get_attribute_id
48 extern char Get_Attribute_Id
PARAMS ((int));
50 /* Define the numeric values for the attributes. */
52 #define Attr_Abort_Signal 0
54 #define Attr_Address 2
55 #define Attr_Address_Size 3
57 #define Attr_Alignment 5
58 #define Attr_Asm_Input 6
59 #define Attr_Asm_Output 7
60 #define Attr_AST_Entry 8
62 #define Attr_Bit_Order 10
63 #define Attr_Bit_Position 11
64 #define Attr_Body_Version 12
65 #define Attr_Callable 13
66 #define Attr_Caller 14
67 #define Attr_Code_Address 15
68 #define Attr_Component_Size 16
69 #define Attr_Compose 17
70 #define Attr_Constrained 18
72 #define Attr_Default_Bit_Order 20
73 #define Attr_Definite 21
75 #define Attr_Denorm 23
76 #define Attr_Digits 24
77 #define Attr_Elaborated 25
79 #define Attr_Enum_Rep 27
80 #define Attr_Epsilon 28
81 #define Attr_Exponent 29
82 #define Attr_External_Tag 30
84 #define Attr_First_Bit 32
85 #define Attr_Fixed_Value 33
87 #define Attr_Has_Discriminants 35
88 #define Attr_Identity 36
90 #define Attr_Integer_Value 38
93 #define Attr_Last_Bit 41
94 #define Attr_Leading_Part 42
95 #define Attr_Length 43
96 #define Attr_Machine_Emax 44
97 #define Attr_Machine_Emin 45
98 #define Attr_Machine_Mantissa 46
99 #define Attr_Machine_Overflows 47
100 #define Attr_Machine_Radix 48
101 #define Attr_Machine_Rounds 49
102 #define Attr_Machine_Size 50
103 #define Attr_Mantissa 51
104 #define Attr_Max_Interrupt_Priority 52
105 #define Attr_Max_Priority 53
106 #define Attr_Max_Size_In_Storage_Elements 54
107 #define Attr_Maximum_Alignment 55
108 #define Attr_Mechanism_Code 56
109 #define Attr_Model_Emin 57
110 #define Attr_Model_Epsilon 58
111 #define Attr_Model_Mantissa 59
112 #define Attr_Model_Small 60
113 #define Attr_Modulus 61
114 #define Attr_Null_Parameter 62
115 #define Attr_Object_Size 63
116 #define Attr_Partition_ID 64
117 #define Attr_Passed_By_Reference 65
119 #define Attr_Position 67
120 #define Attr_Range 68
121 #define Attr_Range_Length 69
122 #define Attr_Round 70
123 #define Attr_Safe_Emax 71
124 #define Attr_Safe_First 72
125 #define Attr_Safe_Large 73
126 #define Attr_Safe_Last 74
127 #define Attr_Safe_Small 75
128 #define Attr_Scale 76
129 #define Attr_Scaling 77
130 #define Attr_Signed_Zeros 78
132 #define Attr_Small 80
133 #define Attr_Storage_Size 81
134 #define Attr_Storage_Unit 82
136 #define Attr_Terminated 84
138 #define Attr_To_Address 86
139 #define Attr_Type_Class 87
140 #define Attr_UET_Address 88
141 #define Attr_Unbiased_Rounding 89
142 #define Attr_Unchecked_Access 90
143 #define Attr_Universal_Literal_String 91
144 #define Attr_Unrestricted_Access 92
145 #define Attr_VADS_Size 93
147 #define Attr_Valid 95
148 #define Attr_Value_Size 96
149 #define Attr_Version 97
150 #define Attr_Wide_Character_Size 98
151 #define Attr_Wide_Width 99
152 #define Attr_Width 100
153 #define Attr_Word_Size 101
155 #define Attr_Adjacent 102
156 #define Attr_Ceiling 103
157 #define Attr_Copy_Sign 104
158 #define Attr_Floor 105
159 #define Attr_Fraction 106
160 #define Attr_Image 107
161 #define Attr_Input 108
162 #define Attr_Machine 109
165 #define Attr_Model 112
166 #define Attr_Pred 113
167 #define Attr_Remainder 114
168 #define Attr_Rounding 115
169 #define Attr_Succ 116
170 #define Attr_Truncation 117
171 #define Attr_Value 118
172 #define Attr_Wide_Image 119
173 #define Attr_Wide_Value 120
175 #define Attr_Output 121
176 #define Attr_Read 122
177 #define Attr_Write 123
179 #define Attr_Elab_Body 124
180 #define Attr_Elab_Spec 125
181 #define Attr_Storage_Pool 126
183 #define Attr_Base 127
184 #define Attr_Class 128
186 /* Define the function to check if a Name_Id value is a valid pragma */
188 #define Is_Pragma_Name snames__is_pragma_name
189 extern Boolean Is_Pragma_Name
PARAMS ((Name_Id
));
191 /* Define the function to return one of the numeric values below. Note
192 that it actually returns a char since an enumeration value of less
193 than 256 entries is represented that way in Ada. The operand is a Chars
196 #define Get_Pragma_Id snames__get_pragma_id
197 extern char Get_Pragma_Id
PARAMS ((int));
199 /* Define the numeric values for the pragmas. */
201 /* Configuration pragmas first */
203 #define Pragma_Ada_83 0
204 #define Pragma_Ada_95 1
205 #define Pragma_C_Pass_By_Copy 2
206 #define Pragma_Component_Alignment 3
207 #define Pragma_Discard_Names 4
208 #define Pragma_Elaboration_Checking 5
209 #define Pragma_Eliminate 6
210 #define Pragma_Extend_System 7
211 #define Pragma_Extensions_Allowed 8
212 #define Pragma_External_Name_Casing 9
213 #define Pragma_Float_Representation 10
214 #define Pragma_Initialize 11
215 #define Pragma_License 12
216 #define Pragma_Locking_Policy 13
217 #define Pragma_Long_Float 14
218 #define Pragma_No_Run_Time 15
219 #define Pragma_Normalize_Scalars 16
220 #define Pragma_Polling 17
221 #define Pragma_Propagate_Exceptions 18
222 #define Pragma_Queuing_Policy 19
223 #define Pragma_Ravenscar 20
224 #define Pragma_Restricted_Run_Time 21
225 #define Pragma_Restrictions 22
226 #define Pragma_Reviewable 23
227 #define Pragma_Source_File_Name 24
228 #define Pragma_Style_Checks 25
229 #define Pragma_Suppress 26
230 #define Pragma_Task_Dispatching_Policy 27
231 #define Pragma_Unsuppress 28
232 #define Pragma_Use_VADS_Size 29
233 #define Pragma_Validity_Checks 30
234 #define Pragma_Warnings 31
236 /* Remaining pragmas */
238 #define Pragma_Abort_Defer 32
239 #define Pragma_All_Calls_Remote 33
240 #define Pragma_Annotate 34
241 #define Pragma_Assert 35
242 #define Pragma_Asynchronous 36
243 #define Pragma_Atomic 37
244 #define Pragma_Atomic_Components 38
245 #define Pragma_Attach_Handler 39
246 #define Pragma_Comment 40
247 #define Pragma_Common_Object 41
248 #define Pragma_Complex_Representation 42
249 #define Pragma_Controlled 43
250 #define Pragma_Convention 44
251 #define Pragma_CPP_Class 45
252 #define Pragma_CPP_Constructor 46
253 #define Pragma_CPP_Virtual 47
254 #define Pragma_CPP_Vtable 48
255 #define Pragma_Debug 49
256 #define Pragma_Elaborate 50
257 #define Pragma_Elaborate_All 51
258 #define Pragma_Elaborate_Body 52
259 #define Pragma_Export 53
260 #define Pragma_Export_Exception 54
261 #define Pragma_Export_Function 55
262 #define Pragma_Export_Object 56
263 #define Pragma_Export_Procedure 57
264 #define Pragma_Export_Valued_Procedure 58
265 #define Pragma_External 59
266 #define Pragma_Finalize_Storage_Only 60
267 #define Pragma_Ident 61
268 #define Pragma_Import 62
269 #define Pragma_Import_Exception 63
270 #define Pragma_Import_Function 64
271 #define Pragma_Import_Object 65
272 #define Pragma_Import_Procedure 66
273 #define Pragma_Import_Valued_Procedure 67
274 #define Pragma_Inline 68
275 #define Pragma_Inline_Always 69
276 #define Pragma_Inline_Generic 70
277 #define Pragma_Inspection_Point 71
278 #define Pragma_Interface 72
279 #define Pragma_Interface_Name 73
280 #define Pragma_Interrupt_Handler 74
281 #define Pragma_Interrupt_Priority 75
282 #define Pragma_Java_Constructor 76
283 #define Pragma_Java_Interface 77
284 #define Pragma_Link_With 78
285 #define Pragma_Linker_Alias 79
286 #define Pragma_Linker_Options 80
287 #define Pragma_Linker_Section 81
288 #define Pragma_List 82
289 #define Pragma_Machine_Attribute 83
290 #define Pragma_Main 84
291 #define Pragma_Main_Storage 85
292 #define Pragma_Memory_Size 86
293 #define Pragma_No_Return 87
294 #define Pragma_Optimize 88
295 #define Pragma_Pack 89
296 #define Pragma_Page 90
297 #define Pragma_Passive 91
298 #define Pragma_Preelaborate 92
299 #define Pragma_Priority 93
300 #define Pragma_Psect_Object 94
301 #define Pragma_Pure 95
302 #define Pragma_Pure_Function 96
303 #define Pragma_Remote_Call_Interface 97
304 #define Pragma_Remote_Types 98
305 #define Pragma_Share_Generic 99
306 #define Pragma_Shared 100
307 #define Pragma_Shared_Passive 101
308 #define Pragma_Source_Reference 102
309 #define Pragma_Stream_Convert 103
310 #define Pragma_Subtitle 104
311 #define Pragma_Suppress_All 105
312 #define Pragma_Suppress_Debug_Info 106
313 #define Pragma_Suppress_Initialization 107
314 #define Pragma_System_Name 108
315 #define Pragma_Task_Info 109
316 #define Pragma_Task_Name 110
317 #define Pragma_Task_Storage 111
318 #define Pragma_Time_Slice 112
319 #define Pragma_Title 113
320 #define Pragma_Unchecked_Union 114
321 #define Pragma_Unimplemented_Unit 115
322 #define Pragma_Unreserve_All_Interrupts 116
323 #define Pragma_Volatile 117
324 #define Pragma_Volatile_Components 118
325 #define Pragma_Weak_External 119
327 /* The following are deliberately out of alphabetical order, see Snames */
329 #define Pragma_AST_Entry 120
330 #define Pragma_Storage_Size 121
331 #define Pragma_Storage_Unit 122
333 /* Define the numeric values for the conventions. */
335 #define Convention_Ada 0
336 #define Convention_Intrinsic 1
337 #define Convention_Entry 2
338 #define Convention_Protected 3
339 #define Convention_Assembler 4
340 #define Convention_C 5
341 #define Convention_COBOL 6
342 #define Convention_CPP 7
343 #define Convention_Fortran 8
344 #define Convention_Java 9
345 #define Convention_Stdcall 10
346 #define Convention_Stubbed 11