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