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