diff options
-rw-r--r-- | gcc/ada/ali-util.adb | 4 | ||||
-rw-r--r-- | gcc/ada/gprep.adb | 12 | ||||
-rw-r--r-- | gcc/ada/lib.adb | 84 | ||||
-rw-r--r-- | gcc/ada/lib.ads | 10 | ||||
-rw-r--r-- | gcc/ada/prepcomp.adb | 7 | ||||
-rw-r--r-- | gcc/ada/prj-part.adb | 4 | ||||
-rw-r--r-- | gcc/ada/scans.adb | 113 | ||||
-rw-r--r-- | gcc/ada/scans.ads | 237 | ||||
-rw-r--r-- | gcc/ada/scn.adb | 10 | ||||
-rw-r--r-- | gcc/ada/scng.adb | 110 | ||||
-rw-r--r-- | gcc/ada/scng.ads | 12 | ||||
-rw-r--r-- | gcc/ada/sinfo-cn.adb | 4 | ||||
-rw-r--r-- | gcc/ada/sinput-c.adb | 3 | ||||
-rw-r--r-- | gcc/ada/sinput-l.adb | 5 | ||||
-rw-r--r-- | gcc/ada/sinput-p.adb | 6 | ||||
-rw-r--r-- | gcc/ada/sinput.adb | 12 | ||||
-rw-r--r-- | gcc/ada/sinput.ads | 9 | ||||
-rw-r--r-- | gcc/ada/snames.adb | 17 | ||||
-rw-r--r-- | gcc/ada/snames.ads | 1163 | ||||
-rw-r--r-- | gcc/ada/snames.h | 297 |
20 files changed, 1093 insertions, 1026 deletions
diff --git a/gcc/ada/ali-util.adb b/gcc/ada/ali-util.adb index 28819c743f3..a3369772d12 100644 --- a/gcc/ada/ali-util.adb +++ b/gcc/ada/ali-util.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -154,7 +154,7 @@ package body ALI.Util is return Checksum_Error; end if; - Scanner.Initialize_Scanner (Types.No_Unit, Source_Index); + Scanner.Initialize_Scanner (Source_Index); -- Make sure that the project language reserved words are not -- recognized as reserved words, but as identifiers. The byte info for diff --git a/gcc/ada/gprep.adb b/gcc/ada/gprep.adb index ebe5184204f..3a3e2825962 100644 --- a/gcc/ada/gprep.adb +++ b/gcc/ada/gprep.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2002-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -27,7 +27,7 @@ with Csets; with Err_Vars; use Err_Vars; with Errutil; -with Gnatvsn; +with Gnatvsn; use Gnatvsn; with Namet; use Namet; with Opt; with Osint; use Osint; @@ -137,7 +137,9 @@ package body GPrep is begin if not Copyright_Displayed then Write_Line ("GNAT Preprocessor " & Gnatvsn.Gnat_Version_String); - Write_Line ("Copyright 1996-2005, Free Software Foundation, Inc."); + Write_Line ("Copyright 1996-" & + Current_Year & + ", Free Software Foundation, Inc."); Copyright_Displayed := True; end if; end Display_Copyright; @@ -241,7 +243,7 @@ package body GPrep is """"); end if; - Scanner.Initialize_Scanner (No_Unit, Deffile); + Scanner.Initialize_Scanner (Deffile); Prep.Parse_Def_File; end; @@ -502,7 +504,7 @@ package body GPrep is Sinput.Main_Source_File := Infile; - Scanner.Initialize_Scanner (No_Unit, Infile); + Scanner.Initialize_Scanner (Infile); -- Output the SFN pragma if asked to diff --git a/gcc/ada/lib.adb b/gcc/ada/lib.adb index e02ebb0ed00..420f9693b3d 100644 --- a/gcc/ada/lib.adb +++ b/gcc/ada/lib.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -66,6 +66,12 @@ package body Lib is -- Used by In_Same_Extended_Unit and Earlier_In_Extended_Unit. Returns -- value as described above. + function Get_Code_Or_Source_Unit + (S : Source_Ptr; + Unwind_Instances : Boolean) return Unit_Number_Type; + -- Common code for Get_Code_Unit (get unit of instantiation for location) + -- and Get_Source_Unit (get unit of template for location). + -------------------------------------------- -- Access Functions for Unit Table Fields -- -------------------------------------------- @@ -486,11 +492,14 @@ package body Lib is end if; end Generic_Separately_Compiled; - ------------------- - -- Get_Code_Unit -- - ------------------- + ----------------------------- + -- Get_Code_Or_Source_Unit -- + ----------------------------- - function Get_Code_Unit (S : Source_Ptr) return Unit_Number_Type is + function Get_Code_Or_Source_Unit + (S : Source_Ptr; + Unwind_Instances : Boolean) return Unit_Number_Type + is begin -- Search table unless we have No_Location, which can happen if the -- relevant location has not been set yet. Happens for example when @@ -498,22 +507,41 @@ package body Lib is if S /= No_Location then declare - Source_File : constant Source_File_Index := - Get_Source_File_Index (Top_Level_Location (S)); + Source_File : Source_File_Index; + Source_Unit : Unit_Number_Type; begin - for U in Units.First .. Units.Last loop - if Source_Index (U) = Source_File then - return U; - end if; - end loop; + Source_File := Get_Source_File_Index (S); + + if Unwind_Instances then + while Template (Source_File) /= No_Source_File loop + Source_File := Template (Source_File); + end loop; + end if; + + Source_Unit := Unit (Source_File); + + if Source_Unit /= No_Unit then + return Source_Unit; + end if; end; end if; - -- If S was No_Location, or was not in the table, we must be in the - -- main source unit (and the value has not been placed in the table yet) + -- If S was No_Location, or was not in the table, we must be in the main + -- source unit (and the value has not been placed in the table yet), + -- or in one of the configuration pragma files. return Main_Unit; + end Get_Code_Or_Source_Unit; + + ------------------- + -- Get_Code_Unit -- + ------------------- + + function Get_Code_Unit (S : Source_Ptr) return Unit_Number_Type is + begin + return Get_Code_Or_Source_Unit (Top_Level_Location (S), + Unwind_Instances => False); end Get_Code_Unit; function Get_Code_Unit (N : Node_Or_Entity_Id) return Unit_Number_Type is @@ -579,33 +607,7 @@ package body Lib is function Get_Source_Unit (S : Source_Ptr) return Unit_Number_Type is begin - -- Search table unless we have No_Location, which can happen if the - -- relevant location has not been set yet. Happens for example when - -- we obtain Sloc (Cunit (Main_Unit)) before it is set. - - if S /= No_Location then - declare - Source_File : Source_File_Index := - Get_Source_File_Index (Top_Level_Location (S)); - - begin - Source_File := Get_Source_File_Index (S); - while Template (Source_File) /= No_Source_File loop - Source_File := Template (Source_File); - end loop; - - for U in Units.First .. Units.Last loop - if Source_Index (U) = Source_File then - return U; - end if; - end loop; - end; - end if; - - -- If S was No_Location, or was not in the table, we must be in the - -- main source unit (and the value has not got put into the table yet) - - return Main_Unit; + return Get_Code_Or_Source_Unit (S, Unwind_Instances => True); end Get_Source_Unit; function Get_Source_Unit (N : Node_Or_Entity_Id) return Unit_Number_Type is diff --git a/gcc/ada/lib.ads b/gcc/ada/lib.ads index 159ccc317c0..e02555ade65 100644 --- a/gcc/ada/lib.ads +++ b/gcc/ada/lib.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -424,10 +424,10 @@ package Lib is -- Return unit number of file identified by given source pointer value. -- This call must always succeed, since any valid source pointer value -- belongs to some previously loaded module. If the given source pointer - -- value is within an instantiation, this function returns the unit - -- number of the templace, i.e. the unit containing the source code - -- corresponding to the given Source_Ptr value. The version taking - -- a Node_Id argument, N, simply applies the function to Sloc (N). + -- value is within an instantiation, this function returns the unit number + -- of the template, i.e. the unit containing the source code corresponding + -- to the given Source_Ptr value. The version taking a Node_Id argument, N, + -- simply applies the function to Sloc (N). function Get_Code_Unit (N : Node_Or_Entity_Id) return Unit_Number_Type; pragma Inline (Get_Code_Unit); diff --git a/gcc/ada/prepcomp.adb b/gcc/ada/prepcomp.adb index e81c9763648..7fd1984cc55 100644 --- a/gcc/ada/prepcomp.adb +++ b/gcc/ada/prepcomp.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2003-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 2003-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -248,8 +248,7 @@ package body Prepcomp is -- Initialize the sanner and set its behavior for a processing data file - Scn.Scanner.Initialize_Scanner - (No_Unit, Source_Index_Of_Preproc_Data_File); + Scn.Scanner.Initialize_Scanner (Source_Index_Of_Preproc_Data_File); Scn.Scanner.Set_End_Of_Line_As_Token (True); Scn.Scanner.Reset_Special_Characters; @@ -676,7 +675,7 @@ package body Prepcomp is -- Initialize the scanner and process the definition file - Scn.Scanner.Initialize_Scanner (No_Unit, Deffile); + Scn.Scanner.Initialize_Scanner (Deffile); Prep.Parse_Def_File; -- Reset the behaviour of the scanner to the default diff --git a/gcc/ada/prj-part.adb b/gcc/ada/prj-part.adb index f39bd486b77..8e9f963390a 100644 --- a/gcc/ada/prj-part.adb +++ b/gcc/ada/prj-part.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2001-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 2001-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -1040,7 +1040,7 @@ package body Prj.Part is return; end if; - Prj.Err.Scanner.Initialize_Scanner (Types.No_Unit, Source_Index); + Prj.Err.Scanner.Initialize_Scanner (Source_Index); Tree.Reset_State; Scan (In_Tree); diff --git a/gcc/ada/scans.adb b/gcc/ada/scans.adb index 42c393fa7ed..a22fdfd99d0 100644 --- a/gcc/ada/scans.adb +++ b/gcc/ada/scans.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2001 Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -31,13 +31,122 @@ -- -- ------------------------------------------------------------------------------ +with Namet; use Namet; +with Snames; use Snames; + package body Scans is + ----------------------------- + -- Initialize_Ada_Keywords -- + ----------------------------- + + procedure Initialize_Ada_Keywords is + procedure Set_Reserved (N : Name_Id; T : Token_Type); + pragma Inline (Set_Reserved); + -- Set given name as a reserved word (T is the corresponding token) + + ------------------ + -- Set_Reserved -- + ------------------ + + procedure Set_Reserved (N : Name_Id; T : Token_Type) is + begin + -- Set up Token_Type values in Names table entries for reserved + -- words. We use the Pos value of the Token_Type value. Note that + -- Is_Keyword_Name relies on the fact that Token_Type'Val (0) is not + -- a reserved word! + + Set_Name_Table_Byte (N, Token_Type'Pos (T)); + end Set_Reserved; + + -- Start of processing for Initialize_Ada_Keywords + + begin + -- Establish reserved words + + Set_Reserved (Name_Abort, Tok_Abort); + Set_Reserved (Name_Abs, Tok_Abs); + Set_Reserved (Name_Abstract, Tok_Abstract); + Set_Reserved (Name_Accept, Tok_Accept); + Set_Reserved (Name_Access, Tok_Access); + Set_Reserved (Name_And, Tok_And); + Set_Reserved (Name_Aliased, Tok_Aliased); + Set_Reserved (Name_All, Tok_All); + Set_Reserved (Name_Array, Tok_Array); + Set_Reserved (Name_At, Tok_At); + Set_Reserved (Name_Begin, Tok_Begin); + Set_Reserved (Name_Body, Tok_Body); + Set_Reserved (Name_Case, Tok_Case); + Set_Reserved (Name_Constant, Tok_Constant); + Set_Reserved (Name_Declare, Tok_Declare); + Set_Reserved (Name_Delay, Tok_Delay); + Set_Reserved (Name_Delta, Tok_Delta); + Set_Reserved (Name_Digits, Tok_Digits); + Set_Reserved (Name_Do, Tok_Do); + Set_Reserved (Name_Else, Tok_Else); + Set_Reserved (Name_Elsif, Tok_Elsif); + Set_Reserved (Name_End, Tok_End); + Set_Reserved (Name_Entry, Tok_Entry); + Set_Reserved (Name_Exception, Tok_Exception); + Set_Reserved (Name_Exit, Tok_Exit); + Set_Reserved (Name_For, Tok_For); + Set_Reserved (Name_Function, Tok_Function); + Set_Reserved (Name_Generic, Tok_Generic); + Set_Reserved (Name_Goto, Tok_Goto); + Set_Reserved (Name_If, Tok_If); + Set_Reserved (Name_In, Tok_In); + Set_Reserved (Name_Is, Tok_Is); + Set_Reserved (Name_Limited, Tok_Limited); + Set_Reserved (Name_Loop, Tok_Loop); + Set_Reserved (Name_Mod, Tok_Mod); + Set_Reserved (Name_New, Tok_New); + Set_Reserved (Name_Not, Tok_Not); + Set_Reserved (Name_Null, Tok_Null); + Set_Reserved (Name_Of, Tok_Of); + Set_Reserved (Name_Or, Tok_Or); + Set_Reserved (Name_Others, Tok_Others); + Set_Reserved (Name_Out, Tok_Out); + Set_Reserved (Name_Package, Tok_Package); + Set_Reserved (Name_Pragma, Tok_Pragma); + Set_Reserved (Name_Private, Tok_Private); + Set_Reserved (Name_Procedure, Tok_Procedure); + Set_Reserved (Name_Protected, Tok_Protected); + Set_Reserved (Name_Raise, Tok_Raise); + Set_Reserved (Name_Range, Tok_Range); + Set_Reserved (Name_Record, Tok_Record); + Set_Reserved (Name_Rem, Tok_Rem); + Set_Reserved (Name_Renames, Tok_Renames); + Set_Reserved (Name_Requeue, Tok_Requeue); + Set_Reserved (Name_Return, Tok_Return); + Set_Reserved (Name_Reverse, Tok_Reverse); + Set_Reserved (Name_Select, Tok_Select); + Set_Reserved (Name_Separate, Tok_Separate); + Set_Reserved (Name_Subtype, Tok_Subtype); + Set_Reserved (Name_Tagged, Tok_Tagged); + Set_Reserved (Name_Task, Tok_Task); + Set_Reserved (Name_Terminate, Tok_Terminate); + Set_Reserved (Name_Then, Tok_Then); + Set_Reserved (Name_Type, Tok_Type); + Set_Reserved (Name_Until, Tok_Until); + Set_Reserved (Name_Use, Tok_Use); + Set_Reserved (Name_When, Tok_When); + Set_Reserved (Name_While, Tok_While); + Set_Reserved (Name_With, Tok_With); + Set_Reserved (Name_Xor, Tok_Xor); + + -- Ada 2005 reserved words + + Set_Reserved (Name_Interface, Tok_Interface); + Set_Reserved (Name_Overriding, Tok_Overriding); + Set_Reserved (Name_Synchronized, Tok_Synchronized); + + end Initialize_Ada_Keywords; + ------------------------ -- Restore_Scan_State -- ------------------------ - procedure Restore_Scan_State (Saved_State : in Saved_Scan_State) is + procedure Restore_Scan_State (Saved_State : Saved_Scan_State) is begin Scan_Ptr := Saved_State.Save_Scan_Ptr; Token := Saved_State.Save_Token; diff --git a/gcc/ada/scans.ads b/gcc/ada/scans.ads index 7e2a58078a1..694a603d702 100644 --- a/gcc/ada/scans.ads +++ b/gcc/ada/scans.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -46,9 +46,9 @@ package Scans is -- The class column in this table indicates the token classes which -- apply to the token, as defined by subsquent subtype declarations. - -- Note: the coding in SCN depends on the fact that the first entry in - -- this type declaration is *not* for a reserved word. For details on - -- why there is this requirement, see Scn.Initialize_Scanner. + -- Note: Namet.Is_Keyword_Name depends on the fact that the first entry in + -- this type declaration is *not* for a reserved word. For details on why + -- there is this requirement, see Scans.Initialize_Ada_Keywords. type Token_Type is ( @@ -223,117 +223,122 @@ package Scans is -- The following subtype declarations group the token types into classes. -- These are used for class tests in the parser. - subtype Token_Class_Numeric_Literal is - Token_Type range Tok_Integer_Literal .. Tok_Real_Literal; - -- Numeric literal - - subtype Token_Class_Literal is - Token_Type range Tok_Integer_Literal .. Tok_Operator_Symbol; - -- Literal - - subtype Token_Class_Lit_Or_Name is - Token_Type range Tok_Integer_Literal .. Tok_Identifier; - - subtype Token_Class_Binary_Addop is - Token_Type range Tok_Ampersand .. Tok_Plus; - -- Binary adding operator (& + -) - - subtype Token_Class_Unary_Addop is - Token_Type range Tok_Minus .. Tok_Plus; - -- Unary adding operator (+ -) - - subtype Token_Class_Mulop is - Token_Type range Tok_Asterisk .. Tok_Slash; - -- Multiplying operator - - subtype Token_Class_Logop is - Token_Type range Tok_And .. Tok_Xor; - -- Logical operator (and, or, xor) - - subtype Token_Class_Relop is - Token_Type range Tok_Less .. Tok_Box; - -- Relational operator (= /= < <= > >= not, in plus <> to catch misuse - -- of Pascal style not equal operator). - - subtype Token_Class_Name is - Token_Type range Tok_Char_Literal .. Tok_Identifier; - -- First token of name (4.1), - -- (identifier, char literal, operator symbol) - - subtype Token_Class_Desig is - Token_Type range Tok_Operator_Symbol .. Tok_Identifier; - -- Token which can be a Designator (identifier, operator symbol) - - subtype Token_Class_Namext is - Token_Type range Tok_Dot .. Tok_Left_Paren; - -- Name extension tokens. These are tokens which can appear immediately - -- after a name to extend it recursively (period, quote, left paren) - - subtype Token_Class_Consk is - Token_Type range Tok_Left_Paren .. Tok_Range; - -- Keywords which can start constraint - -- (left paren, delta, digits, range) - - subtype Token_Class_Eterm is - Token_Type range Tok_Colon_Equal .. Tok_Semicolon; - -- Expression terminators. These tokens can never appear within a simple - -- expression. This is used for error recovery purposes (if we encounter - -- an error in an expression, we simply scan to the next Eterm token). - - subtype Token_Class_Sterm is - Token_Type range Tok_Delta .. Tok_Dot_Dot; - -- Simple_Expression terminators. A Simple_Expression must be followed - -- by a token in this class, or an error message is issued complaining - -- about a missing binary operator. - - subtype Token_Class_Atkwd is - Token_Type range Tok_Delta .. Tok_Range; - -- Attribute keywords. This class includes keywords which can be used - -- as an Attribute_Designator, namely DELTA, DIGITS and RANGE - - subtype Token_Class_Cterm is - Token_Type range Tok_EOF .. Tok_Vertical_Bar; - -- Choice terminators. These tokens terminate a choice. This is used for - -- error recovery purposes (if we encounter an error in a Choice, we - -- simply scan to the next Cterm token). - - subtype Token_Class_Chtok is - Token_Type range Tok_Arrow .. Tok_Dot_Dot; - -- Choice tokens. These tokens signal a choice when used in an Aggregate - - subtype Token_Class_Cunit is - Token_Type range Tok_Function .. Tok_Separate; - -- Tokens which can begin a compilation unit - - subtype Token_Class_Declk is - Token_Type range Tok_Entry .. Tok_Procedure; - -- Keywords which start a declaration - - subtype Token_Class_Deckn is - Token_Type range Tok_Entry .. Tok_Use; - -- Keywords which start a declaration but can't start a compilation unit - - subtype Token_Class_After_SM is - Token_Type range Tok_Less_Less .. Tok_EOF; - -- Tokens which always, or almost always, appear after a semicolon. Used - -- in the Resync_Past_Semicolon routine to avoid gobbling up stuff when - -- a semicolon is missing. Of significance only for error recovery. - - subtype Token_Class_Labeled_Stmt is - Token_Type range Tok_Begin .. Tok_While; - -- Tokens which start labeled statements - - type Token_Flag_Array is array (Token_Type) of Boolean; - Is_Reserved_Keyword : constant Token_Flag_Array := Token_Flag_Array'( - Tok_Mod .. Tok_Rem => True, - Tok_New .. Tok_Null => True, - Tok_Delta .. Tok_Range => True, - Tok_And .. Tok_Xor => True, - Tok_In .. Tok_Not => True, - Tok_Abstract .. Tok_Then => True, - Tok_Abort .. Tok_Separate => True, - others => False); - -- Flag array used to test for reserved word + subtype Token_Class_Numeric_Literal is + Token_Type range Tok_Integer_Literal .. Tok_Real_Literal; + -- Numeric literal + + subtype Token_Class_Literal is + Token_Type range Tok_Integer_Literal .. Tok_Operator_Symbol; + -- Literal + + subtype Token_Class_Lit_Or_Name is + Token_Type range Tok_Integer_Literal .. Tok_Identifier; + + subtype Token_Class_Binary_Addop is + Token_Type range Tok_Ampersand .. Tok_Plus; + -- Binary adding operator (& + -) + + subtype Token_Class_Unary_Addop is + Token_Type range Tok_Minus .. Tok_Plus; + -- Unary adding operator (+ -) + + subtype Token_Class_Mulop is + Token_Type range Tok_Asterisk .. Tok_Slash; + -- Multiplying operator + + subtype Token_Class_Logop is + Token_Type range Tok_And .. Tok_Xor; + -- Logical operator (and, or, xor) + + subtype Token_Class_Relop is + Token_Type range Tok_Less .. Tok_Box; + -- Relational operator (= /= < <= > >= not, in plus <> to catch misuse + -- of Pascal style not equal operator). + + subtype Token_Class_Name is + Token_Type range Tok_Char_Literal .. Tok_Identifier; + -- First token of name (4.1), + -- (identifier, char literal, operator symbol) + + subtype Token_Class_Desig is + Token_Type range Tok_Operator_Symbol .. Tok_Identifier; + -- Token which can be a Designator (identifier, operator symbol) + + subtype Token_Class_Namext is + Token_Type range Tok_Dot .. Tok_Left_Paren; + -- Name extension tokens. These are tokens which can appear immediately + -- after a name to extend it recursively (period, quote, left paren) + + subtype Token_Class_Consk is + Token_Type range Tok_Left_Paren .. Tok_Range; + -- Keywords which can start constraint + -- (left paren, delta, digits, range) + + subtype Token_Class_Eterm is + Token_Type range Tok_Colon_Equal .. Tok_Semicolon; + -- Expression terminators. These tokens can never appear within a simple + -- expression. This is used for error recovery purposes (if we encounter + -- an error in an expression, we simply scan to the next Eterm token). + + subtype Token_Class_Sterm is + Token_Type range Tok_Delta .. Tok_Dot_Dot; + -- Simple_Expression terminators. A Simple_Expression must be followed + -- by a token in this class, or an error message is issued complaining + -- about a missing binary operator. + + subtype Token_Class_Atkwd is + Token_Type range Tok_Delta .. Tok_Range; + -- Attribute keywords. This class includes keywords which can be used + -- as an Attribute_Designator, namely DELTA, DIGITS and RANGE + + subtype Token_Class_Cterm is + Token_Type range Tok_EOF .. Tok_Vertical_Bar; + -- Choice terminators. These tokens terminate a choice. This is used for + -- error recovery purposes (if we encounter an error in a Choice, we + -- simply scan to the next Cterm token). + + subtype Token_Class_Chtok is + Token_Type range Tok_Arrow .. Tok_Dot_Dot; + -- Choice tokens. These tokens signal a choice when used in an Aggregate + + subtype Token_Class_Cunit is + Token_Type range Tok_Function .. Tok_Separate; + -- Tokens which can begin a compilation unit + + subtype Token_Class_Declk is + Token_Type range Tok_Entry .. Tok_Procedure; + -- Keywords which start a declaration + + subtype Token_Class_Deckn is + Token_Type range Tok_Entry .. Tok_Use; + -- Keywords which start a declaration but can't start a compilation unit + + subtype Token_Class_After_SM is + Token_Type range Tok_Less_Less .. Tok_EOF; + -- Tokens which always, or almost always, appear after a semicolon. Used + -- in the Resync_Past_Semicolon routine to avoid gobbling up stuff when + -- a semicolon is missing. Of significance only for error recovery. + + subtype Token_Class_Labeled_Stmt is + Token_Type range Tok_Begin .. Tok_While; + -- Tokens which start labeled statements + + type Token_Flag_Array is array (Token_Type) of Boolean; + Is_Reserved_Keyword : constant Token_Flag_Array := + Token_Flag_Array' + (Tok_Mod .. Tok_Rem => True, + Tok_New .. Tok_Null => True, + Tok_Delta .. Tok_Range => True, + Tok_And .. Tok_Xor => True, + Tok_In .. Tok_Not => True, + Tok_Abstract .. Tok_Then => True, + Tok_Abort .. Tok_Separate => True, + others => False); + -- Flag array used to test for reserved word + + procedure Initialize_Ada_Keywords; + -- Set up Token_Type values in Names table entries for Ada reserved + -- words. -------------------------- -- Scan State Variables -- @@ -444,7 +449,7 @@ package Scans is -- Saves the current scan state for possible later restoration. Note that -- there is no harm in saving the state and then never restoring it. - procedure Restore_Scan_State (Saved_State : in Saved_Scan_State); + procedure Restore_Scan_State (Saved_State : Saved_Scan_State); pragma Inline (Restore_Scan_State); -- Restores a scan state saved by a call to Save_Scan_State. -- The saved scan state must refer to the current source file. diff --git a/gcc/ada/scn.adb b/gcc/ada/scn.adb index 4a6f4f964ec..52a9fac4076 100644 --- a/gcc/ada/scn.adb +++ b/gcc/ada/scn.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2005 Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -281,7 +281,13 @@ package body Scn is GNAT_Hedr : constant Text_Buffer (1 .. 78) := (others => '-'); begin - Scanner.Initialize_Scanner (Unit, Index); + Scanner.Initialize_Scanner (Index); + + if Index /= Internal_Source_File then + Set_Unit (Index, Unit); + end if; + + Current_Source_Unit := Unit; -- Set default for Comes_From_Source (except if we are going to process -- an artificial string internally created within the compiler and diff --git a/gcc/ada/scng.adb b/gcc/ada/scng.adb index 1f1fe156266..ad7f3b38712 100644 --- a/gcc/ada/scng.adb +++ b/gcc/ada/scng.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2005 Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -141,113 +141,16 @@ package body Scng is -- Initialize_Scanner -- ------------------------ - procedure Initialize_Scanner - (Unit : Unit_Number_Type; - Index : Source_File_Index) - is - procedure Set_Reserved (N : Name_Id; T : Token_Type); - pragma Inline (Set_Reserved); - -- Set given name as a reserved keyword (T is the corresponding token) - - ------------- - -- Set_NTB -- - ------------- - - procedure Set_Reserved (N : Name_Id; T : Token_Type) is - begin - -- Set up Token_Type values in Names Table entries for reserved - -- keywords We use the Pos value of the Token_Type value. Note we - -- rely on the fact that Token_Type'Val (0) is not a reserved word! - - Set_Name_Table_Byte (N, Token_Type'Pos (T)); - end Set_Reserved; - - -- Start of processing for Initialize_Scanner - + procedure Initialize_Scanner (Index : Source_File_Index) is begin -- Establish reserved words - Set_Reserved (Name_Abort, Tok_Abort); - Set_Reserved (Name_Abs, Tok_Abs); - Set_Reserved (Name_Abstract, Tok_Abstract); - Set_Reserved (Name_Accept, Tok_Accept); - Set_Reserved (Name_Access, Tok_Access); - Set_Reserved (Name_And, Tok_And); - Set_Reserved (Name_Aliased, Tok_Aliased); - Set_Reserved (Name_All, Tok_All); - Set_Reserved (Name_Array, Tok_Array); - Set_Reserved (Name_At, Tok_At); - Set_Reserved (Name_Begin, Tok_Begin); - Set_Reserved (Name_Body, Tok_Body); - Set_Reserved (Name_Case, Tok_Case); - Set_Reserved (Name_Constant, Tok_Constant); - Set_Reserved (Name_Declare, Tok_Declare); - Set_Reserved (Name_Delay, Tok_Delay); - Set_Reserved (Name_Delta, Tok_Delta); - Set_Reserved (Name_Digits, Tok_Digits); - Set_Reserved (Name_Do, Tok_Do); - Set_Reserved (Name_Else, Tok_Else); - Set_Reserved (Name_Elsif, Tok_Elsif); - Set_Reserved (Name_End, Tok_End); - Set_Reserved (Name_Entry, Tok_Entry); - Set_Reserved (Name_Exception, Tok_Exception); - Set_Reserved (Name_Exit, Tok_Exit); - Set_Reserved (Name_For, Tok_For); - Set_Reserved (Name_Function, Tok_Function); - Set_Reserved (Name_Generic, Tok_Generic); - Set_Reserved (Name_Goto, Tok_Goto); - Set_Reserved (Name_If, Tok_If); - Set_Reserved (Name_In, Tok_In); - Set_Reserved (Name_Is, Tok_Is); - Set_Reserved (Name_Limited, Tok_Limited); - Set_Reserved (Name_Loop, Tok_Loop); - Set_Reserved (Name_Mod, Tok_Mod); - Set_Reserved (Name_New, Tok_New); - Set_Reserved (Name_Not, Tok_Not); - Set_Reserved (Name_Null, Tok_Null); - Set_Reserved (Name_Of, Tok_Of); - Set_Reserved (Name_Or, Tok_Or); - Set_Reserved (Name_Others, Tok_Others); - Set_Reserved (Name_Out, Tok_Out); - Set_Reserved (Name_Package, Tok_Package); - Set_Reserved (Name_Pragma, Tok_Pragma); - Set_Reserved (Name_Private, Tok_Private); - Set_Reserved (Name_Procedure, Tok_Procedure); - Set_Reserved (Name_Protected, Tok_Protected); - Set_Reserved (Name_Raise, Tok_Raise); - Set_Reserved (Name_Range, Tok_Range); - Set_Reserved (Name_Record, Tok_Record); - Set_Reserved (Name_Rem, Tok_Rem); - Set_Reserved (Name_Renames, Tok_Renames); - Set_Reserved (Name_Requeue, Tok_Requeue); - Set_Reserved (Name_Return, Tok_Return); - Set_Reserved (Name_Reverse, Tok_Reverse); - Set_Reserved (Name_Select, Tok_Select); - Set_Reserved (Name_Separate, Tok_Separate); - Set_Reserved (Name_Subtype, Tok_Subtype); - Set_Reserved (Name_Tagged, Tok_Tagged); - Set_Reserved (Name_Task, Tok_Task); - Set_Reserved (Name_Terminate, Tok_Terminate); - Set_Reserved (Name_Then, Tok_Then); - Set_Reserved (Name_Type, Tok_Type); - Set_Reserved (Name_Until, Tok_Until); - Set_Reserved (Name_Use, Tok_Use); - Set_Reserved (Name_When, Tok_When); - Set_Reserved (Name_While, Tok_While); - Set_Reserved (Name_With, Tok_With); - Set_Reserved (Name_Xor, Tok_Xor); - - -- Ada 2005 reserved words - - Set_Reserved (Name_Interface, Tok_Interface); - Set_Reserved (Name_Overriding, Tok_Overriding); - Set_Reserved (Name_Synchronized, Tok_Synchronized); + Scans.Initialize_Ada_Keywords; -- Initialize scan control variables Current_Source_File := Index; Source := Source_Text (Current_Source_File); - Current_Source_Unit := Unit; Scan_Ptr := Source_First (Current_Source_File); Token := No_Token; Token_Ptr := Scan_Ptr; @@ -2330,12 +2233,7 @@ package body Scng is -- Here is where we check if it was a keyword - if Get_Name_Table_Byte (Token_Name) /= 0 - and then (Ada_Version >= Ada_95 - or else Token_Name not in Ada_95_Reserved_Words) - and then (Ada_Version >= Ada_05 - or else Token_Name not in Ada_2005_Reserved_Words) - then + if Is_Keyword_Name (Token_Name) then Token := Token_Type'Val (Get_Name_Table_Byte (Token_Name)); -- Deal with possible style check for non-lower case keyword, but diff --git a/gcc/ada/scng.ads b/gcc/ada/scng.ads index e48aa3bb5af..201ce9db73f 100644 --- a/gcc/ada/scng.ads +++ b/gcc/ada/scng.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2004 Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -60,14 +60,8 @@ generic package Scng is - procedure Initialize_Scanner - (Unit : Unit_Number_Type; - Index : Source_File_Index); - -- Initialize lexical scanner for scanning a new file. The caller has - -- completed the construction of the Units.Table entry for the specified - -- Unit and Index references the corresponding source file. A special - -- case is when Unit = No_Unit_Number, and Index corresponds to the - -- source index for reading the configuration pragma file. + procedure Initialize_Scanner (Index : Source_File_Index); + -- Initialize lexical scanner for scanning a new file referenced by Index. -- Initialize_Scanner does not call Scan. procedure Scan; diff --git a/gcc/ada/sinfo-cn.adb b/gcc/ada/sinfo-cn.adb index dee27caf656..9ccfedaafaf 100644 --- a/gcc/ada/sinfo-cn.adb +++ b/gcc/ada/sinfo-cn.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2001 Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -26,7 +26,7 @@ -- This child package of Sinfo contains some routines that permit in place -- alteration of existing tree nodes by changing the value in the Nkind --- field. Since Nkind functions logically in a manner similart to a variant +-- field. Since Nkind functions logically in a manner similar to a variant -- record discriminant part, such alterations cannot be permitted in a -- general manner, but in some specific cases, the fields of related nodes -- have been deliberately layed out in a manner that permits such alteration. diff --git a/gcc/ada/sinput-c.adb b/gcc/ada/sinput-c.adb index 9ad678f2612..39e2332fbbf 100644 --- a/gcc/ada/sinput-c.adb +++ b/gcc/ada/sinput-c.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2004 Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -193,6 +193,7 @@ package body Sinput.C is Source_Last => Hi, Source_Text => Src, Template => No_Source_File, + Unit => No_Unit, Time_Stamp => Empty_Time_Stamp); Alloc_Line_Tables (S, Opt.Table_Factor * Alloc.Lines_Initial); diff --git a/gcc/ada/sinput-l.adb b/gcc/ada/sinput-l.adb index 43b220003d4..9e29dbcf772 100644 --- a/gcc/ada/sinput-l.adb +++ b/gcc/ada/sinput-l.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2004 Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -441,6 +441,7 @@ package body Sinput.L is Source_Last => Hi, Source_Text => Src, Template => No_Source_File, + Unit => No_Unit, Time_Stamp => Osint.Current_Source_File_Stamp); Alloc_Line_Tables (S, Opt.Table_Factor * Alloc.Lines_Initial); @@ -497,7 +498,7 @@ package body Sinput.L is -- Initialize the scanner and set its behavior for -- preprocessing, then preprocess. - Scn.Scanner.Initialize_Scanner (No_Unit, X); + Scn.Scanner.Initialize_Scanner (X); Scn.Scanner.Set_Special_Character ('#'); Scn.Scanner.Set_Special_Character ('$'); diff --git a/gcc/ada/sinput-p.adb b/gcc/ada/sinput-p.adb index 102e437809e..a333b090bc4 100644 --- a/gcc/ada/sinput-p.adb +++ b/gcc/ada/sinput-p.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2003 Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -57,7 +57,7 @@ package body Sinput.P is -------------------------------- procedure Restore_Project_Scan_State - (Saved_State : in Saved_Project_Scan_State) + (Saved_State : Saved_Project_Scan_State) is begin Restore_Scan_State (Saved_State.Scan_State); @@ -84,7 +84,7 @@ package body Sinput.P is function Source_File_Is_Subunit (X : Source_File_Index) return Boolean is begin - Prj.Err.Scanner.Initialize_Scanner (No_Unit, X); + Prj.Err.Scanner.Initialize_Scanner (X); -- We scan past junk to the first interesting compilation unit -- token, to see if it is SEPARATE. We ignore WITH keywords during diff --git a/gcc/ada/sinput.adb b/gcc/ada/sinput.adb index d20adf5aed2..7efc71a4ed8 100644 --- a/gcc/ada/sinput.adb +++ b/gcc/ada/sinput.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -1155,6 +1155,11 @@ package body Sinput is return Source_File.Table (S).Time_Stamp; end Time_Stamp; + function Unit (S : SFI) return Unit_Number_Type is + begin + return Source_File.Table (S).Unit; + end Unit; + ------------------------------------------ -- Set Procedures for Source File Table -- ------------------------------------------ @@ -1174,6 +1179,11 @@ package body Sinput is Source_File.Table (S).License := L; end Set_License; + procedure Set_Unit (S : SFI; U : Unit_Number_Type) is + begin + Source_File.Table (S).Unit := U; + end Set_Unit; + ---------------------- -- Trim_Lines_Table -- ---------------------- diff --git a/gcc/ada/sinput.ads b/gcc/ada/sinput.ads index 092707c1c2e..cd472c69c34 100644 --- a/gcc/ada/sinput.ads +++ b/gcc/ada/sinput.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -268,6 +268,10 @@ package Sinput is -- is a generic instantiation. Set to No_Source_File for the normal case -- of a non-instantiation entry. See Sinput-L for details. + -- Unit : Unit_Number_Type; + -- Identifies the unit contained in this source file. Set by + -- Initialize_Scanner, must not be subsequently altered. + -- The source file table is accessed by clients using the following -- subprogram interface: @@ -299,11 +303,13 @@ package Sinput is function Source_Last (S : SFI) return Source_Ptr; function Source_Text (S : SFI) return Source_Buffer_Ptr; function Template (S : SFI) return Source_File_Index; + function Unit (S : SFI) return Unit_Number_Type; function Time_Stamp (S : SFI) return Time_Stamp_Type; procedure Set_Keyword_Casing (S : SFI; C : Casing_Type); procedure Set_Identifier_Casing (S : SFI; C : Casing_Type); procedure Set_License (S : SFI; L : License_Type); + procedure Set_Unit (S : SFI; U : Unit_Number_Type); function Last_Source_File return Source_File_Index; -- Index of last source file table entry @@ -686,6 +692,7 @@ private Identifier_Casing : Casing_Type; Instantiation : Source_Ptr; Template : Source_File_Index; + Unit : Unit_Number_Type; -- The following fields are for internal use only (i.e. only in the -- body of Sinput or its children, with no direct access by clients). diff --git a/gcc/ada/snames.adb b/gcc/ada/snames.adb index cd7ae14248f..513ba1f9673 100644 --- a/gcc/ada/snames.adb +++ b/gcc/ada/snames.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -32,6 +32,7 @@ ------------------------------------------------------------------------------ with Namet; use Namet; +with Opt; use Opt; with Table; package body Snames is @@ -174,6 +175,7 @@ package body Snames is "ada_83#" & "ada_95#" & "ada_05#" & + "ada_2005#" & "assertion_policy#" & "c_pass_by_copy#" & "compile_time_warning#" & @@ -992,6 +994,19 @@ package body Snames is Last_Renamable_Function_Attribute; end Is_Function_Attribute_Name; + --------------------- + -- Is_Keyword_Name -- + --------------------- + + function Is_Keyword_Name (N : Name_Id) return Boolean is + begin + return Get_Name_Table_Byte (N) /= 0 + and then (Ada_Version >= Ada_95 + or else N not in Ada_95_Reserved_Words) + and then (Ada_Version >= Ada_05 + or else N not in Ada_2005_Reserved_Words); + end Is_Keyword_Name; + ---------------------------- -- Is_Locking_Policy_Name -- ---------------------------- diff --git a/gcc/ada/snames.ads b/gcc/ada/snames.ads index 97225020244..2191b7914a2 100644 --- a/gcc/ada/snames.ads +++ b/gcc/ada/snames.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -336,58 +336,59 @@ package Snames is Name_Ada_83 : constant Name_Id := N + 114; -- GNAT Name_Ada_95 : constant Name_Id := N + 115; -- GNAT Name_Ada_05 : constant Name_Id := N + 116; -- GNAT - Name_Assertion_Policy : constant Name_Id := N + 117; -- Ada 05 - Name_C_Pass_By_Copy : constant Name_Id := N + 118; -- GNAT - Name_Compile_Time_Warning : constant Name_Id := N + 119; -- GNAT - Name_Component_Alignment : constant Name_Id := N + 120; -- GNAT - Name_Convention_Identifier : constant Name_Id := N + 121; -- GNAT - Name_Debug_Policy : constant Name_Id := N + 122; -- GNAT - Name_Detect_Blocking : constant Name_Id := N + 123; -- Ada 05 - Name_Discard_Names : constant Name_Id := N + 124; - Name_Elaboration_Checks : constant Name_Id := N + 125; -- GNAT - Name_Eliminate : constant Name_Id := N + 126; -- GNAT - Name_Explicit_Overriding : constant Name_Id := N + 127; -- Ada 05 - Name_Extend_System : constant Name_Id := N + 128; -- GNAT - Name_Extensions_Allowed : constant Name_Id := N + 129; -- GNAT - Name_External_Name_Casing : constant Name_Id := N + 130; -- GNAT - Name_Float_Representation : constant Name_Id := N + 131; -- GNAT - Name_Initialize_Scalars : constant Name_Id := N + 132; -- GNAT - Name_Interrupt_State : constant Name_Id := N + 133; -- GNAT - Name_License : constant Name_Id := N + 134; -- GNAT - Name_Locking_Policy : constant Name_Id := N + 135; - Name_Long_Float : constant Name_Id := N + 136; -- VMS - Name_No_Run_Time : constant Name_Id := N + 137; -- GNAT - Name_No_Strict_Aliasing : constant Name_Id := N + 138; -- GNAT - Name_Normalize_Scalars : constant Name_Id := N + 139; - Name_Polling : constant Name_Id := N + 140; -- GNAT - Name_Persistent_BSS : constant Name_Id := N + 141; -- GNAT - Name_Profile : constant Name_Id := N + 142; -- Ada 05 - Name_Profile_Warnings : constant Name_Id := N + 143; -- GNAT - Name_Propagate_Exceptions : constant Name_Id := N + 144; -- GNAT - Name_Queuing_Policy : constant Name_Id := N + 145; - Name_Ravenscar : constant Name_Id := N + 146; -- Ada 05 - Name_Restricted_Run_Time : constant Name_Id := N + 147; -- GNAT - Name_Restrictions : constant Name_Id := N + 148; - Name_Restriction_Warnings : constant Name_Id := N + 149; -- GNAT - Name_Reviewable : constant Name_Id := N + 150; - Name_Source_File_Name : constant Name_Id := N + 151; -- GNAT - Name_Source_File_Name_Project : constant Name_Id := N + 152; -- GNAT - Name_Style_Checks : constant Name_Id := N + 153; -- GNAT - Name_Suppress : constant Name_Id := N + 154; - Name_Suppress_Exception_Locations : constant Name_Id := N + 155; -- GNAT - Name_Task_Dispatching_Policy : constant Name_Id := N + 156; - Name_Universal_Data : constant Name_Id := N + 157; -- AAMP - Name_Unsuppress : constant Name_Id := N + 158; -- GNAT - Name_Use_VADS_Size : constant Name_Id := N + 159; -- GNAT - Name_Validity_Checks : constant Name_Id := N + 160; -- GNAT - Name_Warnings : constant Name_Id := N + 161; -- GNAT - Last_Configuration_Pragma_Name : constant Name_Id := N + 161; + Name_Ada_2005 : constant Name_Id := N + 117; -- GNAT + Name_Assertion_Policy : constant Name_Id := N + 118; -- Ada 05 + Name_C_Pass_By_Copy : constant Name_Id := N + 119; -- GNAT + Name_Compile_Time_Warning : constant Name_Id := N + 120; -- GNAT + Name_Component_Alignment : constant Name_Id := N + 121; -- GNAT + Name_Convention_Identifier : constant Name_Id := N + 122; -- GNAT + Name_Debug_Policy : constant Name_Id := N + 123; -- GNAT + Name_Detect_Blocking : constant Name_Id := N + 124; -- Ada 05 + Name_Discard_Names : constant Name_Id := N + 125; + Name_Elaboration_Checks : constant Name_Id := N + 126; -- GNAT + Name_Eliminate : constant Name_Id := N + 127; -- GNAT + Name_Explicit_Overriding : constant Name_Id := N + 128; -- Ada 05 + Name_Extend_System : constant Name_Id := N + 129; -- GNAT + Name_Extensions_Allowed : constant Name_Id := N + 130; -- GNAT + Name_External_Name_Casing : constant Name_Id := N + 131; -- GNAT + Name_Float_Representation : constant Name_Id := N + 132; -- GNAT + Name_Initialize_Scalars : constant Name_Id := N + 133; -- GNAT + Name_Interrupt_State : constant Name_Id := N + 134; -- GNAT + Name_License : constant Name_Id := N + 135; -- GNAT + Name_Locking_Policy : constant Name_Id := N + 136; + Name_Long_Float : constant Name_Id := N + 137; -- VMS + Name_No_Run_Time : constant Name_Id := N + 138; -- GNAT + Name_No_Strict_Aliasing : constant Name_Id := N + 139; -- GNAT + Name_Normalize_Scalars : constant Name_Id := N + 140; + Name_Polling : constant Name_Id := N + 141; -- GNAT + Name_Persistent_BSS : constant Name_Id := N + 142; -- GNAT + Name_Profile : constant Name_Id := N + 143; -- Ada 05 + Name_Profile_Warnings : constant Name_Id := N + 144; -- GNAT + Name_Propagate_Exceptions : constant Name_Id := N + 145; -- GNAT + Name_Queuing_Policy : constant Name_Id := N + 146; + Name_Ravenscar : constant Name_Id := N + 147; -- Ada 05 + Name_Restricted_Run_Time : constant Name_Id := N + 148; -- GNAT + Name_Restrictions : constant Name_Id := N + 149; + Name_Restriction_Warnings : constant Name_Id := N + 150; -- GNAT + Name_Reviewable : constant Name_Id := N + 151; + Name_Source_File_Name : constant Name_Id := N + 152; -- GNAT + Name_Source_File_Name_Project : constant Name_Id := N + 153; -- GNAT + Name_Style_Checks : constant Name_Id := N + 154; -- GNAT + Name_Suppress : constant Name_Id := N + 155; + Name_Suppress_Exception_Locations : constant Name_Id := N + 156; -- GNAT + Name_Task_Dispatching_Policy : constant Name_Id := N + 157; + Name_Universal_Data : constant Name_Id := N + 158; -- AAMP + Name_Unsuppress : constant Name_Id := N + 159; -- GNAT + Name_Use_VADS_Size : constant Name_Id := N + 160; -- GNAT + Name_Validity_Checks : constant Name_Id := N + 161; -- GNAT + Name_Warnings : constant Name_Id := N + 162; -- GNAT + Last_Configuration_Pragma_Name : constant Name_Id := N + 162; -- Remaining pragma names - Name_Abort_Defer : constant Name_Id := N + 162; -- GNAT - Name_All_Calls_Remote : constant Name_Id := N + 163; - Name_Annotate : constant Name_Id := N + 164; -- GNAT + Name_Abort_Defer : constant Name_Id := N + 163; -- GNAT + Name_All_Calls_Remote : constant Name_Id := N + 164; + Name_Annotate : constant Name_Id := N + 165; -- GNAT -- Note: AST_Entry is not in this list because its name matches the -- name of the corresponding attribute. However, it is included in the @@ -395,81 +396,81 @@ package Snames is -- and Check_Pragma_Id correctly recognize and process Name_AST_Entry. -- AST_Entry is a VMS specific pragma. - Name_Assert : constant Name_Id := N + 165; -- Ada 05 - Name_Asynchronous : constant Name_Id := N + 166; - Name_Atomic : constant Name_Id := N + 167; - Name_Atomic_Components : constant Name_Id := N + 168; - Name_Attach_Handler : constant Name_Id := N + 169; - Name_Comment : constant Name_Id := N + 170; -- GNAT - Name_Common_Object : constant Name_Id := N + 171; -- GNAT - Name_Complete_Representation : constant Name_Id := N + 172; -- GNAT - Name_Complex_Representation : constant Name_Id := N + 173; -- GNAT - Name_Controlled : constant Name_Id := N + 174; - Name_Convention : constant Name_Id := N + 175; - Name_CPP_Class : constant Name_Id := N + 176; -- GNAT - Name_CPP_Constructor : constant Name_Id := N + 177; -- GNAT - Name_CPP_Virtual : constant Name_Id := N + 178; -- GNAT - Name_CPP_Vtable : constant Name_Id := N + 179; -- GNAT - Name_Debug : constant Name_Id := N + 180; -- GNAT - Name_Elaborate : constant Name_Id := N + 181; -- Ada 83 - Name_Elaborate_All : constant Name_Id := N + 182; - Name_Elaborate_Body : constant Name_Id := N + 183; - Name_Export : constant Name_Id := N + 184; - Name_Export_Exception : constant Name_Id := N + 185; -- VMS - Name_Export_Function : constant Name_Id := N + 186; -- GNAT - Name_Export_Object : constant Name_Id := N + 187; -- GNAT - Name_Export_Procedure : constant Name_Id := N + 188; -- GNAT - Name_Export_Value : constant Name_Id := N + 189; -- GNAT - Name_Export_Valued_Procedure : constant Name_Id := N + 190; -- GNAT - Name_External : constant Name_Id := N + 191; -- GNAT - Name_Finalize_Storage_Only : constant Name_Id := N + 192; -- GNAT - Name_Ident : constant Name_Id := N + 193; -- VMS - Name_Import : constant Name_Id := N + 194; - Name_Import_Exception : constant Name_Id := N + 195; -- VMS - Name_Import_Function : constant Name_Id := N + 196; -- GNAT - Name_Import_Object : constant Name_Id := N + 197; -- GNAT - Name_Import_Procedure : constant Name_Id := N + 198; -- GNAT - Name_Import_Valued_Procedure : constant Name_Id := N + 199; -- GNAT - Name_Inline : constant Name_Id := N + 200; - Name_Inline_Always : constant Name_Id := N + 201; -- GNAT - Name_Inline_Generic : constant Name_Id := N + 202; -- GNAT - Name_Inspection_Point : constant Name_Id := N + 203; - Name_Interface_Name : constant Name_Id := N + 204; -- GNAT - Name_Interrupt_Handler : constant Name_Id := N + 205; - Name_Interrupt_Priority : constant Name_Id := N + 206; - Name_Java_Constructor : constant Name_Id := N + 207; -- GNAT - Name_Java_Interface : constant Name_Id := N + 208; -- GNAT - Name_Keep_Names : constant Name_Id := N + 209; -- GNAT - Name_Link_With : constant Name_Id := N + 210; -- GNAT - Name_Linker_Alias : constant Name_Id := N + 211; -- GNAT - Name_Linker_Constructor : constant Name_Id := N + 212; -- GNAT - Name_Linker_Destructor : constant Name_Id := N + 213; -- GNAT - Name_Linker_Options : constant Name_Id := N + 214; - Name_Linker_Section : constant Name_Id := N + 215; -- GNAT - Name_List : constant Name_Id := N + 216; - Name_Machine_Attribute : constant Name_Id := N + 217; -- GNAT - Name_Main : constant Name_Id := N + 218; -- GNAT - Name_Main_Storage : constant Name_Id := N + 219; -- GNAT - Name_Memory_Size : constant Name_Id := N + 220; -- Ada 83 - Name_No_Return : constant Name_Id := N + 221; -- GNAT - Name_Obsolescent : constant Name_Id := N + 222; -- GNAT - Name_Optimize : constant Name_Id := N + 223; - Name_Optional_Overriding : constant Name_Id := N + 224; -- Ada 05 - Name_Pack : constant Name_Id := N + 225; - Name_Page : constant Name_Id := N + 226; - Name_Passive : constant Name_Id := N + 227; -- GNAT - Name_Preelaborate : constant Name_Id := N + 228; - Name_Preelaborate_05 : constant Name_Id := N + 229; -- GNAT - Name_Priority : constant Name_Id := N + 230; - Name_Psect_Object : constant Name_Id := N + 231; -- VMS - Name_Pure : constant Name_Id := N + 232; - Name_Pure_05 : constant Name_Id := N + 233; -- GNAT - Name_Pure_Function : constant Name_Id := N + 234; -- GNAT - Name_Remote_Call_Interface : constant Name_Id := N + 235; - Name_Remote_Types : constant Name_Id := N + 236; - Name_Share_Generic : constant Name_Id := N + 237; -- GNAT - Name_Shared : constant Name_Id := N + 238; -- Ada 83 - Name_Shared_Passive : constant Name_Id := N + 239; + Name_Assert : constant Name_Id := N + 166; -- Ada 05 + Name_Asynchronous : constant Name_Id := N + 167; + Name_Atomic : constant Name_Id := N + 168; + Name_Atomic_Components : constant Name_Id := N + 169; + Name_Attach_Handler : constant Name_Id := N + 170; + Name_Comment : constant Name_Id := N + 171; -- GNAT + Name_Common_Object : constant Name_Id := N + 172; -- GNAT + Name_Complete_Representation : constant Name_Id := N + 173; -- GNAT + Name_Complex_Representation : constant Name_Id := N + 174; -- GNAT + Name_Controlled : constant Name_Id := N + 175; + Name_Convention : constant Name_Id := N + 176; + Name_CPP_Class : constant Name_Id := N + 177; -- GNAT + Name_CPP_Constructor : constant Name_Id := N + 178; -- GNAT + Name_CPP_Virtual : constant Name_Id := N + 179; -- GNAT + Name_CPP_Vtable : constant Name_Id := N + 180; -- GNAT + Name_Debug : constant Name_Id := N + 181; -- GNAT + Name_Elaborate : constant Name_Id := N + 182; -- Ada 83 + Name_Elaborate_All : constant Name_Id := N + 183; + Name_Elaborate_Body : constant Name_Id := N + 184; + Name_Export : constant Name_Id := N + 185; + Name_Export_Exception : constant Name_Id := N + 186; -- VMS + Name_Export_Function : constant Name_Id := N + 187; -- GNAT + Name_Export_Object : constant Name_Id := N + 188; -- GNAT + Name_Export_Procedure : constant Name_Id := N + 189; -- GNAT + Name_Export_Value : constant Name_Id := N + 190; -- GNAT + Name_Export_Valued_Procedure : constant Name_Id := N + 191; -- GNAT + Name_External : constant Name_Id := N + 192; -- GNAT + Name_Finalize_Storage_Only : constant Name_Id := N + 193; -- GNAT + Name_Ident : constant Name_Id := N + 194; -- VMS + Name_Import : constant Name_Id := N + 195; + Name_Import_Exception : constant Name_Id := N + 196; -- VMS + Name_Import_Function : constant Name_Id := N + 197; -- GNAT + Name_Import_Object : constant Name_Id := N + 198; -- GNAT + Name_Import_Procedure : constant Name_Id := N + 199; -- GNAT + Name_Import_Valued_Procedure : constant Name_Id := N + 200; -- GNAT + Name_Inline : constant Name_Id := N + 201; + Name_Inline_Always : constant Name_Id := N + 202; -- GNAT + Name_Inline_Generic : constant Name_Id := N + 203; -- GNAT + Name_Inspection_Point : constant Name_Id := N + 204; + Name_Interface_Name : constant Name_Id := N + 205; -- GNAT + Name_Interrupt_Handler : constant Name_Id := N + 206; + Name_Interrupt_Priority : constant Name_Id := N + 207; + Name_Java_Constructor : constant Name_Id := N + 208; -- GNAT + Name_Java_Interface : constant Name_Id := N + 209; -- GNAT + Name_Keep_Names : constant Name_Id := N + 210; -- GNAT + Name_Link_With : constant Name_Id := N + 211; -- GNAT + Name_Linker_Alias : constant Name_Id := N + 212; -- GNAT + Name_Linker_Constructor : constant Name_Id := N + 213; -- GNAT + Name_Linker_Destructor : constant Name_Id := N + 214; -- GNAT + Name_Linker_Options : constant Name_Id := N + 215; + Name_Linker_Section : constant Name_Id := N + 216; -- GNAT + Name_List : constant Name_Id := N + 217; + Name_Machine_Attribute : constant Name_Id := N + 218; -- GNAT + Name_Main : constant Name_Id := N + 219; -- GNAT + Name_Main_Storage : constant Name_Id := N + 220; -- GNAT + Name_Memory_Size : constant Name_Id := N + 221; -- Ada 83 + Name_No_Return : constant Name_Id := N + 222; -- GNAT + Name_Obsolescent : constant Name_Id := N + 223; -- GNAT + Name_Optimize : constant Name_Id := N + 224; + Name_Optional_Overriding : constant Name_Id := N + 225; -- Ada 05 + Name_Pack : constant Name_Id := N + 226; + Name_Page : constant Name_Id := N + 227; + Name_Passive : constant Name_Id := N + 228; -- GNAT + Name_Preelaborate : constant Name_Id := N + 229; + Name_Preelaborate_05 : constant Name_Id := N + 230; -- GNAT + Name_Priority : constant Name_Id := N + 231; + Name_Psect_Object : constant Name_Id := N + 232; -- VMS + Name_Pure : constant Name_Id := N + 233; + Name_Pure_05 : constant Name_Id := N + 234; -- GNAT + Name_Pure_Function : constant Name_Id := N + 235; -- GNAT + Name_Remote_Call_Interface : constant Name_Id := N + 236; + Name_Remote_Types : constant Name_Id := N + 237; + Name_Share_Generic : constant Name_Id := N + 238; -- GNAT + Name_Shared : constant Name_Id := N + 239; -- Ada 83 + Name_Shared_Passive : constant Name_Id := N + 240; -- Note: Storage_Size is not in this list because its name matches the -- name of the corresponding attribute. However, it is included in the @@ -479,27 +480,27 @@ package Snames is -- Note: Storage_Unit is also omitted from the list because of a clash -- with an attribute name, and is treated similarly. - Name_Source_Reference : constant Name_Id := N + 240; -- GNAT - Name_Stream_Convert : constant Name_Id := N + 241; -- GNAT - Name_Subtitle : constant Name_Id := N + 242; -- GNAT - Name_Suppress_All : constant Name_Id := N + 243; -- GNAT - Name_Suppress_Debug_Info : constant Name_Id := N + 244; -- GNAT - Name_Suppress_Initialization : constant Name_Id := N + 245; -- GNAT - Name_System_Name : constant Name_Id := N + 246; -- Ada 83 - Name_Task_Info : constant Name_Id := N + 247; -- GNAT - Name_Task_Name : constant Name_Id := N + 248; -- GNAT - Name_Task_Storage : constant Name_Id := N + 249; -- VMS - Name_Thread_Body : constant Name_Id := N + 250; -- GNAT - Name_Time_Slice : constant Name_Id := N + 251; -- GNAT - Name_Title : constant Name_Id := N + 252; -- GNAT - Name_Unchecked_Union : constant Name_Id := N + 253; -- GNAT - Name_Unimplemented_Unit : constant Name_Id := N + 254; -- GNAT - Name_Unreferenced : constant Name_Id := N + 255; -- GNAT - Name_Unreserve_All_Interrupts : constant Name_Id := N + 256; -- GNAT - Name_Volatile : constant Name_Id := N + 257; - Name_Volatile_Components : constant Name_Id := N + 258; - Name_Weak_External : constant Name_Id := N + 259; -- GNAT - Last_Pragma_Name : constant Name_Id := N + 259; + Name_Source_Reference : constant Name_Id := N + 241; -- GNAT + Name_Stream_Convert : constant Name_Id := N + 242; -- GNAT + Name_Subtitle : constant Name_Id := N + 243; -- GNAT + Name_Suppress_All : constant Name_Id := N + 244; -- GNAT + Name_Suppress_Debug_Info : constant Name_Id := N + 245; -- GNAT + Name_Suppress_Initialization : constant Name_Id := N + 246; -- GNAT + Name_System_Name : constant Name_Id := N + 247; -- Ada 83 + Name_Task_Info : constant Name_Id := N + 248; -- GNAT + Name_Task_Name : constant Name_Id := N + 249; -- GNAT + Name_Task_Storage : constant Name_Id := N + 250; -- VMS + Name_Thread_Body : constant Name_Id := N + 251; -- GNAT + Name_Time_Slice : constant Name_Id := N + 252; -- GNAT + Name_Title : constant Name_Id := N + 253; -- GNAT + Name_Unchecked_Union : constant Name_Id := N + 254; -- GNAT + Name_Unimplemented_Unit : constant Name_Id := N + 255; -- GNAT + Name_Unreferenced : constant Name_Id := N + 256; -- GNAT + Name_Unreserve_All_Interrupts : constant Name_Id := N + 257; -- GNAT + Name_Volatile : constant Name_Id := N + 258; + Name_Volatile_Components : constant Name_Id := N + 259; + Name_Weak_External : constant Name_Id := N + 260; -- GNAT + Last_Pragma_Name : constant Name_Id := N + 260; -- Language convention names for pragma Convention/Export/Import/Interface -- Note that Name_C is not included in this list, since it was already @@ -510,114 +511,114 @@ package Snames is -- Entry and Protected, this is because these conventions cannot be -- specified by a pragma. - First_Convention_Name : constant Name_Id := N + 260; - Name_Ada : constant Name_Id := N + 260; - Name_Assembler : constant Name_Id := N + 261; - Name_COBOL : constant Name_Id := N + 262; - Name_CPP : constant Name_Id := N + 263; - Name_Fortran : constant Name_Id := N + 264; - Name_Intrinsic : constant Name_Id := N + 265; - Name_Java : constant Name_Id := N + 266; - Name_Stdcall : constant Name_Id := N + 267; - Name_Stubbed : constant Name_Id := N + 268; - Last_Convention_Name : constant Name_Id := N + 268; + First_Convention_Name : constant Name_Id := N + 261; + Name_Ada : constant Name_Id := N + 261; + Name_Assembler : constant Name_Id := N + 262; + Name_COBOL : constant Name_Id := N + 263; + Name_CPP : constant Name_Id := N + 264; + Name_Fortran : constant Name_Id := N + 265; + Name_Intrinsic : constant Name_Id := N + 266; + Name_Java : constant Name_Id := N + 267; + Name_Stdcall : constant Name_Id := N + 268; + Name_Stubbed : constant Name_Id := N + 269; + Last_Convention_Name : constant Name_Id := N + 269; -- The following names are preset as synonyms for Assembler - Name_Asm : constant Name_Id := N + 269; - Name_Assembly : constant Name_Id := N + 270; + Name_Asm : constant Name_Id := N + 270; + Name_Assembly : constant Name_Id := N + 271; -- The following names are preset as synonyms for C - Name_Default : constant Name_Id := N + 271; + Name_Default : constant Name_Id := N + 272; -- Name_Exernal (previously defined as pragma) -- The following names are present as synonyms for Stdcall - Name_DLL : constant Name_Id := N + 272; - Name_Win32 : constant Name_Id := N + 273; + Name_DLL : constant Name_Id := N + 273; + Name_Win32 : constant Name_Id := N + 274; -- Other special names used in processing pragmas - Name_As_Is : constant Name_Id := N + 274; - Name_Attribute_Name : constant Name_Id := N + 275; - Name_Body_File_Name : constant Name_Id := N + 276; - Name_Boolean_Entry_Barriers : constant Name_Id := N + 277; - Name_Check : constant Name_Id := N + 278; - Name_Casing : constant Name_Id := N + 279; - Name_Code : constant Name_Id := N + 280; - Name_Component : constant Name_Id := N + 281; - Name_Component_Size_4 : constant Name_Id := N + 282; - Name_Copy : constant Name_Id := N + 283; - Name_D_Float : constant Name_Id := N + 284; - Name_Descriptor : constant Name_Id := N + 285; - Name_Dot_Replacement : constant Name_Id := N + 286; - Name_Dynamic : constant Name_Id := N + 287; - Name_Entity : constant Name_Id := N + 288; - Name_Entry_Count : constant Name_Id := N + 289; - Name_External_Name : constant Name_Id := N + 290; - Name_First_Optional_Parameter : constant Name_Id := N + 291; - Name_Form : constant Name_Id := N + 292; - Name_G_Float : constant Name_Id := N + 293; - Name_Gcc : constant Name_Id := N + 294; - Name_Gnat : constant Name_Id := N + 295; - Name_GPL : constant Name_Id := N + 296; - Name_IEEE_Float : constant Name_Id := N + 297; - Name_Ignore : constant Name_Id := N + 298; - Name_Info : constant Name_Id := N + 299; - Name_Internal : constant Name_Id := N + 300; - Name_Link_Name : constant Name_Id := N + 301; - Name_Lowercase : constant Name_Id := N + 302; - Name_Max_Entry_Queue_Depth : constant Name_Id := N + 303; - Name_Max_Entry_Queue_Length : constant Name_Id := N + 304; - Name_Max_Size : constant Name_Id := N + 305; - Name_Mechanism : constant Name_Id := N + 306; - Name_Message : constant Name_Id := N + 307; - Name_Mixedcase : constant Name_Id := N + 308; - Name_Modified_GPL : constant Name_Id := N + 309; - Name_Name : constant Name_Id := N + 310; - Name_NCA : constant Name_Id := N + 311; - Name_No : constant Name_Id := N + 312; - Name_No_Dependence : constant Name_Id := N + 313; - Name_No_Dynamic_Attachment : constant Name_Id := N + 314; - Name_No_Dynamic_Interrupts : constant Name_Id := N + 315; - Name_No_Requeue : constant Name_Id := N + 316; - Name_No_Requeue_Statements : constant Name_Id := N + 317; - Name_No_Task_Attributes : constant Name_Id := N + 318; - Name_No_Task_Attributes_Package : constant Name_Id := N + 319; - Name_On : constant Name_Id := N + 320; - Name_Parameter_Types : constant Name_Id := N + 321; - Name_Reference : constant Name_Id := N + 322; - Name_Restricted : constant Name_Id := N + 323; - Name_Result_Mechanism : constant Name_Id := N + 324; - Name_Result_Type : constant Name_Id := N + 325; - Name_Runtime : constant Name_Id := N + 326; - Name_SB : constant Name_Id := N + 327; - Name_Secondary_Stack_Size : constant Name_Id := N + 328; - Name_Section : constant Name_Id := N + 329; - Name_Semaphore : constant Name_Id := N + 330; - Name_Simple_Barriers : constant Name_Id := N + 331; - Name_Spec_File_Name : constant Name_Id := N + 332; - Name_State : constant Name_Id := N + 333; - Name_Static : constant Name_Id := N + 334; - Name_Stack_Size : constant Name_Id := N + 335; - Name_Subunit_File_Name : constant Name_Id := N + 336; - Name_Task_Stack_Size_Default : constant Name_Id := N + 337; - Name_Task_Type : constant Name_Id := N + 338; - Name_Time_Slicing_Enabled : constant Name_Id := N + 339; - Name_Top_Guard : constant Name_Id := N + 340; - Name_UBA : constant Name_Id := N + 341; - Name_UBS : constant Name_Id := N + 342; - Name_UBSB : constant Name_Id := N + 343; - Name_Unit_Name : constant Name_Id := N + 344; - Name_Unknown : constant Name_Id := N + 345; - Name_Unrestricted : constant Name_Id := N + 346; - Name_Uppercase : constant Name_Id := N + 347; - Name_User : constant Name_Id := N + 348; - Name_VAX_Float : constant Name_Id := N + 349; - Name_VMS : constant Name_Id := N + 350; - Name_Vtable_Ptr : constant Name_Id := N + 351; - Name_Working_Storage : constant Name_Id := N + 352; + Name_As_Is : constant Name_Id := N + 275; + Name_Attribute_Name : constant Name_Id := N + 276; + Name_Body_File_Name : constant Name_Id := N + 277; + Name_Boolean_Entry_Barriers : constant Name_Id := N + 278; + Name_Check : constant Name_Id := N + 279; + Name_Casing : constant Name_Id := N + 280; + Name_Code : constant Name_Id := N + 281; + Name_Component : constant Name_Id := N + 282; + Name_Component_Size_4 : constant Name_Id := N + 283; + Name_Copy : constant Name_Id := N + 284; + Name_D_Float : constant Name_Id := N + 285; + Name_Descriptor : constant Name_Id := N + 286; + Name_Dot_Replacement : constant Name_Id := N + 287; + Name_Dynamic : constant Name_Id := N + 288; + Name_Entity : constant Name_Id := N + 289; + Name_Entry_Count : constant Name_Id := N + 290; + Name_External_Name : constant Name_Id := N + 291; + Name_First_Optional_Parameter : constant Name_Id := N + 292; + Name_Form : constant Name_Id := N + 293; + Name_G_Float : constant Name_Id := N + 294; + Name_Gcc : constant Name_Id := N + 295; + Name_Gnat : constant Name_Id := N + 296; + Name_GPL : constant Name_Id := N + 297; + Name_IEEE_Float : constant Name_Id := N + 298; + Name_Ignore : constant Name_Id := N + 299; + Name_Info : constant Name_Id := N + 300; + Name_Internal : constant Name_Id := N + 301; + Name_Link_Name : constant Name_Id := N + 302; + Name_Lowercase : constant Name_Id := N + 303; + Name_Max_Entry_Queue_Depth : constant Name_Id := N + 304; + Name_Max_Entry_Queue_Length : constant Name_Id := N + 305; + Name_Max_Size : constant Name_Id := N + 306; + Name_Mechanism : constant Name_Id := N + 307; + Name_Message : constant Name_Id := N + 308; + Name_Mixedcase : constant Name_Id := N + 309; + Name_Modified_GPL : constant Name_Id := N + 310; + Name_Name : constant Name_Id := N + 311; + Name_NCA : constant Name_Id := N + 312; + Name_No : constant Name_Id := N + 313; + Name_No_Dependence : constant Name_Id := N + 314; + Name_No_Dynamic_Attachment : constant Name_Id := N + 315; + Name_No_Dynamic_Interrupts : constant Name_Id := N + 316; + Name_No_Requeue : constant Name_Id := N + 317; + Name_No_Requeue_Statements : constant Name_Id := N + 318; + Name_No_Task_Attributes : constant Name_Id := N + 319; + Name_No_Task_Attributes_Package : constant Name_Id := N + 320; + Name_On : constant Name_Id := N + 321; + Name_Parameter_Types : constant Name_Id := N + 322; + Name_Reference : constant Name_Id := N + 323; + Name_Restricted : constant Name_Id := N + 324; + Name_Result_Mechanism : constant Name_Id := N + 325; + Name_Result_Type : constant Name_Id := N + 326; + Name_Runtime : constant Name_Id := N + 327; + Name_SB : constant Name_Id := N + 328; + Name_Secondary_Stack_Size : constant Name_Id := N + 329; + Name_Section : constant Name_Id := N + 330; + Name_Semaphore : constant Name_Id := N + 331; + Name_Simple_Barriers : constant Name_Id := N + 332; + Name_Spec_File_Name : constant Name_Id := N + 333; + Name_State : constant Name_Id := N + 334; + Name_Static : constant Name_Id := N + 335; + Name_Stack_Size : constant Name_Id := N + 336; + Name_Subunit_File_Name : constant Name_Id := N + 337; + Name_Task_Stack_Size_Default : constant Name_Id := N + 338; + Name_Task_Type : constant Name_Id := N + 339; + Name_Time_Slicing_Enabled : constant Name_Id := N + 340; + Name_Top_Guard : constant Name_Id := N + 341; + Name_UBA : constant Name_Id := N + 342; + Name_UBS : constant Name_Id := N + 343; + Name_UBSB : constant Name_Id := N + 344; + Name_Unit_Name : constant Name_Id := N + 345; + Name_Unknown : constant Name_Id := N + 346; + Name_Unrestricted : constant Name_Id := N + 347; + Name_Uppercase : constant Name_Id := N + 348; + Name_User : constant Name_Id := N + 349; + Name_VAX_Float : constant Name_Id := N + 350; + Name_VMS : constant Name_Id := N + 351; + Name_Vtable_Ptr : constant Name_Id := N + 352; + Name_Working_Storage : constant Name_Id := N + 353; -- Names of recognized attributes. The entries with the comment "Ada 83" -- are attributes that are defined in Ada 83, but not in Ada 95. These @@ -631,166 +632,166 @@ package Snames is -- The entries marked VMS are recognized only in OpenVMS implementations -- of GNAT, and are treated as illegal in all other contexts. - First_Attribute_Name : constant Name_Id := N + 353; - Name_Abort_Signal : constant Name_Id := N + 353; -- GNAT - Name_Access : constant Name_Id := N + 354; - Name_Address : constant Name_Id := N + 355; - Name_Address_Size : constant Name_Id := N + 356; -- GNAT - Name_Aft : constant Name_Id := N + 357; - Name_Alignment : constant Name_Id := N + 358; - Name_Asm_Input : constant Name_Id := N + 359; -- GNAT - Name_Asm_Output : constant Name_Id := N + 360; -- GNAT - Name_AST_Entry : constant Name_Id := N + 361; -- VMS - Name_Bit : constant Name_Id := N + 362; -- GNAT - Name_Bit_Order : constant Name_Id := N + 363; - Name_Bit_Position : constant Name_Id := N + 364; -- GNAT - Name_Body_Version : constant Name_Id := N + 365; - Name_Callable : constant Name_Id := N + 366; - Name_Caller : constant Name_Id := N + 367; - Name_Code_Address : constant Name_Id := N + 368; -- GNAT - Name_Component_Size : constant Name_Id := N + 369; - Name_Compose : constant Name_Id := N + 370; - Name_Constrained : constant Name_Id := N + 371; - Name_Count : constant Name_Id := N + 372; - Name_Default_Bit_Order : constant Name_Id := N + 373; -- GNAT - Name_Definite : constant Name_Id := N + 374; - Name_Delta : constant Name_Id := N + 375; - Name_Denorm : constant Name_Id := N + 376; - Name_Digits : constant Name_Id := N + 377; - Name_Elaborated : constant Name_Id := N + 378; -- GNAT - Name_Emax : constant Name_Id := N + 379; -- Ada 83 - Name_Enum_Rep : constant Name_Id := N + 380; -- GNAT - Name_Epsilon : constant Name_Id := N + 381; -- Ada 83 - Name_Exponent : constant Name_Id := N + 382; - Name_External_Tag : constant Name_Id := N + 383; - Name_First : constant Name_Id := N + 384; - Name_First_Bit : constant Name_Id := N + 385; - Name_Fixed_Value : constant Name_Id := N + 386; -- GNAT - Name_Fore : constant Name_Id := N + 387; - Name_Has_Access_Values : constant Name_Id := N + 388; -- GNAT - Name_Has_Discriminants : constant Name_Id := N + 389; -- GNAT - Name_Identity : constant Name_Id := N + 390; - Name_Img : constant Name_Id := N + 391; -- GNAT - Name_Integer_Value : constant Name_Id := N + 392; -- GNAT - Name_Large : constant Name_Id := N + 393; -- Ada 83 - Name_Last : constant Name_Id := N + 394; - Name_Last_Bit : constant Name_Id := N + 395; - Name_Leading_Part : constant Name_Id := N + 396; - Name_Length : constant Name_Id := N + 397; - Name_Machine_Emax : constant Name_Id := N + 398; - Name_Machine_Emin : constant Name_Id := N + 399; - Name_Machine_Mantissa : constant Name_Id := N + 400; - Name_Machine_Overflows : constant Name_Id := N + 401; - Name_Machine_Radix : constant Name_Id := N + 402; - Name_Machine_Rounding : constant Name_Id := N + 403; -- Ada 05 - Name_Machine_Rounds : constant Name_Id := N + 404; - Name_Machine_Size : constant Name_Id := N + 405; -- GNAT - Name_Mantissa : constant Name_Id := N + 406; -- Ada 83 - Name_Max_Size_In_Storage_Elements : constant Name_Id := N + 407; - Name_Maximum_Alignment : constant Name_Id := N + 408; -- GNAT - Name_Mechanism_Code : constant Name_Id := N + 409; -- GNAT - Name_Mod : constant Name_Id := N + 410; - Name_Model_Emin : constant Name_Id := N + 411; - Name_Model_Epsilon : constant Name_Id := N + 412; - Name_Model_Mantissa : constant Name_Id := N + 413; - Name_Model_Small : constant Name_Id := N + 414; - Name_Modulus : constant Name_Id := N + 415; - Name_Null_Parameter : constant Name_Id := N + 416; -- GNAT - Name_Object_Size : constant Name_Id := N + 417; -- GNAT - Name_Partition_ID : constant Name_Id := N + 418; - Name_Passed_By_Reference : constant Name_Id := N + 419; -- GNAT - Name_Pool_Address : constant Name_Id := N + 420; - Name_Pos : constant Name_Id := N + 421; - Name_Position : constant Name_Id := N + 422; - Name_Range : constant Name_Id := N + 423; - Name_Range_Length : constant Name_Id := N + 424; -- GNAT - Name_Round : constant Name_Id := N + 425; - Name_Safe_Emax : constant Name_Id := N + 426; -- Ada 83 - Name_Safe_First : constant Name_Id := N + 427; - Name_Safe_Large : constant Name_Id := N + 428; -- Ada 83 - Name_Safe_Last : constant Name_Id := N + 429; - Name_Safe_Small : constant Name_Id := N + 430; -- Ada 83 - Name_Scale : constant Name_Id := N + 431; - Name_Scaling : constant Name_Id := N + 432; - Name_Signed_Zeros : constant Name_Id := N + 433; - Name_Size : constant Name_Id := N + 434; - Name_Small : constant Name_Id := N + 435; - Name_Storage_Size : constant Name_Id := N + 436; - Name_Storage_Unit : constant Name_Id := N + 437; -- GNAT - Name_Stream_Size : constant Name_Id := N + 438; -- Ada 05 - Name_Tag : constant Name_Id := N + 439; - Name_Target_Name : constant Name_Id := N + 440; -- GNAT - Name_Terminated : constant Name_Id := N + 441; - Name_To_Address : constant Name_Id := N + 442; -- GNAT - Name_Type_Class : constant Name_Id := N + 443; -- GNAT - Name_UET_Address : constant Name_Id := N + 444; -- GNAT - Name_Unbiased_Rounding : constant Name_Id := N + 445; - Name_Unchecked_Access : constant Name_Id := N + 446; - Name_Unconstrained_Array : constant Name_Id := N + 447; - Name_Universal_Literal_String : constant Name_Id := N + 448; -- GNAT - Name_Unrestricted_Access : constant Name_Id := N + 449; -- GNAT - Name_VADS_Size : constant Name_Id := N + 450; -- GNAT - Name_Val : constant Name_Id := N + 451; - Name_Valid : constant Name_Id := N + 452; - Name_Value_Size : constant Name_Id := N + 453; -- GNAT - Name_Version : constant Name_Id := N + 454; - Name_Wchar_T_Size : constant Name_Id := N + 455; -- GNAT - Name_Wide_Wide_Width : constant Name_Id := N + 456; -- Ada 05 - Name_Wide_Width : constant Name_Id := N + 457; - Name_Width : constant Name_Id := N + 458; - Name_Word_Size : constant Name_Id := N + 459; -- GNAT + First_Attribute_Name : constant Name_Id := N + 354; + Name_Abort_Signal : constant Name_Id := N + 354; -- GNAT + Name_Access : constant Name_Id := N + 355; + Name_Address : constant Name_Id := N + 356; + Name_Address_Size : constant Name_Id := N + 357; -- GNAT + Name_Aft : constant Name_Id := N + 358; + Name_Alignment : constant Name_Id := N + 359; + Name_Asm_Input : constant Name_Id := N + 360; -- GNAT + Name_Asm_Output : constant Name_Id := N + 361; -- GNAT + Name_AST_Entry : constant Name_Id := N + 362; -- VMS + Name_Bit : constant Name_Id := N + 363; -- GNAT + Name_Bit_Order : constant Name_Id := N + 364; + Name_Bit_Position : constant Name_Id := N + 365; -- GNAT + Name_Body_Version : constant Name_Id := N + 366; + Name_Callable : constant Name_Id := N + 367; + Name_Caller : constant Name_Id := N + 368; + Name_Code_Address : constant Name_Id := N + 369; -- GNAT + Name_Component_Size : constant Name_Id := N + 370; + Name_Compose : constant Name_Id := N + 371; + Name_Constrained : constant Name_Id := N + 372; + Name_Count : constant Name_Id := N + 373; + Name_Default_Bit_Order : constant Name_Id := N + 374; -- GNAT + Name_Definite : constant Name_Id := N + 375; + Name_Delta : constant Name_Id := N + 376; + Name_Denorm : constant Name_Id := N + 377; + Name_Digits : constant Name_Id := N + 378; + Name_Elaborated : constant Name_Id := N + 379; -- GNAT + Name_Emax : constant Name_Id := N + 380; -- Ada 83 + Name_Enum_Rep : constant Name_Id := N + 381; -- GNAT + Name_Epsilon : constant Name_Id := N + 382; -- Ada 83 + Name_Exponent : constant Name_Id := N + 383; + Name_External_Tag : constant Name_Id := N + 384; + Name_First : constant Name_Id := N + 385; + Name_First_Bit : constant Name_Id := N + 386; + Name_Fixed_Value : constant Name_Id := N + 387; -- GNAT + Name_Fore : constant Name_Id := N + 388; + Name_Has_Access_Values : constant Name_Id := N + 389; -- GNAT + Name_Has_Discriminants : constant Name_Id := N + 390; -- GNAT + Name_Identity : constant Name_Id := N + 391; + Name_Img : constant Name_Id := N + 392; -- GNAT + Name_Integer_Value : constant Name_Id := N + 393; -- GNAT + Name_Large : constant Name_Id := N + 394; -- Ada 83 + Name_Last : constant Name_Id := N + 395; + Name_Last_Bit : constant Name_Id := N + 396; + Name_Leading_Part : constant Name_Id := N + 397; + Name_Length : constant Name_Id := N + 398; + Name_Machine_Emax : constant Name_Id := N + 399; + Name_Machine_Emin : constant Name_Id := N + 400; + Name_Machine_Mantissa : constant Name_Id := N + 401; + Name_Machine_Overflows : constant Name_Id := N + 402; + Name_Machine_Radix : constant Name_Id := N + 403; + Name_Machine_Rounding : constant Name_Id := N + 404; -- Ada 05 + Name_Machine_Rounds : constant Name_Id := N + 405; + Name_Machine_Size : constant Name_Id := N + 406; -- GNAT + Name_Mantissa : constant Name_Id := N + 407; -- Ada 83 + Name_Max_Size_In_Storage_Elements : constant Name_Id := N + 408; + Name_Maximum_Alignment : constant Name_Id := N + 409; -- GNAT + Name_Mechanism_Code : constant Name_Id := N + 410; -- GNAT + Name_Mod : constant Name_Id := N + 411; + Name_Model_Emin : constant Name_Id := N + 412; + Name_Model_Epsilon : constant Name_Id := N + 413; + Name_Model_Mantissa : constant Name_Id := N + 414; + Name_Model_Small : constant Name_Id := N + 415; + Name_Modulus : constant Name_Id := N + 416; + Name_Null_Parameter : constant Name_Id := N + 417; -- GNAT + Name_Object_Size : constant Name_Id := N + 418; -- GNAT + Name_Partition_ID : constant Name_Id := N + 419; + Name_Passed_By_Reference : constant Name_Id := N + 420; -- GNAT + Name_Pool_Address : constant Name_Id := N + 421; + Name_Pos : constant Name_Id := N + 422; + Name_Position : constant Name_Id := N + 423; + Name_Range : constant Name_Id := N + 424; + Name_Range_Length : constant Name_Id := N + 425; -- GNAT + Name_Round : constant Name_Id := N + 426; + Name_Safe_Emax : constant Name_Id := N + 427; -- Ada 83 + Name_Safe_First : constant Name_Id := N + 428; + Name_Safe_Large : constant Name_Id := N + 429; -- Ada 83 + Name_Safe_Last : constant Name_Id := N + 430; + Name_Safe_Small : constant Name_Id := N + 431; -- Ada 83 + Name_Scale : constant Name_Id := N + 432; + Name_Scaling : constant Name_Id := N + 433; + Name_Signed_Zeros : constant Name_Id := N + 434; + Name_Size : constant Name_Id := N + 435; + Name_Small : constant Name_Id := N + 436; + Name_Storage_Size : constant Name_Id := N + 437; + Name_Storage_Unit : constant Name_Id := N + 438; -- GNAT + Name_Stream_Size : constant Name_Id := N + 439; -- Ada 05 + Name_Tag : constant Name_Id := N + 440; + Name_Target_Name : constant Name_Id := N + 441; -- GNAT + Name_Terminated : constant Name_Id := N + 442; + Name_To_Address : constant Name_Id := N + 443; -- GNAT + Name_Type_Class : constant Name_Id := N + 444; -- GNAT + Name_UET_Address : constant Name_Id := N + 445; -- GNAT + Name_Unbiased_Rounding : constant Name_Id := N + 446; + Name_Unchecked_Access : constant Name_Id := N + 447; + Name_Unconstrained_Array : constant Name_Id := N + 448; + Name_Universal_Literal_String : constant Name_Id := N + 449; -- GNAT + Name_Unrestricted_Access : constant Name_Id := N + 450; -- GNAT + Name_VADS_Size : constant Name_Id := N + 451; -- GNAT + Name_Val : constant Name_Id := N + 452; + Name_Valid : constant Name_Id := N + 453; + Name_Value_Size : constant Name_Id := N + 454; -- GNAT + Name_Version : constant Name_Id := N + 455; + Name_Wchar_T_Size : constant Name_Id := N + 456; -- GNAT + Name_Wide_Wide_Width : constant Name_Id := N + 457; -- Ada 05 + Name_Wide_Width : constant Name_Id := N + 458; + Name_Width : constant Name_Id := N + 459; + Name_Word_Size : constant Name_Id := N + 460; -- GNAT -- Attributes that designate attributes returning renamable functions, -- i.e. functions that return other than a universal value and that -- have non-universal arguments. - First_Renamable_Function_Attribute : constant Name_Id := N + 460; - Name_Adjacent : constant Name_Id := N + 460; - Name_Ceiling : constant Name_Id := N + 461; - Name_Copy_Sign : constant Name_Id := N + 462; - Name_Floor : constant Name_Id := N + 463; - Name_Fraction : constant Name_Id := N + 464; - Name_Image : constant Name_Id := N + 465; - Name_Input : constant Name_Id := N + 466; - Name_Machine : constant Name_Id := N + 467; - Name_Max : constant Name_Id := N + 468; - Name_Min : constant Name_Id := N + 469; - Name_Model : constant Name_Id := N + 470; - Name_Pred : constant Name_Id := N + 471; - Name_Remainder : constant Name_Id := N + 472; - Name_Rounding : constant Name_Id := N + 473; - Name_Succ : constant Name_Id := N + 474; - Name_Truncation : constant Name_Id := N + 475; - Name_Value : constant Name_Id := N + 476; - Name_Wide_Image : constant Name_Id := N + 477; - Name_Wide_Wide_Image : constant Name_Id := N + 478; - Name_Wide_Value : constant Name_Id := N + 479; - Name_Wide_Wide_Value : constant Name_Id := N + 480; - Last_Renamable_Function_Attribute : constant Name_Id := N + 480; + First_Renamable_Function_Attribute : constant Name_Id := N + 461; + Name_Adjacent : constant Name_Id := N + 461; + Name_Ceiling : constant Name_Id := N + 462; + Name_Copy_Sign : constant Name_Id := N + 463; + Name_Floor : constant Name_Id := N + 464; + Name_Fraction : constant Name_Id := N + 465; + Name_Image : constant Name_Id := N + 466; + Name_Input : constant Name_Id := N + 467; + Name_Machine : constant Name_Id := N + 468; + Name_Max : constant Name_Id := N + 469; + Name_Min : constant Name_Id := N + 470; + Name_Model : constant Name_Id := N + 471; + Name_Pred : constant Name_Id := N + 472; + Name_Remainder : constant Name_Id := N + 473; + Name_Rounding : constant Name_Id := N + 474; + Name_Succ : constant Name_Id := N + 475; + Name_Truncation : constant Name_Id := N + 476; + Name_Value : constant Name_Id := N + 477; + Name_Wide_Image : constant Name_Id := N + 478; + Name_Wide_Wide_Image : constant Name_Id := N + 479; + Name_Wide_Value : constant Name_Id := N + 480; + Name_Wide_Wide_Value : constant Name_Id := N + 481; + Last_Renamable_Function_Attribute : constant Name_Id := N + 481; -- Attributes that designate procedures - First_Procedure_Attribute : constant Name_Id := N + 481; - Name_Output : constant Name_Id := N + 481; - Name_Read : constant Name_Id := N + 482; - Name_Write : constant Name_Id := N + 483; - Last_Procedure_Attribute : constant Name_Id := N + 483; + First_Procedure_Attribute : constant Name_Id := N + 482; + Name_Output : constant Name_Id := N + 482; + Name_Read : constant Name_Id := N + 483; + Name_Write : constant Name_Id := N + 484; + Last_Procedure_Attribute : constant Name_Id := N + 484; -- Remaining attributes are ones that return entities - First_Entity_Attribute_Name : constant Name_Id := N + 484; - Name_Elab_Body : constant Name_Id := N + 484; -- GNAT - Name_Elab_Spec : constant Name_Id := N + 485; -- GNAT - Name_Storage_Pool : constant Name_Id := N + 486; + First_Entity_Attribute_Name : constant Name_Id := N + 485; + Name_Elab_Body : constant Name_Id := N + 485; -- GNAT + Name_Elab_Spec : constant Name_Id := N + 486; -- GNAT + Name_Storage_Pool : constant Name_Id := N + 487; -- These attributes are the ones that return types - First_Type_Attribute_Name : constant Name_Id := N + 487; - Name_Base : constant Name_Id := N + 487; - Name_Class : constant Name_Id := N + 488; - Last_Type_Attribute_Name : constant Name_Id := N + 488; - Last_Entity_Attribute_Name : constant Name_Id := N + 488; - Last_Attribute_Name : constant Name_Id := N + 488; + First_Type_Attribute_Name : constant Name_Id := N + 488; + Name_Base : constant Name_Id := N + 488; + Name_Class : constant Name_Id := N + 489; + Last_Type_Attribute_Name : constant Name_Id := N + 489; + Last_Entity_Attribute_Name : constant Name_Id := N + 489; + Last_Attribute_Name : constant Name_Id := N + 489; -- Names of recognized locking policy identifiers @@ -798,10 +799,10 @@ package Snames is -- name (e.g. C for Ceiling_Locking). If new policy names are added, -- the first character must be distinct. - First_Locking_Policy_Name : constant Name_Id := N + 489; - Name_Ceiling_Locking : constant Name_Id := N + 489; - Name_Inheritance_Locking : constant Name_Id := N + 490; - Last_Locking_Policy_Name : constant Name_Id := N + 490; + First_Locking_Policy_Name : constant Name_Id := N + 490; + Name_Ceiling_Locking : constant Name_Id := N + 490; + Name_Inheritance_Locking : constant Name_Id := N + 491; + Last_Locking_Policy_Name : constant Name_Id := N + 491; -- Names of recognized queuing policy identifiers @@ -809,10 +810,10 @@ package Snames is -- name (e.g. F for FIFO_Queuing). If new policy names are added, -- the first character must be distinct. - First_Queuing_Policy_Name : constant Name_Id := N + 491; - Name_FIFO_Queuing : constant Name_Id := N + 491; - Name_Priority_Queuing : constant Name_Id := N + 492; - Last_Queuing_Policy_Name : constant Name_Id := N + 492; + First_Queuing_Policy_Name : constant Name_Id := N + 492; + Name_FIFO_Queuing : constant Name_Id := N + 492; + Name_Priority_Queuing : constant Name_Id := N + 493; + Last_Queuing_Policy_Name : constant Name_Id := N + 493; -- Names of recognized task dispatching policy identifiers @@ -820,224 +821,232 @@ package Snames is -- name (e.g. F for FIFO_WIthinn_Priorities). If new policy names -- are added, the first character must be distinct. - First_Task_Dispatching_Policy_Name : constant Name_Id := N + 493; - Name_FIFO_Within_Priorities : constant Name_Id := N + 493; - Last_Task_Dispatching_Policy_Name : constant Name_Id := N + 493; + First_Task_Dispatching_Policy_Name : constant Name_Id := N + 494; + Name_FIFO_Within_Priorities : constant Name_Id := N + 494; + Last_Task_Dispatching_Policy_Name : constant Name_Id := N + 494; -- Names of recognized checks for pragma Suppress - First_Check_Name : constant Name_Id := N + 494; - Name_Access_Check : constant Name_Id := N + 494; - Name_Accessibility_Check : constant Name_Id := N + 495; - Name_Discriminant_Check : constant Name_Id := N + 496; - Name_Division_Check : constant Name_Id := N + 497; - Name_Elaboration_Check : constant Name_Id := N + 498; - Name_Index_Check : constant Name_Id := N + 499; - Name_Length_Check : constant Name_Id := N + 500; - Name_Overflow_Check : constant Name_Id := N + 501; - Name_Range_Check : constant Name_Id := N + 502; - Name_Storage_Check : constant Name_Id := N + 503; - Name_Tag_Check : constant Name_Id := N + 504; - Name_All_Checks : constant Name_Id := N + 505; - Last_Check_Name : constant Name_Id := N + 505; + First_Check_Name : constant Name_Id := N + 495; + Name_Access_Check : constant Name_Id := N + 495; + Name_Accessibility_Check : constant Name_Id := N + 496; + Name_Discriminant_Check : constant Name_Id := N + 497; + Name_Division_Check : constant Name_Id := N + 498; + Name_Elaboration_Check : constant Name_Id := N + 499; + Name_Index_Check : constant Name_Id := N + 500; + Name_Length_Check : constant Name_Id := N + 501; + Name_Overflow_Check : constant Name_Id := N + 502; + Name_Range_Check : constant Name_Id := N + 503; + Name_Storage_Check : constant Name_Id := N + 504; + Name_Tag_Check : constant Name_Id := N + 505; + Name_All_Checks : constant Name_Id := N + 506; + Last_Check_Name : constant Name_Id := N + 506; -- Names corresponding to reserved keywords, excluding those already -- declared in the attribute list (Access, Delta, Digits, Mod, Range). - Name_Abort : constant Name_Id := N + 506; - Name_Abs : constant Name_Id := N + 507; - Name_Accept : constant Name_Id := N + 508; - Name_And : constant Name_Id := N + 509; - Name_All : constant Name_Id := N + 510; - Name_Array : constant Name_Id := N + 511; - Name_At : constant Name_Id := N + 512; - Name_Begin : constant Name_Id := N + 513; - Name_Body : constant Name_Id := N + 514; - Name_Case : constant Name_Id := N + 515; - Name_Constant : constant Name_Id := N + 516; - Name_Declare : constant Name_Id := N + 517; - Name_Delay : constant Name_Id := N + 518; - Name_Do : constant Name_Id := N + 519; - Name_Else : constant Name_Id := N + 520; - Name_Elsif : constant Name_Id := N + 521; - Name_End : constant Name_Id := N + 522; - Name_Entry : constant Name_Id := N + 523; - Name_Exception : constant Name_Id := N + 524; - Name_Exit : constant Name_Id := N + 525; - Name_For : constant Name_Id := N + 526; - Name_Function : constant Name_Id := N + 527; - Name_Generic : constant Name_Id := N + 528; - Name_Goto : constant Name_Id := N + 529; - Name_If : constant Name_Id := N + 530; - Name_In : constant Name_Id := N + 531; - Name_Is : constant Name_Id := N + 532; - Name_Limited : constant Name_Id := N + 533; - Name_Loop : constant Name_Id := N + 534; - Name_New : constant Name_Id := N + 535; - Name_Not : constant Name_Id := N + 536; - Name_Null : constant Name_Id := N + 537; - Name_Of : constant Name_Id := N + 538; - Name_Or : constant Name_Id := N + 539; - Name_Others : constant Name_Id := N + 540; - Name_Out : constant Name_Id := N + 541; - Name_Package : constant Name_Id := N + 542; - Name_Pragma : constant Name_Id := N + 543; - Name_Private : constant Name_Id := N + 544; - Name_Procedure : constant Name_Id := N + 545; - Name_Raise : constant Name_Id := N + 546; - Name_Record : constant Name_Id := N + 547; - Name_Rem : constant Name_Id := N + 548; - Name_Renames : constant Name_Id := N + 549; - Name_Return : constant Name_Id := N + 550; - Name_Reverse : constant Name_Id := N + 551; - Name_Select : constant Name_Id := N + 552; - Name_Separate : constant Name_Id := N + 553; - Name_Subtype : constant Name_Id := N + 554; - Name_Task : constant Name_Id := N + 555; - Name_Terminate : constant Name_Id := N + 556; - Name_Then : constant Name_Id := N + 557; - Name_Type : constant Name_Id := N + 558; - Name_Use : constant Name_Id := N + 559; - Name_When : constant Name_Id := N + 560; - Name_While : constant Name_Id := N + 561; - Name_With : constant Name_Id := N + 562; - Name_Xor : constant Name_Id := N + 563; + Name_Abort : constant Name_Id := N + 507; + Name_Abs : constant Name_Id := N + 508; + Name_Accept : constant Name_Id := N + 509; + Name_And : constant Name_Id := N + 510; + Name_All : constant Name_Id := N + 511; + Name_Array : constant Name_Id := N + 512; + Name_At : constant Name_Id := N + 513; + Name_Begin : constant Name_Id := N + 514; + Name_Body : constant Name_Id := N + 515; + Name_Case : constant Name_Id := N + 516; + Name_Constant : constant Name_Id := N + 517; + Name_Declare : constant Name_Id := N + 518; + Name_Delay : constant Name_Id := N + 519; + Name_Do : constant Name_Id := N + 520; + Name_Else : constant Name_Id := N + 521; + Name_Elsif : constant Name_Id := N + 522; + Name_End : constant Name_Id := N + 523; + Name_Entry : constant Name_Id := N + 524; + Name_Exception : constant Name_Id := N + 525; + Name_Exit : constant Name_Id := N + 526; + Name_For : constant Name_Id := N + 527; + Name_Function : constant Name_Id := N + 528; + Name_Generic : constant Name_Id := N + 529; + Name_Goto : constant Name_Id := N + 530; + Name_If : constant Name_Id := N + 531; + Name_In : constant Name_Id := N + 532; + Name_Is : constant Name_Id := N + 533; + Name_Limited : constant Name_Id := N + 534; + Name_Loop : constant Name_Id := N + 535; + Name_New : constant Name_Id := N + 536; + Name_Not : constant Name_Id := N + 537; + Name_Null : constant Name_Id := N + 538; + Name_Of : constant Name_Id := N + 539; + Name_Or : constant Name_Id := N + 540; + Name_Others : constant Name_Id := N + 541; + Name_Out : constant Name_Id := N + 542; + Name_Package : constant Name_Id := N + 543; + Name_Pragma : constant Name_Id := N + 544; + Name_Private : constant Name_Id := N + 545; + Name_Procedure : constant Name_Id := N + 546; + Name_Raise : constant Name_Id := N + 547; + Name_Record : constant Name_Id := N + 548; + Name_Rem : constant Name_Id := N + 549; + Name_Renames : constant Name_Id := N + 550; + Name_Return : constant Name_Id := N + 551; + Name_Reverse : constant Name_Id := N + 552; + Name_Select : constant Name_Id := N + 553; + Name_Separate : constant Name_Id := N + 554; + Name_Subtype : constant Name_Id := N + 555; + Name_Task : constant Name_Id := N + 556; + Name_Terminate : constant Name_Id := N + 557; + Name_Then : constant Name_Id := N + 558; + Name_Type : constant Name_Id := N + 559; + Name_Use : constant Name_Id := N + 560; + Name_When : constant Name_Id := N + 561; + Name_While : constant Name_Id := N + 562; + Name_With : constant Name_Id := N + 563; + Name_Xor : constant Name_Id := N + 564; -- Names of intrinsic subprograms -- Note: Asm is missing from this list, since Asm is a legitimate -- convention name. So is To_Adress, which is a GNAT attribute. - First_Intrinsic_Name : constant Name_Id := N + 564; - Name_Divide : constant Name_Id := N + 564; - Name_Enclosing_Entity : constant Name_Id := N + 565; - Name_Exception_Information : constant Name_Id := N + 566; - Name_Exception_Message : constant Name_Id := N + 567; - Name_Exception_Name : constant Name_Id := N + 568; - Name_File : constant Name_Id := N + 569; - Name_Generic_Dispatching_Constructor : constant Name_Id := N + 570; - Name_Import_Address : constant Name_Id := N + 571; - Name_Import_Largest_Value : constant Name_Id := N + 572; - Name_Import_Value : constant Name_Id := N + 573; - Name_Is_Negative : constant Name_Id := N + 574; - Name_Line : constant Name_Id := N + 575; - Name_Rotate_Left : constant Name_Id := N + 576; - Name_Rotate_Right : constant Name_Id := N + 577; - Name_Shift_Left : constant Name_Id := N + 578; - Name_Shift_Right : constant Name_Id := N + 579; - Name_Shift_Right_Arithmetic : constant Name_Id := N + 580; - Name_Source_Location : constant Name_Id := N + 581; - Name_Unchecked_Conversion : constant Name_Id := N + 582; - Name_Unchecked_Deallocation : constant Name_Id := N + 583; - Name_To_Pointer : constant Name_Id := N + 584; - Last_Intrinsic_Name : constant Name_Id := N + 584; + First_Intrinsic_Name : constant Name_Id := N + 565; + Name_Divide : constant Name_Id := N + 565; + Name_Enclosing_Entity : constant Name_Id := N + 566; + Name_Exception_Information : constant Name_Id := N + 567; + Name_Exception_Message : constant Name_Id := N + 568; + Name_Exception_Name : constant Name_Id := N + 569; + Name_File : constant Name_Id := N + 570; + Name_Generic_Dispatching_Constructor : constant Name_Id := N + 571; + Name_Import_Address : constant Name_Id := N + 572; + Name_Import_Largest_Value : constant Name_Id := N + 573; + Name_Import_Value : constant Name_Id := N + 574; + Name_Is_Negative : constant Name_Id := N + 575; + Name_Line : constant Name_Id := N + 576; + Name_Rotate_Left : constant Name_Id := N + 577; + Name_Rotate_Right : constant Name_Id := N + 578; + Name_Shift_Left : constant Name_Id := N + 579; + Name_Shift_Right : constant Name_Id := N + 580; + Name_Shift_Right_Arithmetic : constant Name_Id := N + 581; + Name_Source_Location : constant Name_Id := N + 582; + Name_Unchecked_Conversion : constant Name_Id := N + 583; + Name_Unchecked_Deallocation : constant Name_Id := N + 584; + Name_To_Pointer : constant Name_Id := N + 585; + Last_Intrinsic_Name : constant Name_Id := N + 585; -- Names used in processing intrinsic calls - Name_Free : constant Name_Id := N + 585; + Name_Free : constant Name_Id := N + 586; -- Reserved words used only in Ada 95 - First_95_Reserved_Word : constant Name_Id := N + 586; - Name_Abstract : constant Name_Id := N + 586; - Name_Aliased : constant Name_Id := N + 587; - Name_Protected : constant Name_Id := N + 588; - Name_Until : constant Name_Id := N + 589; - Name_Requeue : constant Name_Id := N + 590; - Name_Tagged : constant Name_Id := N + 591; - Last_95_Reserved_Word : constant Name_Id := N + 591; + First_95_Reserved_Word : constant Name_Id := N + 587; + Name_Abstract : constant Name_Id := N + 587; + Name_Aliased : constant Name_Id := N + 588; + Name_Protected : constant Name_Id := N + 589; + Name_Until : constant Name_Id := N + 590; + Name_Requeue : constant Name_Id := N + 591; + Name_Tagged : constant Name_Id := N + 592; + Last_95_Reserved_Word : constant Name_Id := N + 592; subtype Ada_95_Reserved_Words is Name_Id range First_95_Reserved_Word .. Last_95_Reserved_Word; -- Miscellaneous names used in semantic checking - Name_Raise_Exception : constant Name_Id := N + 592; + Name_Raise_Exception : constant Name_Id := N + 593; -- Additional reserved words and identifiers used in GNAT Project Files -- Note that Name_External is already previously declared - Name_Ada_Roots : constant Name_Id := N + 593; - Name_Binder : constant Name_Id := N + 594; - Name_Binder_Driver : constant Name_Id := N + 595; - Name_Body_Suffix : constant Name_Id := N + 596; - Name_Builder : constant Name_Id := N + 597; - Name_Compiler : constant Name_Id := N + 598; - Name_Compiler_Driver : constant Name_Id := N + 599; - Name_Compiler_Kind : constant Name_Id := N + 600; - Name_Compute_Dependency : constant Name_Id := N + 601; - Name_Cross_Reference : constant Name_Id := N + 602; - Name_Default_Linker : constant Name_Id := N + 603; - Name_Default_Switches : constant Name_Id := N + 604; - Name_Dependency_Option : constant Name_Id := N + 605; - Name_Exec_Dir : constant Name_Id := N + 606; - Name_Executable : constant Name_Id := N + 607; - Name_Executable_Suffix : constant Name_Id := N + 608; - Name_Extends : constant Name_Id := N + 609; - Name_Externally_Built : constant Name_Id := N + 610; - Name_Finder : constant Name_Id := N + 611; - Name_Global_Configuration_Pragmas : constant Name_Id := N + 612; - Name_Gnatls : constant Name_Id := N + 613; - Name_Gnatstub : constant Name_Id := N + 614; - Name_Implementation : constant Name_Id := N + 615; - Name_Implementation_Exceptions : constant Name_Id := N + 616; - Name_Implementation_Suffix : constant Name_Id := N + 617; - Name_Include_Option : constant Name_Id := N + 618; - Name_Language_Processing : constant Name_Id := N + 619; - Name_Languages : constant Name_Id := N + 620; - Name_Library_Ali_Dir : constant Name_Id := N + 621; - Name_Library_Dir : constant Name_Id := N + 622; - Name_Library_Auto_Init : constant Name_Id := N + 623; - Name_Library_GCC : constant Name_Id := N + 624; - Name_Library_Interface : constant Name_Id := N + 625; - Name_Library_Kind : constant Name_Id := N + 626; - Name_Library_Name : constant Name_Id := N + 627; - Name_Library_Options : constant Name_Id := N + 628; - Name_Library_Reference_Symbol_File : constant Name_Id := N + 629; - Name_Library_Src_Dir : constant Name_Id := N + 630; - Name_Library_Symbol_File : constant Name_Id := N + 631; - Name_Library_Symbol_Policy : constant Name_Id := N + 632; - Name_Library_Version : constant Name_Id := N + 633; - Name_Linker : constant Name_Id := N + 634; - Name_Local_Configuration_Pragmas : constant Name_Id := N + 635; - Name_Locally_Removed_Files : constant Name_Id := N + 636; - Name_Metrics : constant Name_Id := N + 637; - Name_Naming : constant Name_Id := N + 638; - Name_Object_Dir : constant Name_Id := N + 639; - Name_Pretty_Printer : constant Name_Id := N + 640; - Name_Project : constant Name_Id := N + 641; - Name_Separate_Suffix : constant Name_Id := N + 642; - Name_Source_Dirs : constant Name_Id := N + 643; - Name_Source_Files : constant Name_Id := N + 644; - Name_Source_List_File : constant Name_Id := N + 645; - Name_Spec : constant Name_Id := N + 646; - Name_Spec_Suffix : constant Name_Id := N + 647; - Name_Specification : constant Name_Id := N + 648; - Name_Specification_Exceptions : constant Name_Id := N + 649; - Name_Specification_Suffix : constant Name_Id := N + 650; - Name_Switches : constant Name_Id := N + 651; + Name_Ada_Roots : constant Name_Id := N + 594; + Name_Binder : constant Name_Id := N + 595; + Name_Binder_Driver : constant Name_Id := N + 596; + Name_Body_Suffix : constant Name_Id := N + 597; + Name_Builder : constant Name_Id := N + 598; + Name_Compiler : constant Name_Id := N + 599; + Name_Compiler_Driver : constant Name_Id := N + 600; + Name_Compiler_Kind : constant Name_Id := N + 601; + Name_Compute_Dependency : constant Name_Id := N + 602; + Name_Cross_Reference : constant Name_Id := N + 603; + Name_Default_Linker : constant Name_Id := N + 604; + Name_Default_Switches : constant Name_Id := N + 605; + Name_Dependency_Option : constant Name_Id := N + 606; + Name_Exec_Dir : constant Name_Id := N + 607; + Name_Executable : constant Name_Id := N + 608; + Name_Executable_Suffix : constant Name_Id := N + 609; + Name_Extends : constant Name_Id := N + 610; + Name_Externally_Built : constant Name_Id := N + 611; + Name_Finder : constant Name_Id := N + 612; + Name_Global_Configuration_Pragmas : constant Name_Id := N + 613; + Name_Gnatls : constant Name_Id := N + 614; + Name_Gnatstub : constant Name_Id := N + 615; + Name_Implementation : constant Name_Id := N + 616; + Name_Implementation_Exceptions : constant Name_Id := N + 617; + Name_Implementation_Suffix : constant Name_Id := N + 618; + Name_Include_Option : constant Name_Id := N + 619; + Name_Language_Processing : constant Name_Id := N + 620; + Name_Languages : constant Name_Id := N + 621; + Name_Library_Ali_Dir : constant Name_Id := N + 622; + Name_Library_Dir : constant Name_Id := N + 623; + Name_Library_Auto_Init : constant Name_Id := N + 624; + Name_Library_GCC : constant Name_Id := N + 625; + Name_Library_Interface : constant Name_Id := N + 626; + Name_Library_Kind : constant Name_Id := N + 627; + Name_Library_Name : constant Name_Id := N + 628; + Name_Library_Options : constant Name_Id := N + 629; + Name_Library_Reference_Symbol_File : constant Name_Id := N + 630; + Name_Library_Src_Dir : constant Name_Id := N + 631; + Name_Library_Symbol_File : constant Name_Id := N + 632; + Name_Library_Symbol_Policy : constant Name_Id := N + 633; + Name_Library_Version : constant Name_Id := N + 634; + Name_Linker : constant Name_Id := N + 635; + Name_Local_Configuration_Pragmas : constant Name_Id := N + 636; + Name_Locally_Removed_Files : constant Name_Id := N + 637; + Name_Metrics : constant Name_Id := N + 638; + Name_Naming : constant Name_Id := N + 639; + Name_Object_Dir : constant Name_Id := N + 640; + Name_Pretty_Printer : constant Name_Id := N + 641; + Name_Project : constant Name_Id := N + 642; + Name_Separate_Suffix : constant Name_Id := N + 643; + Name_Source_Dirs : constant Name_Id := N + 644; + Name_Source_Files : constant Name_Id := N + 645; + Name_Source_List_File : constant Name_Id := N + 646; + Name_Spec : constant Name_Id := N + 647; + Name_Spec_Suffix : constant Name_Id := N + 648; + Name_Specification : constant Name_Id := N + 649; + Name_Specification_Exceptions : constant Name_Id := N + 650; + Name_Specification_Suffix : constant Name_Id := N + 651; + Name_Switches : constant Name_Id := N + 652; -- Other miscellaneous names used in front end - Name_Unaligned_Valid : constant Name_Id := N + 652; + Name_Unaligned_Valid : constant Name_Id := N + 653; - -- ---------------------------------------------------------------- - First_2005_Reserved_Word : constant Name_Id := N + 653; - Name_Interface : constant Name_Id := N + 653; - Name_Overriding : constant Name_Id := N + 654; - Name_Synchronized : constant Name_Id := N + 655; - Last_2005_Reserved_Word : constant Name_Id := N + 655; + -- Ada 2005 reserved words + + First_2005_Reserved_Word : constant Name_Id := N + 654; + Name_Interface : constant Name_Id := N + 654; + Name_Overriding : constant Name_Id := N + 655; + Name_Synchronized : constant Name_Id := N + 656; + Last_2005_Reserved_Word : constant Name_Id := N + 656; subtype Ada_2005_Reserved_Words is Name_Id range First_2005_Reserved_Word .. Last_2005_Reserved_Word; -- Mark last defined name for consistency check in Snames body - Last_Predefined_Name : constant Name_Id := N + 655; + Last_Predefined_Name : constant Name_Id := N + 656; + + --------------------------------------- + -- Subtypes Defining Name Categories -- + --------------------------------------- subtype Any_Operator_Name is Name_Id range First_Operator_Name .. Last_Operator_Name; + subtype Configuration_Pragma_Names is Name_Id range + First_Pragma_Name .. Last_Configuration_Pragma_Name; + ------------------------------ -- Attribute ID Definitions -- ------------------------------ @@ -1246,6 +1255,7 @@ package Snames is Pragma_Ada_83, Pragma_Ada_95, Pragma_Ada_05, + Pragma_Ada_2005, Pragma_Assertion_Policy, Pragma_C_Pass_By_Copy, Pragma_Compile_Time_Warning, @@ -1393,9 +1403,9 @@ package Snames is Pragma_Volatile_Components, Pragma_Weak_External, - -- The following pragmas are on their own, out of order, because of - -- the special processing required to deal with the fact that their - -- names match existing attribute names. + -- The following pragmas are on their own, out of order, because of the + -- special processing required to deal with the fact that their names + -- match existing attribute names. Pragma_AST_Entry, Pragma_Interface, @@ -1462,6 +1472,13 @@ package Snames is -- name that has been specified by a Convention_Identifier pragma. -- If neither case holds, returns False. + function Is_Keyword_Name (N : Name_Id) return Boolean; + -- Test to see if the name N is one of the (reserved) keyword names. This + -- includes all the keywords defined in the Ada standard (taking into + -- effect the Ada version). It also includes additional keywords in + -- contexts where additional keywords have been added. For example, in the + -- context of parsing project files, keywords such as PROJECT are included. + function Is_Locking_Policy_Name (N : Name_Id) return Boolean; -- Test to see if the name N is the name of a recognized locking policy diff --git a/gcc/ada/snames.h b/gcc/ada/snames.h index d16232e435a..106473070f4 100644 --- a/gcc/ada/snames.h +++ b/gcc/ada/snames.h @@ -6,7 +6,7 @@ * * * C Header File * * * - * Copyright (C) 1992-2005, Free Software Foundation, Inc. * + * Copyright (C) 1992-2006, Free Software Foundation, Inc. * * * * GNAT is free software; you can redistribute it and/or modify it under * * terms of the GNU General Public License as published by the Free Soft- * @@ -215,152 +215,153 @@ extern unsigned char Get_Pragma_Id (int); #define Pragma_Ada_83 0 #define Pragma_Ada_95 1 #define Pragma_Ada_05 2 -#define Pragma_Assertion_Policy 3 -#define Pragma_C_Pass_By_Copy 4 -#define Pragma_Compile_Time_Warning 5 -#define Pragma_Component_Alignment 6 -#define Pragma_Convention_Identifier 7 -#define Pragma_Debug_Policy 8 -#define Pragma_Detect_Blocking 9 -#define Pragma_Discard_Names 10 -#define Pragma_Elaboration_Checks 11 -#define Pragma_Eliminate 12 -#define Pragma_Explicit_Overriding 13 -#define Pragma_Extend_System 14 -#define Pragma_Extensions_Allowed 15 -#define Pragma_External_Name_Casing 16 -#define Pragma_Float_Representation 17 -#define Pragma_Initialize_Scalars 18 -#define Pragma_Interrupt_State 19 -#define Pragma_License 20 -#define Pragma_Locking_Policy 21 -#define Pragma_Long_Float 22 -#define Pragma_No_Run_Time 23 -#define Pragma_No_Strict_Aliasing 24 -#define Pragma_Normalize_Scalars 25 -#define Pragma_Polling 26 -#define Pragma_Persistent_BSS 27 -#define Pragma_Profile 28 -#define Pragma_Profile_Warnings 29 -#define Pragma_Propagate_Exceptions 30 -#define Pragma_Queuing_Policy 31 -#define Pragma_Ravenscar 32 -#define Pragma_Restricted_Run_Time 33 -#define Pragma_Restrictions 34 -#define Pragma_Restriction_Warnings 35 -#define Pragma_Reviewable 36 -#define Pragma_Source_File_Name 37 -#define Pragma_Source_File_Name_Project 38 -#define Pragma_Style_Checks 39 -#define Pragma_Suppress 40 -#define Pragma_Suppress_Exception_Locations 41 -#define Pragma_Task_Dispatching_Policy 42 -#define Pragma_Universal_Data 43 -#define Pragma_Unsuppress 44 -#define Pragma_Use_VADS_Size 45 -#define Pragma_Validity_Checks 46 -#define Pragma_Warnings 47 -#define Pragma_Abort_Defer 48 -#define Pragma_All_Calls_Remote 49 -#define Pragma_Annotate 50 -#define Pragma_Assert 51 -#define Pragma_Asynchronous 52 -#define Pragma_Atomic 53 -#define Pragma_Atomic_Components 54 -#define Pragma_Attach_Handler 55 -#define Pragma_Comment 56 -#define Pragma_Common_Object 57 -#define Pragma_Complete_Representation 58 -#define Pragma_Complex_Representation 59 -#define Pragma_Controlled 60 -#define Pragma_Convention 61 -#define Pragma_CPP_Class 62 -#define Pragma_CPP_Constructor 63 -#define Pragma_CPP_Virtual 64 -#define Pragma_CPP_Vtable 65 -#define Pragma_Debug 66 -#define Pragma_Elaborate 67 -#define Pragma_Elaborate_All 68 -#define Pragma_Elaborate_Body 69 -#define Pragma_Export 70 -#define Pragma_Export_Exception 71 -#define Pragma_Export_Function 72 -#define Pragma_Export_Object 73 -#define Pragma_Export_Procedure 74 -#define Pragma_Export_Value 75 -#define Pragma_Export_Valued_Procedure 76 -#define Pragma_External 77 -#define Pragma_Finalize_Storage_Only 78 -#define Pragma_Ident 79 -#define Pragma_Import 80 -#define Pragma_Import_Exception 81 -#define Pragma_Import_Function 82 -#define Pragma_Import_Object 83 -#define Pragma_Import_Procedure 84 -#define Pragma_Import_Valued_Procedure 85 -#define Pragma_Inline 86 -#define Pragma_Inline_Always 87 -#define Pragma_Inline_Generic 88 -#define Pragma_Inspection_Point 89 -#define Pragma_Interface_Name 90 -#define Pragma_Interrupt_Handler 91 -#define Pragma_Interrupt_Priority 92 -#define Pragma_Java_Constructor 93 -#define Pragma_Java_Interface 94 -#define Pragma_Keep_Names 95 -#define Pragma_Link_With 96 -#define Pragma_Linker_Alias 97 -#define Pragma_Linker_Constructor 98 -#define Pragma_Linker_Destructor 99 -#define Pragma_Linker_Options 100 -#define Pragma_Linker_Section 101 -#define Pragma_List 102 -#define Pragma_Machine_Attribute 103 -#define Pragma_Main 104 -#define Pragma_Main_Storage 105 -#define Pragma_Memory_Size 106 -#define Pragma_No_Return 107 -#define Pragma_Obsolescent 108 -#define Pragma_Optimize 109 -#define Pragma_Optional_Overriding 110 -#define Pragma_Pack 111 -#define Pragma_Page 112 -#define Pragma_Passive 113 -#define Pragma_Preelaborate 114 -#define Pragma_Preelaborate_05 115 -#define Pragma_Priority 116 -#define Pragma_Psect_Object 117 -#define Pragma_Pure 118 -#define Pragma_Pure_05 119 -#define Pragma_Pure_Function 120 -#define Pragma_Remote_Call_Interface 121 -#define Pragma_Remote_Types 122 -#define Pragma_Share_Generic 123 -#define Pragma_Shared 124 -#define Pragma_Shared_Passive 125 -#define Pragma_Source_Reference 126 -#define Pragma_Stream_Convert 127 -#define Pragma_Subtitle 128 -#define Pragma_Suppress_All 129 -#define Pragma_Suppress_Debug_Info 130 -#define Pragma_Suppress_Initialization 131 -#define Pragma_System_Name 132 -#define Pragma_Task_Info 133 -#define Pragma_Task_Name 134 -#define Pragma_Task_Storage 135 -#define Pragma_Thread_Body 136 -#define Pragma_Time_Slice 137 -#define Pragma_Title 138 -#define Pragma_Unchecked_Union 139 -#define Pragma_Unimplemented_Unit 140 -#define Pragma_Unreferenced 141 -#define Pragma_Unreserve_All_Interrupts 142 -#define Pragma_Volatile 143 -#define Pragma_Volatile_Components 144 -#define Pragma_Weak_External 145 -#define Pragma_AST_Entry 146 -#define Pragma_Interface 147 -#define Pragma_Storage_Size 148 -#define Pragma_Storage_Unit 149 +#define Pragma_Ada_2005 3 +#define Pragma_Assertion_Policy 4 +#define Pragma_C_Pass_By_Copy 5 +#define Pragma_Compile_Time_Warning 6 +#define Pragma_Component_Alignment 7 +#define Pragma_Convention_Identifier 8 +#define Pragma_Debug_Policy 9 +#define Pragma_Detect_Blocking 10 +#define Pragma_Discard_Names 11 +#define Pragma_Elaboration_Checks 12 +#define Pragma_Eliminate 13 +#define Pragma_Explicit_Overriding 14 +#define Pragma_Extend_System 15 +#define Pragma_Extensions_Allowed 16 +#define Pragma_External_Name_Casing 17 +#define Pragma_Float_Representation 18 +#define Pragma_Initialize_Scalars 19 +#define Pragma_Interrupt_State 20 +#define Pragma_License 21 +#define Pragma_Locking_Policy 22 +#define Pragma_Long_Float 23 +#define Pragma_No_Run_Time 24 +#define Pragma_No_Strict_Aliasing 25 +#define Pragma_Normalize_Scalars 26 +#define Pragma_Polling 27 +#define Pragma_Persistent_BSS 28 +#define Pragma_Profile 29 +#define Pragma_Profile_Warnings 30 +#define Pragma_Propagate_Exceptions 31 +#define Pragma_Queuing_Policy 32 +#define Pragma_Ravenscar 33 +#define Pragma_Restricted_Run_Time 34 +#define Pragma_Restrictions 35 +#define Pragma_Restriction_Warnings 36 +#define Pragma_Reviewable 37 +#define Pragma_Source_File_Name 38 +#define Pragma_Source_File_Name_Project 39 +#define Pragma_Style_Checks 40 +#define Pragma_Suppress 41 +#define Pragma_Suppress_Exception_Locations 42 +#define Pragma_Task_Dispatching_Policy 43 +#define Pragma_Universal_Data 44 +#define Pragma_Unsuppress 45 +#define Pragma_Use_VADS_Size 46 +#define Pragma_Validity_Checks 47 +#define Pragma_Warnings 48 +#define Pragma_Abort_Defer 49 +#define Pragma_All_Calls_Remote 50 +#define Pragma_Annotate 51 +#define Pragma_Assert 52 +#define Pragma_Asynchronous 53 +#define Pragma_Atomic 54 +#define Pragma_Atomic_Components 55 +#define Pragma_Attach_Handler 56 +#define Pragma_Comment 57 +#define Pragma_Common_Object 58 +#define Pragma_Complete_Representation 59 +#define Pragma_Complex_Representation 60 +#define Pragma_Controlled 61 +#define Pragma_Convention 62 +#define Pragma_CPP_Class 63 +#define Pragma_CPP_Constructor 64 +#define Pragma_CPP_Virtual 65 +#define Pragma_CPP_Vtable 66 +#define Pragma_Debug 67 +#define Pragma_Elaborate 68 +#define Pragma_Elaborate_All 69 +#define Pragma_Elaborate_Body 70 +#define Pragma_Export 71 +#define Pragma_Export_Exception 72 +#define Pragma_Export_Function 73 +#define Pragma_Export_Object 74 +#define Pragma_Export_Procedure 75 +#define Pragma_Export_Value 76 +#define Pragma_Export_Valued_Procedure 77 +#define Pragma_External 78 +#define Pragma_Finalize_Storage_Only 79 +#define Pragma_Ident 80 +#define Pragma_Import 81 +#define Pragma_Import_Exception 82 +#define Pragma_Import_Function 83 +#define Pragma_Import_Object 84 +#define Pragma_Import_Procedure 85 +#define Pragma_Import_Valued_Procedure 86 +#define Pragma_Inline 87 +#define Pragma_Inline_Always 88 +#define Pragma_Inline_Generic 89 +#define Pragma_Inspection_Point 90 +#define Pragma_Interface_Name 91 +#define Pragma_Interrupt_Handler 92 +#define Pragma_Interrupt_Priority 93 +#define Pragma_Java_Constructor 94 +#define Pragma_Java_Interface 95 +#define Pragma_Keep_Names 96 +#define Pragma_Link_With 97 +#define Pragma_Linker_Alias 98 +#define Pragma_Linker_Constructor 99 +#define Pragma_Linker_Destructor 100 +#define Pragma_Linker_Options 101 +#define Pragma_Linker_Section 102 +#define Pragma_List 103 +#define Pragma_Machine_Attribute 104 +#define Pragma_Main 105 +#define Pragma_Main_Storage 106 +#define Pragma_Memory_Size 107 +#define Pragma_No_Return 108 +#define Pragma_Obsolescent 109 +#define Pragma_Optimize 110 +#define Pragma_Optional_Overriding 111 +#define Pragma_Pack 112 +#define Pragma_Page 113 +#define Pragma_Passive 114 +#define Pragma_Preelaborate 115 +#define Pragma_Preelaborate_05 116 +#define Pragma_Priority 117 +#define Pragma_Psect_Object 118 +#define Pragma_Pure 119 +#define Pragma_Pure_05 120 +#define Pragma_Pure_Function 121 +#define Pragma_Remote_Call_Interface 122 +#define Pragma_Remote_Types 123 +#define Pragma_Share_Generic 124 +#define Pragma_Shared 125 +#define Pragma_Shared_Passive 126 +#define Pragma_Source_Reference 127 +#define Pragma_Stream_Convert 128 +#define Pragma_Subtitle 129 +#define Pragma_Suppress_All 130 +#define Pragma_Suppress_Debug_Info 131 +#define Pragma_Suppress_Initialization 132 +#define Pragma_System_Name 133 +#define Pragma_Task_Info 134 +#define Pragma_Task_Name 135 +#define Pragma_Task_Storage 136 +#define Pragma_Thread_Body 137 +#define Pragma_Time_Slice 138 +#define Pragma_Title 139 +#define Pragma_Unchecked_Union 140 +#define Pragma_Unimplemented_Unit 141 +#define Pragma_Unreferenced 142 +#define Pragma_Unreserve_All_Interrupts 143 +#define Pragma_Volatile 144 +#define Pragma_Volatile_Components 145 +#define Pragma_Weak_External 146 +#define Pragma_AST_Entry 147 +#define Pragma_Interface 148 +#define Pragma_Storage_Size 149 +#define Pragma_Storage_Unit 150 /* End of snames.h (C version of Snames package spec) */ |