------------------------------------------------------------------------------
--                                                                          --
--                         GNAT COMPILER COMPONENTS                         --
--                                                                          --
--                               S N A M E S                                --
--                                                                          --
--                                 S p e c                                  --
--                                                                          --
--          Copyright (C) 1992-2021, 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- --
-- ware  Foundation;  either version 3,  or (at your option) any later ver- --
-- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
-- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
-- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
-- for  more details.  You should have  received  a copy of the GNU General --
-- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
-- http://www.gnu.org/licenses for a complete copy of the license.          --
--                                                                          --
-- GNAT was originally developed  by the GNAT team at  New York University. --
-- Extensive contributions were provided by Ada Core Technologies Inc.      --
--                                                                          --
------------------------------------------------------------------------------

with Namet; use Namet;

package Snames is

   --  This package contains definitions of standard names (i.e. entries in
   --  the Names table) that are used throughout the GNAT compiler. It also
   --  contains the definitions of some enumeration types whose definitions
   --  are tied to the order of these preset names.

   --  NOTE WELL: If you add names of attributes, the enumeration type
   --  Attribute_Id must be kept in synch (same names in same order, with
   --  some exceptions). See the body of Get_Attribute_Id for details. The
   --  same is true of other enumeration types declared in this package.

   --  ALSO NOTE: In the case of a name that corresponds to both an attribute
   --  and a pragma, the Name_Id must be defined in the attribute section
   --  (between First_Attribute_Name and Last_Attribute_Name). Also, please
   --  add a comment in the list of Name_Ids at the point where the name would
   --  normally appear alphabetically (for an example, see comment starting
   --  "Note: CPU ..."). The Pragma_Id with that name must be defined in the
   --  last section of literals for type Pragma_Id (see set of Pragma_Ids that
   --  require special processing due to matching an attribute name). Finally,
   --  the bodies of functions Get_Pragma_Id and Is_Pragma_Name must be updated
   --  to test for each such pragma that shares a name with an attribute.

   ------------------
   -- Preset Names --
   ------------------

   --  The following are preset entries in the names table, which are entered
   --  at the start of every compilation for easy access. Note that the order
   --  of initialization of these names in the body must be coordinated with
   --  the order of names in this table.

   --  Note: a name may not appear more than once in the following list. If
   --  additional pragmas or attributes are introduced which might otherwise
   --  cause a duplicate, then list it only once in this table, and adjust the
   --  definition of the functions for testing for pragma names and attribute
   --  names, and returning their ID values. Of course everything is simpler if
   --  no such duplications occur.

   --  First we have the one character names used to optimize the lookup
   --  process for one character identifiers (to avoid the hashing in this
   --  case) There are a full 256 of these, but only the entries for lower
   --  case and upper case letters have identifiers

   --  The lower case letter entries are used for one character identifiers
   --  appearing in the source, for example in pragma Interface (C).

   Name_A : constant Name_Id := First_Name_Id + Character'Pos ('a');
   Name_B : constant Name_Id := First_Name_Id + Character'Pos ('b');
   Name_C : constant Name_Id := First_Name_Id + Character'Pos ('c');
   Name_D : constant Name_Id := First_Name_Id + Character'Pos ('d');
   Name_E : constant Name_Id := First_Name_Id + Character'Pos ('e');
   Name_F : constant Name_Id := First_Name_Id + Character'Pos ('f');
   Name_G : constant Name_Id := First_Name_Id + Character'Pos ('g');
   Name_H : constant Name_Id := First_Name_Id + Character'Pos ('h');
   Name_I : constant Name_Id := First_Name_Id + Character'Pos ('i');
   Name_J : constant Name_Id := First_Name_Id + Character'Pos ('j');
   Name_K : constant Name_Id := First_Name_Id + Character'Pos ('k');
   Name_L : constant Name_Id := First_Name_Id + Character'Pos ('l');
   Name_M : constant Name_Id := First_Name_Id + Character'Pos ('m');
   Name_N : constant Name_Id := First_Name_Id + Character'Pos ('n');
   Name_O : constant Name_Id := First_Name_Id + Character'Pos ('o');
   Name_P : constant Name_Id := First_Name_Id + Character'Pos ('p');
   Name_Q : constant Name_Id := First_Name_Id + Character'Pos ('q');
   Name_R : constant Name_Id := First_Name_Id + Character'Pos ('r');
   Name_S : constant Name_Id := First_Name_Id + Character'Pos ('s');
   Name_T : constant Name_Id := First_Name_Id + Character'Pos ('t');
   Name_U : constant Name_Id := First_Name_Id + Character'Pos ('u');
   Name_V : constant Name_Id := First_Name_Id + Character'Pos ('v');
   Name_W : constant Name_Id := First_Name_Id + Character'Pos ('w');
   Name_X : constant Name_Id := First_Name_Id + Character'Pos ('x');
   Name_Y : constant Name_Id := First_Name_Id + Character'Pos ('y');
   Name_Z : constant Name_Id := First_Name_Id + Character'Pos ('z');

   --  The upper case letter entries are used by expander code for local
   --  variables that do not require unique names (e.g. formal parameter names
   --  in constructed procedures).

   Name_uA : constant Name_Id := First_Name_Id + Character'Pos ('A');
   Name_uB : constant Name_Id := First_Name_Id + Character'Pos ('B');
   Name_uC : constant Name_Id := First_Name_Id + Character'Pos ('C');
   Name_uD : constant Name_Id := First_Name_Id + Character'Pos ('D');
   Name_uE : constant Name_Id := First_Name_Id + Character'Pos ('E');
   Name_uF : constant Name_Id := First_Name_Id + Character'Pos ('F');
   Name_uG : constant Name_Id := First_Name_Id + Character'Pos ('G');
   Name_uH : constant Name_Id := First_Name_Id + Character'Pos ('H');
   Name_uI : constant Name_Id := First_Name_Id + Character'Pos ('I');
   Name_uJ : constant Name_Id := First_Name_Id + Character'Pos ('J');
   Name_uK : constant Name_Id := First_Name_Id + Character'Pos ('K');
   Name_uL : constant Name_Id := First_Name_Id + Character'Pos ('L');
   Name_uM : constant Name_Id := First_Name_Id + Character'Pos ('M');
   Name_uN : constant Name_Id := First_Name_Id + Character'Pos ('N');
   Name_uO : constant Name_Id := First_Name_Id + Character'Pos ('O');
   Name_uP : constant Name_Id := First_Name_Id + Character'Pos ('P');
   Name_uQ : constant Name_Id := First_Name_Id + Character'Pos ('Q');
   Name_uR : constant Name_Id := First_Name_Id + Character'Pos ('R');
   Name_uS : constant Name_Id := First_Name_Id + Character'Pos ('S');
   Name_uT : constant Name_Id := First_Name_Id + Character'Pos ('T');
   Name_uU : constant Name_Id := First_Name_Id + Character'Pos ('U');
   Name_uV : constant Name_Id := First_Name_Id + Character'Pos ('V');
   Name_uW : constant Name_Id := First_Name_Id + Character'Pos ('W');
   Name_uX : constant Name_Id := First_Name_Id + Character'Pos ('X');
   Name_uY : constant Name_Id := First_Name_Id + Character'Pos ('Y');
   Name_uZ : constant Name_Id := First_Name_Id + Character'Pos ('Z');

   --  Note: the following table is read by the utility program 'xsnamest', and
   --  its format should not be changed without coordinating with this program.

   N : constant Name_Id := First_Name_Id + 256;
   --  Synonym used in standard name definitions

   --  Names referenced in snames.h

   Name_uParent                        : constant Name_Id := N + $;
   Name_uTag                           : constant Name_Id := N + $;
   Name_Off                            : constant Name_Id := N + $;
   Name_Space                          : constant Name_Id := N + $;
   Name_Time                           : constant Name_Id := N + $;

   --  Names of aspects for which there are no matching pragmas or attributes
   --  so that they need to be included for aspect specification use.

   Name_Default_Value                  : constant Name_Id := N + $;
   Name_Default_Component_Value        : constant Name_Id := N + $;
   Name_Designated_Storage_Model       : constant Name_Id := N + $;
   Name_Dimension                      : constant Name_Id := N + $;
   Name_Dimension_System               : constant Name_Id := N + $;
   Name_Disable_Controlled             : constant Name_Id := N + $;
   Name_Dynamic_Predicate              : constant Name_Id := N + $;
   Name_Exclusive_Functions            : constant Name_Id := N + $;
   Name_Full_Access_Only               : constant Name_Id := N + $;
   Name_Integer_Literal                : constant Name_Id := N + $;
   Name_No_Controlled_Parts            : constant Name_Id := N + $;
   Name_No_Task_Parts                  : constant Name_Id := N + $;
   Name_Real_Literal                   : constant Name_Id := N + $;
   Name_Relaxed_Initialization         : constant Name_Id := N + $;
   Name_Stable_Properties              : constant Name_Id := N + $;
   Name_Static_Predicate               : constant Name_Id := N + $;
   Name_Storage_Model                  : constant Name_Id := N + $;
   Name_Storage_Model_Type             : constant Name_Id := N + $;
   Name_String_Literal                 : constant Name_Id := N + $;
   Name_Synchronization                : constant Name_Id := N + $;
   Name_Unimplemented                  : constant Name_Id := N + $;

   --  Some special names used by the expander. Note that the lower case u's
   --  at the start of these names get translated to extra underscores. These
   --  names are only referenced internally by expander generated code.

   Name_uAbort_Signal                  : constant Name_Id := N + $;
   Name_uAlignment                     : constant Name_Id := N + $;
   Name_uAssign                        : constant Name_Id := N + $;
   Name_uATCB                          : constant Name_Id := N + $;
   Name_uChain                         : constant Name_Id := N + $;
   Name_uController                    : constant Name_Id := N + $;
   Name_uCPU                           : constant Name_Id := N + $;
   Name_uDispatching_Domain            : constant Name_Id := N + $;
   Name_uFinalizer                     : constant Name_Id := N + $;
   Name_uFinalizer_Old                 : constant Name_Id := N + $;
   Name_uFinalization_Controller       : constant Name_Id := N + $;
   Name_uInit                          : constant Name_Id := N + $;
   Name_uInit_Level                    : constant Name_Id := N + $;
   Name_uInvariant                     : constant Name_Id := N + $;
   Name_uMaster                        : constant Name_Id := N + $;
   Name_uObject                        : constant Name_Id := N + $;
   Name_uPost                          : constant Name_Id := N + $;
   Name_uPostconditions                : constant Name_Id := N + $;
   Name_uPostcond_Enabled              : constant Name_Id := N + $;
   Name_uPre                           : constant Name_Id := N + $;
   Name_uPriority                      : constant Name_Id := N + $;
   Name_uRelative_Deadline             : constant Name_Id := N + $;
   Name_uResult                        : constant Name_Id := N + $;
   Name_uResult_Object_For_Postcond    : constant Name_Id := N + $;
   Name_uReturn_Success_For_Postcond   : constant Name_Id := N + $;
   Name_uSecondary_Stack               : constant Name_Id := N + $;
   Name_uSecondary_Stack_Size          : constant Name_Id := N + $;
   Name_uSize                          : constant Name_Id := N + $;
   Name_uStack                         : constant Name_Id := N + $;
   Name_uTask                          : constant Name_Id := N + $;
   Name_uTask_Id                       : constant Name_Id := N + $;
   Name_uTask_Info                     : constant Name_Id := N + $;
   Name_uTask_Name                     : constant Name_Id := N + $;
   Name_uType_Invariant                : constant Name_Id := N + $;
   Name_uVariants                      : constant Name_Id := N + $;

   --  Names of predefined primitives used in the expansion of dispatching
   --  requeue and select statements, Abort, 'Callable and 'Terminated.

   Name_uDisp_Asynchronous_Select      : constant Name_Id := N + $;
   Name_uDisp_Conditional_Select       : constant Name_Id := N + $;
   Name_uDisp_Get_Prim_Op_Kind         : constant Name_Id := N + $;
   Name_uDisp_Get_Task_Id              : constant Name_Id := N + $;
   Name_uDisp_Requeue                  : constant Name_Id := N + $;
   Name_uDisp_Timed_Select             : constant Name_Id := N + $;

   --  Names of routines and fields in Ada.Finalization, needed by expander

   Name_Initialize                     : constant Name_Id := N + $;
   Name_Adjust                         : constant Name_Id := N + $;
   Name_Finalize                       : constant Name_Id := N + $;
   Name_Finalize_Address               : constant Name_Id := N + $;
   Name_Next                           : constant Name_Id := N + $;
   Name_Prev                           : constant Name_Id := N + $;

   --  Names of allocation routines, also needed by expander

   Name_Allocate                       : constant Name_Id := N + $;
   Name_Deallocate                     : constant Name_Id := N + $;
   Name_Dereference                    : constant Name_Id := N + $;

   --  Text_IO generic subpackages (see Rtsfind.Check_Text_IO_Special_Unit)

   First_Text_IO_Package               : constant Name_Id := N + $;
   Name_Decimal_IO                     : constant Name_Id := N + $;
   Name_Enumeration_IO                 : constant Name_Id := N + $;
   Name_Fixed_IO                       : constant Name_Id := N + $;
   Name_Float_IO                       : constant Name_Id := N + $;
   Name_Integer_IO                     : constant Name_Id := N + $;
   Name_Modular_IO                     : constant Name_Id := N + $;
   Last_Text_IO_Package                : constant Name_Id := N + $;

   subtype Text_IO_Package_Name is Name_Id
     range First_Text_IO_Package .. Last_Text_IO_Package;

   --  Names used by the analyzer and expander for aspect Dimension and
   --  Dimension_System to deal with Sqrt and IO routines.

   Name_Dim_Symbol                     : constant Name_Id := N + $; -- Ada 12
   Name_Item                           : constant Name_Id := N + $; -- Ada 12
   Name_Put_Dim_Of                     : constant Name_Id := N + $; -- Ada 12
   Name_Sqrt                           : constant Name_Id := N + $; -- Ada 12
   Name_Symbol                         : constant Name_Id := N + $; -- Ada 12
   Name_Unit_Symbol                    : constant Name_Id := N + $; -- Ada 12

   --  Some miscellaneous names used for error detection/recovery

   Name_Const                          : constant Name_Id := N + $;
   Name_Error                          : constant Name_Id := N + $;
   Name_False                          : constant Name_Id := N + $;
   Name_Go                             : constant Name_Id := N + $;
   Name_Put                            : constant Name_Id := N + $;
   Name_Put_Line                       : constant Name_Id := N + $;
   Name_To                             : constant Name_Id := N + $;

   --  Name used by the integrated preprocessor

   Name_Defined                        : constant Name_Id := N + $;

   --  Names for packages that are treated specially by the compiler

   Name_Exception_Traces               : constant Name_Id := N + $;
   Name_Finalization                   : constant Name_Id := N + $;
   Name_Interfaces                     : constant Name_Id := N + $;
   Name_Most_Recent_Exception          : constant Name_Id := N + $;
   Name_Standard                       : constant Name_Id := N + $;
   Name_System                         : constant Name_Id := N + $;
   Name_Text_IO                        : constant Name_Id := N + $;
   Name_Wide_Text_IO                   : constant Name_Id := N + $;
   Name_Wide_Wide_Text_IO              : constant Name_Id := N + $;

   --  Names for detecting predefined potentially blocking subprograms

   Name_Abort_Task                     : constant Name_Id := N + $;
   Name_Bounded_IO                     : constant Name_Id := N + $;
   Name_C_Streams                      : constant Name_Id := N + $;
   Name_Complex_IO                     : constant Name_Id := N + $;
   Name_Directories                    : constant Name_Id := N + $;
   Name_Direct_IO                      : constant Name_Id := N + $;
   Name_Dispatching                    : constant Name_Id := N + $;
   Name_Editing                        : constant Name_Id := N + $;
   Name_EDF                            : constant Name_Id := N + $;
   Name_Reset_Standard_Files           : constant Name_Id := N + $;
   Name_Sequential_IO                  : constant Name_Id := N + $;
   Name_Strings                        : constant Name_Id := N + $;
   Name_Streams                        : constant Name_Id := N + $;
   Name_Suspend_Until_True             : constant Name_Id := N + $;
   Name_Suspend_Until_True_And_Set_Deadline : constant Name_Id := N + $;
   Name_Synchronous_Barriers           : constant Name_Id := N + $;
   Name_Task_Identification            : constant Name_Id := N + $;
   Name_Text_Streams                   : constant Name_Id := N + $;
   Name_Unbounded                      : constant Name_Id := N + $;
   Name_Unbounded_IO                   : constant Name_Id := N + $;
   Name_Wait_For_Release               : constant Name_Id := N + $;
   Name_Wide_Unbounded                 : constant Name_Id := N + $;
   Name_Wide_Wide_Unbounded            : constant Name_Id := N + $;
   Name_Yield                          : constant Name_Id := N + $;

   --  Names of implementations of the distributed systems annex

   First_PCS_Name                      : constant Name_Id := N + $;
   Name_No_DSA                         : constant Name_Id := N + $;
   Name_GARLIC_DSA                     : constant Name_Id := N + $;
   Name_PolyORB_DSA                    : constant Name_Id := N + $;
   Last_PCS_Name                       : constant Name_Id := N + $;

   subtype PCS_Names is Name_Id
     range First_PCS_Name .. Last_PCS_Name;

   --  Names of identifiers used in expanding distribution stubs

   Name_Addr                           : constant Name_Id := N + $;
   Name_Async                          : constant Name_Id := N + $;
   Name_Get_Active_Partition_ID        : constant Name_Id := N + $;
   Name_Get_RCI_Package_Receiver       : constant Name_Id := N + $;
   Name_Get_RCI_Package_Ref            : constant Name_Id := N + $;
   Name_Origin                         : constant Name_Id := N + $;
   Name_Params                         : constant Name_Id := N + $;
   Name_Partition                      : constant Name_Id := N + $;
   Name_Ras                            : constant Name_Id := N + $;
   Name_uCall                          : constant Name_Id := N + $;
   Name_RCI_Name                       : constant Name_Id := N + $;
   Name_Receiver                       : constant Name_Id := N + $;
   Name_Rpc                            : constant Name_Id := N + $;
   Name_Subp_Id                        : constant Name_Id := N + $;
   Name_Operation                      : constant Name_Id := N + $;
   Name_Argument                       : constant Name_Id := N + $;
   Name_Arg_Modes                      : constant Name_Id := N + $;
   Name_Target                         : constant Name_Id := N + $;
   Name_Req                            : constant Name_Id := N + $;
   Name_Obj_TypeCode                   : constant Name_Id := N + $;
   Name_Stub                           : constant Name_Id := N + $;

   --  Operator Symbol entries. The actual names have an upper case O at the
   --  start in place of the Op_ prefix (e.g. the actual name that corresponds
   --  to Name_Op_Abs is "Oabs").

   First_Operator_Name                 : constant Name_Id := N + $;
   Name_Op_Abs                         : constant Name_Id := N + $; -- "abs"
   Name_Op_And                         : constant Name_Id := N + $; -- "and"
   Name_Op_Mod                         : constant Name_Id := N + $; -- "mod"
   Name_Op_Not                         : constant Name_Id := N + $; -- "not"
   Name_Op_Or                          : constant Name_Id := N + $; -- "or"
   Name_Op_Rem                         : constant Name_Id := N + $; -- "rem"
   Name_Op_Xor                         : constant Name_Id := N + $; -- "xor"
   Name_Op_Eq                          : constant Name_Id := N + $; -- "="
   Name_Op_Ne                          : constant Name_Id := N + $; -- "/="
   Name_Op_Lt                          : constant Name_Id := N + $; -- "<"
   Name_Op_Le                          : constant Name_Id := N + $; -- "<="
   Name_Op_Gt                          : constant Name_Id := N + $; -- ">"
   Name_Op_Ge                          : constant Name_Id := N + $; -- ">="
   Name_Op_Add                         : constant Name_Id := N + $; -- "+"
   Name_Op_Subtract                    : constant Name_Id := N + $; -- "-"
   Name_Op_Concat                      : constant Name_Id := N + $; -- "&"
   Name_Op_Multiply                    : constant Name_Id := N + $; -- "*"
   Name_Op_Divide                      : constant Name_Id := N + $; -- "/"
   Name_Op_Expon                       : constant Name_Id := N + $; -- "**"
   Last_Operator_Name                  : constant Name_Id := N + $;

   --  Names for all pragmas recognized by GNAT. The entries with the comment
   --  "Ada 83" are pragmas that are defined in Ada 83, but not in Ada 95.
   --  These pragmas are fully implemented in all modes (Ada 83, Ada 95, and
   --  Ada 2005). In Ada 95 and Ada 2005 modes, they are technically considered
   --  to be implementation dependent pragmas.

   --  The entries marked GNAT are pragmas that are defined by GNAT and that
   --  are implemented in all modes (Ada 83, Ada 95, and Ada 2005). Complete
   --  descriptions of the syntax of these implementation dependent pragmas may
   --  be found in the appropriate section in unit Sem_Prag in file
   --  sem-prag.adb, and they are documented in the GNAT reference manual.

   --  The entries marked Ada 05 are Ada 2005 pragmas. They are implemented in
   --  Ada 83 and Ada 95 mode as well, where they are technically considered to
   --  be implementation dependent pragmas.

   --  The entries marked Ada 12 are Ada 2012 pragmas. They are implemented in
   --  Ada 83, Ada 95, and Ada 2005 mode as well, where they are technically
   --  considered to be implementation dependent pragmas.

   First_Pragma_Name                   : constant Name_Id := N + $;

   --  Configuration pragmas are grouped at start. Note that there is a list
   --  of them in the GNAT UG (doc/gnat_ugn/the_gnat_compilation_model.rst),
   --  be sure to update this list if a new configuration pragma is added.

   Name_Ada_83                         : constant Name_Id := N + $; -- GNAT
   Name_Ada_95                         : constant Name_Id := N + $; -- GNAT
   Name_Ada_05                         : constant Name_Id := N + $; -- GNAT
   Name_Ada_2005                       : constant Name_Id := N + $; -- GNAT
   Name_Ada_12                         : constant Name_Id := N + $; -- GNAT
   Name_Ada_2012                       : constant Name_Id := N + $; -- GNAT
   Name_Ada_2022                       : constant Name_Id := N + $; -- GNAT
   Name_Aggregate_Individually_Assign  : constant Name_Id := N + $; -- GNAT
   Name_Allow_Integer_Address          : constant Name_Id := N + $; -- GNAT
   Name_Annotate                       : constant Name_Id := N + $; -- GNAT
   Name_Assertion_Policy               : constant Name_Id := N + $; -- Ada 05
   Name_Assume_No_Invalid_Values       : constant Name_Id := N + $; -- GNAT
   Name_C_Pass_By_Copy                 : constant Name_Id := N + $; -- GNAT
   Name_Check_Float_Overflow           : constant Name_Id := N + $; -- GNAT
   Name_Check_Name                     : constant Name_Id := N + $; -- GNAT
   Name_Check_Policy                   : constant Name_Id := N + $; -- GNAT
   Name_Compile_Time_Error             : constant Name_Id := N + $; -- GNAT
   Name_Compile_Time_Warning           : constant Name_Id := N + $; -- GNAT
   Name_Component_Alignment            : constant Name_Id := N + $; -- GNAT
   Name_Convention_Identifier          : constant Name_Id := N + $; -- GNAT
   Name_Debug_Policy                   : constant Name_Id := N + $; -- GNAT
   Name_Detect_Blocking                : constant Name_Id := N + $; -- Ada 05

   --  Note: Default_Scalar_Storage_Order is not in this list because its name
   --  matches the name of the corresponding attribute. However, it is included
   --  in the definition of the type Pragma_Id, and the functions Get_Pragma_Id
   --  and Is_Pragma_Name correctly recognize Default_Scalar_Storage_Order.

   Name_Default_Storage_Pool           : constant Name_Id := N + $; -- Ada 12
   Name_Disable_Atomic_Synchronization : constant Name_Id := N + $; -- GNAT
   Name_Discard_Names                  : constant Name_Id := N + $;
   Name_Elaboration_Checks             : constant Name_Id := N + $; -- GNAT
   Name_Eliminate                      : constant Name_Id := N + $; -- GNAT
   Name_Enable_Atomic_Synchronization  : constant Name_Id := N + $; -- GNAT
   Name_Extend_System                  : constant Name_Id := N + $; -- GNAT
   Name_Extensions_Allowed             : constant Name_Id := N + $; -- GNAT
   Name_External_Name_Casing           : constant Name_Id := N + $; -- GNAT

   --  Note: Fast_Math is not in this list because its name matches the name of
   --  the corresponding attribute. However, it is included in the definition
   --  of the type Pragma_Id and the functions Get_Pragma_Id and Is_Pragma_Name
   --  correctly recognize and process Fast_Math.

   Name_Favor_Top_Level                : constant Name_Id := N + $; -- GNAT
   Name_GNAT_Annotate                  : constant Name_Id := N + $; -- GNAT
   Name_Ignore_Pragma                  : constant Name_Id := N + $; -- GNAT
   Name_Implicit_Packing               : constant Name_Id := N + $; -- GNAT
   Name_Initialize_Scalars             : constant Name_Id := N + $; -- GNAT
   Name_Interrupt_State                : constant Name_Id := N + $; -- GNAT
   Name_License                        : constant Name_Id := N + $; -- GNAT
   Name_Locking_Policy                 : constant Name_Id := N + $;
   Name_No_Component_Reordering        : constant Name_Id := N + $; -- GNAT
   Name_No_Heap_Finalization           : constant Name_Id := N + $; -- GNAT
   Name_No_Run_Time                    : constant Name_Id := N + $; -- GNAT
   Name_No_Strict_Aliasing             : constant Name_Id := N + $; -- GNAT
   Name_Normalize_Scalars              : constant Name_Id := N + $;
   Name_Optimize_Alignment             : constant Name_Id := N + $; -- GNAT
   Name_Overflow_Mode                  : constant Name_Id := N + $; -- GNAT
   Name_Overriding_Renamings           : constant Name_Id := N + $; -- GNAT
   Name_Partition_Elaboration_Policy   : constant Name_Id := N + $; -- Ada 05
   Name_Persistent_BSS                 : constant Name_Id := N + $; -- GNAT
   Name_Prefix_Exception_Messages      : constant Name_Id := N + $; -- GNAT
   Name_Priority_Specific_Dispatching  : constant Name_Id := N + $; -- Ada 05
   Name_Profile                        : constant Name_Id := N + $; -- Ada 05
   Name_Profile_Warnings               : constant Name_Id := N + $; -- GNAT
   Name_Propagate_Exceptions           : constant Name_Id := N + $; -- GNAT
   Name_Queuing_Policy                 : constant Name_Id := N + $;
   Name_Rational                       : constant Name_Id := N + $; -- GNAT
   Name_Ravenscar                      : constant Name_Id := N + $; -- GNAT
   Name_Rename_Pragma                  : constant Name_Id := N + $; -- GNAT
   Name_Restricted_Run_Time            : constant Name_Id := N + $; -- GNAT
   Name_Restrictions                   : constant Name_Id := N + $;
   Name_Restriction_Warnings           : constant Name_Id := N + $; -- GNAT
   Name_Reviewable                     : constant Name_Id := N + $;
   Name_Short_Circuit_And_Or           : constant Name_Id := N + $; -- GNAT
   Name_Short_Descriptors              : constant Name_Id := N + $; -- GNAT
   Name_Source_File_Name               : constant Name_Id := N + $; -- GNAT
   Name_Source_File_Name_Project       : constant Name_Id := N + $; -- GNAT
   Name_SPARK_Mode                     : constant Name_Id := N + $; -- GNAT
   Name_Style_Checks                   : constant Name_Id := N + $; -- GNAT
   Name_Suppress                       : constant Name_Id := N + $;
   Name_Suppress_Exception_Locations   : constant Name_Id := N + $; -- GNAT
   Name_Task_Dispatching_Policy        : constant Name_Id := N + $;
   Name_Unevaluated_Use_Of_Old         : constant Name_Id := N + $; -- GNAT
   Name_Unsuppress                     : constant Name_Id := N + $; -- Ada 05
   Name_Use_VADS_Size                  : constant Name_Id := N + $; -- GNAT
   Name_Validity_Checks                : constant Name_Id := N + $; -- GNAT
   Name_Warning_As_Error               : constant Name_Id := N + $; -- GNAT
   Name_Warnings                       : constant Name_Id := N + $; -- GNAT
   Name_Wide_Character_Encoding        : constant Name_Id := N + $; -- GNAT
   Last_Configuration_Pragma_Name      : constant Name_Id := N + $;

   --  Remaining pragma names (non-configuration pragmas)

   Name_Abort_Defer                    : constant Name_Id := N + $; -- GNAT
   Name_Abstract_State                 : constant Name_Id := N + $; -- GNAT
   Name_All_Calls_Remote               : constant Name_Id := N + $;
   Name_Assert                         : constant Name_Id := N + $; -- Ada 05
   Name_Assert_And_Cut                 : constant Name_Id := N + $; -- GNAT
   Name_Assume                         : constant Name_Id := N + $; -- GNAT
   Name_Async_Readers                  : constant Name_Id := N + $; -- GNAT
   Name_Async_Writers                  : constant Name_Id := N + $; -- GNAT
   Name_Asynchronous                   : constant Name_Id := N + $;
   Name_Atomic                         : constant Name_Id := N + $;
   Name_Atomic_Components              : constant Name_Id := N + $;
   Name_Attach_Handler                 : constant Name_Id := N + $;
   Name_Attribute_Definition           : constant Name_Id := N + $; -- GNAT
   Name_Check                          : constant Name_Id := N + $; -- GNAT
   Name_Comment                        : constant Name_Id := N + $; -- GNAT
   Name_Common_Object                  : constant Name_Id := N + $; -- GNAT
   Name_Complete_Representation        : constant Name_Id := N + $; -- GNAT
   Name_Complex_Representation         : constant Name_Id := N + $; -- GNAT
   Name_Constant_After_Elaboration     : constant Name_Id := N + $; -- GNAT
   Name_Contract_Cases                 : constant Name_Id := N + $; -- GNAT
   Name_Controlled                     : constant Name_Id := N + $;
   Name_Convention                     : constant Name_Id := N + $;
   Name_CPP_Class                      : constant Name_Id := N + $; -- GNAT
   Name_CPP_Constructor                : constant Name_Id := N + $; -- GNAT
   Name_CPP_Virtual                    : constant Name_Id := N + $; -- GNAT
   Name_CPP_Vtable                     : constant Name_Id := N + $; -- GNAT
   Name_CUDA_Device                    : constant Name_Id := N + $; -- GNAT
   Name_CUDA_Execute                   : constant Name_Id := N + $; -- GNAT
   Name_CUDA_Global                    : constant Name_Id := N + $; -- GNAT

   --  Note: CPU is not in this list because its name matches the name of
   --  the corresponding attribute. However, it is included in the definition
   --  of the type Pragma_Id and the functions Get_Pragma_Id and Is_Pragma_Name
   --  correctly recognize and process CPU. CPU is a standard Ada 2012 pragma.

   Name_Deadline_Floor                 : constant Name_Id := N + $; -- GNAT
   Name_Debug                          : constant Name_Id := N + $; -- GNAT
   Name_Default_Initial_Condition      : constant Name_Id := N + $; -- GNAT
   Name_Depends                        : constant Name_Id := N + $; -- GNAT

   --  Note: Dispatching_Domain is not in this list because its name matches
   --  the name of the corresponding attribute. However, it is included in the
   --  definition of the type Pragma_Id, and the functions Get_Pragma_Id and
   --  Is_Pragma_Name correctly recognize and process Dispatching_Domain.
   --  Dispatching_Domain is a standard Ada 2012 pragma.

   Name_Effective_Reads                : constant Name_Id := N + $; -- GNAT
   Name_Effective_Writes               : constant Name_Id := N + $; -- GNAT
   Name_Elaborate                      : constant Name_Id := N + $; -- Ada 83
   Name_Elaborate_All                  : constant Name_Id := N + $;
   Name_Elaborate_Body                 : constant Name_Id := N + $;
   Name_Export                         : constant Name_Id := N + $;
   Name_Export_Function                : constant Name_Id := N + $; -- GNAT
   Name_Export_Object                  : constant Name_Id := N + $; -- GNAT
   Name_Export_Procedure               : constant Name_Id := N + $; -- GNAT
   Name_Export_Valued_Procedure        : constant Name_Id := N + $; -- GNAT
   Name_Extensions_Visible             : constant Name_Id := N + $; -- GNAT
   Name_External                       : constant Name_Id := N + $; -- GNAT
   Name_Finalize_Storage_Only          : constant Name_Id := N + $; -- GNAT
   Name_Ghost                          : constant Name_Id := N + $; -- GNAT
   Name_Global                         : constant Name_Id := N + $; -- GNAT
   Name_Ident                          : constant Name_Id := N + $; -- GNAT
   Name_Implementation_Defined         : constant Name_Id := N + $; -- GNAT
   Name_Implemented                    : constant Name_Id := N + $; -- Ada 12
   Name_Import                         : constant Name_Id := N + $;
   Name_Import_Function                : constant Name_Id := N + $; -- GNAT
   Name_Import_Object                  : constant Name_Id := N + $; -- GNAT
   Name_Import_Procedure               : constant Name_Id := N + $; -- GNAT
   Name_Import_Valued_Procedure        : constant Name_Id := N + $; -- GNAT
   Name_Independent                    : constant Name_Id := N + $; -- Ada 12
   Name_Independent_Components         : constant Name_Id := N + $; -- Ada 12
   Name_Initial_Condition              : constant Name_Id := N + $; -- GNAT
   Name_Initializes                    : constant Name_Id := N + $; -- GNAT
   Name_Inline                         : constant Name_Id := N + $;
   Name_Inline_Always                  : constant Name_Id := N + $; -- GNAT
   Name_Inline_Generic                 : constant Name_Id := N + $; -- GNAT
   Name_Inspection_Point               : constant Name_Id := N + $;

   --  Note: Interface is not in this list because its name matches an Ada 05
   --  keyword. However it is included in the definition of the type Pragma_Id,
   --  and the functions Get_Pragma_Id and Is_Pragma_Name correctly recognize
   --  and process Name_Interface.

   Name_Interface_Name                 : constant Name_Id := N + $; -- GNAT
   Name_Interrupt_Handler              : constant Name_Id := N + $;

   --  Note: Interrupt_Priority is not in this list because its name matches
   --  the name of the corresponding attribute. However, it is included in the
   --  definition of the type Pragma_Id, and the functions Get_Pragma_Id and
   --  Is_Pragma_Name correctly recognize and process Interrupt_Priority.

   Name_Invariant                      : constant Name_Id := N + $; -- GNAT
   Name_Keep_Names                     : constant Name_Id := N + $; -- GNAT
   Name_Link_With                      : constant Name_Id := N + $; -- GNAT
   Name_Linker_Alias                   : constant Name_Id := N + $; -- GNAT
   Name_Linker_Constructor             : constant Name_Id := N + $; -- GNAT
   Name_Linker_Destructor              : constant Name_Id := N + $; -- GNAT
   Name_Linker_Options                 : constant Name_Id := N + $;
   Name_Linker_Section                 : constant Name_Id := N + $; -- GNAT
   Name_List                           : constant Name_Id := N + $;

   --  Note: Lock_Free is not in this list because its name matches the name of
   --  the corresponding attribute. However, it is included in the definition
   --  of the type Pragma_Id and the functions Get_Pragma_Id and Is_Pragma_Name
   --  correctly recognize and process Lock_Free. Lock_Free is a GNAT pragma.

   Name_Loop_Invariant                 : constant Name_Id := N + $; -- GNAT
   Name_Loop_Optimize                  : constant Name_Id := N + $; -- GNAT
   Name_Loop_Variant                   : constant Name_Id := N + $; -- GNAT
   Name_Machine_Attribute              : constant Name_Id := N + $; -- GNAT
   Name_Main                           : constant Name_Id := N + $; -- GNAT
   Name_Main_Storage                   : constant Name_Id := N + $; -- GNAT
   Name_Max_Entry_Queue_Depth          : constant Name_Id := N + $; -- GNAT
   Name_Max_Entry_Queue_Length         : constant Name_Id := N + $; -- Ada 12
   Name_Max_Queue_Length               : constant Name_Id := N + $; -- GNAT
   Name_Memory_Size                    : constant Name_Id := N + $; -- Ada 83
   Name_No_Body                        : constant Name_Id := N + $; -- GNAT
   Name_No_Caching                     : constant Name_Id := N + $; -- GNAT
   Name_No_Elaboration_Code_All        : constant Name_Id := N + $; -- GNAT
   Name_No_Inline                      : constant Name_Id := N + $; -- GNAT
   Name_No_Return                      : constant Name_Id := N + $; -- Ada 05
   Name_No_Tagged_Streams              : constant Name_Id := N + $; -- GNAT
   Name_Obsolescent                    : constant Name_Id := N + $; -- GNAT
   Name_Optimize                       : constant Name_Id := N + $;
   Name_Ordered                        : constant Name_Id := N + $; -- GNAT
   Name_Pack                           : constant Name_Id := N + $;
   Name_Page                           : constant Name_Id := N + $;
   Name_Part_Of                        : constant Name_Id := N + $; -- GNAT
   Name_Passive                        : constant Name_Id := N + $; -- GNAT
   Name_Post                           : constant Name_Id := N + $; -- GNAT
   Name_Postcondition                  : constant Name_Id := N + $; -- GNAT
   Name_Post_Class                     : constant Name_Id := N + $; -- GNAT
   Name_Pre                            : constant Name_Id := N + $; -- GNAT
   Name_Precondition                   : constant Name_Id := N + $; -- GNAT
   Name_Predicate                      : constant Name_Id := N + $; -- GNAT
   Name_Predicate_Failure              : constant Name_Id := N + $; -- Ada 12

   --  Note: Preelaborable_Initialization is not in this list because its name
   --  matches the name of the corresponding attribute. However, it is included
   --  in the definition of the type Pragma_Id, and the functions Get_Pragma_Id
   --  and Is_Pragma_Name correctly recognize and process that pragma name.
   --  Preelaborable_Initialization is a standard Ada 2005 pragma.

   Name_Preelaborate                   : constant Name_Id := N + $;
   Name_Pre_Class                      : constant Name_Id := N + $; -- GNAT

   --  Note: Priority is not in this list because its name matches the name of
   --  the corresponding attribute. However, it is included in the definition
   --  of the type Pragma_Id and the functions Get_Pragma_Id and Is_Pragma_Name
   --  correctly recognize and process Priority. Priority is a standard Ada 95
   --  pragma.

   Name_Provide_Shift_Operators        : constant Name_Id := N + $; -- GNAT
   Name_Psect_Object                   : constant Name_Id := N + $; -- GNAT
   Name_Pure                           : constant Name_Id := N + $;
   Name_Pure_Function                  : constant Name_Id := N + $; -- GNAT
   Name_Refined_Depends                : constant Name_Id := N + $; -- GNAT
   Name_Refined_Global                 : constant Name_Id := N + $; -- GNAT
   Name_Refined_Post                   : constant Name_Id := N + $; -- GNAT
   Name_Refined_State                  : constant Name_Id := N + $; -- GNAT
   Name_Relative_Deadline              : constant Name_Id := N + $; -- Ada 05
   Name_Remote_Access_Type             : constant Name_Id := N + $; -- GNAT
   Name_Remote_Call_Interface          : constant Name_Id := N + $;
   Name_Remote_Types                   : constant Name_Id := N + $;

   --  Note: Secondary_Stack_Size is not in this list because its name matches
   --  the name of the corresponding attribute. However, it is included in the
   --  definition of the type Pragma_Id, and the functions Get_Pragma_Id and
   --  Is_Pragma_Name correctly recognize and process Secondary_Stack_Size.

   Name_Share_Generic                  : constant Name_Id := N + $; -- GNAT
   Name_Shared                         : constant Name_Id := N + $; -- Ada 83
   Name_Shared_Passive                 : constant Name_Id := N + $;
   Name_Simple_Storage_Pool_Type       : constant Name_Id := N + $; -- GNAT

   --  Note: Storage_Size is not in this list because its name matches the name
   --  of the corresponding attribute. However, it is included in the
   --  definition of the type Pragma_Id, and the functions Get_Pragma_Id and
   --  Is_Pragma_Name correctly recognize and process Name_Storage_Size.

   --  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 + $; -- GNAT
   Name_Static_Elaboration_Desired     : constant Name_Id := N + $; -- GNAT
   Name_Stream_Convert                 : constant Name_Id := N + $; -- GNAT
   Name_Subprogram_Variant             : constant Name_Id := N + $; -- GNAT
   Name_Subtitle                       : constant Name_Id := N + $; -- GNAT
   Name_Suppress_All                   : constant Name_Id := N + $; -- GNAT
   Name_Suppress_Debug_Info            : constant Name_Id := N + $; -- GNAT
   Name_Suppress_Initialization        : constant Name_Id := N + $; -- GNAT
   Name_System_Name                    : constant Name_Id := N + $; -- Ada 83
   Name_Task_Info                      : constant Name_Id := N + $; -- GNAT
   Name_Task_Name                      : constant Name_Id := N + $; -- GNAT
   Name_Task_Storage                   : constant Name_Id := N + $; -- GNAT
   Name_Test_Case                      : constant Name_Id := N + $; -- GNAT
   Name_Thread_Local_Storage           : constant Name_Id := N + $; -- GNAT
   Name_Time_Slice                     : constant Name_Id := N + $; -- GNAT
   Name_Title                          : constant Name_Id := N + $; -- GNAT
   Name_Type_Invariant                 : constant Name_Id := N + $; -- GNAT
   Name_Type_Invariant_Class           : constant Name_Id := N + $; -- GNAT
   Name_Unchecked_Union                : constant Name_Id := N + $; -- Ada 05
   Name_Unimplemented_Unit             : constant Name_Id := N + $; -- GNAT
   Name_Universal_Aliasing             : constant Name_Id := N + $; -- GNAT
   Name_Unmodified                     : constant Name_Id := N + $; -- GNAT
   Name_Unreferenced                   : constant Name_Id := N + $; -- GNAT
   Name_Unreferenced_Objects           : constant Name_Id := N + $; -- GNAT
   Name_Unreserve_All_Interrupts       : constant Name_Id := N + $; -- GNAT
   Name_Unused                         : constant Name_Id := N + $; -- GNAT
   Name_Volatile                       : constant Name_Id := N + $;
   Name_Volatile_Components            : constant Name_Id := N + $;
   Name_Volatile_Full_Access           : constant Name_Id := N + $; -- GNAT
   Name_Volatile_Function              : constant Name_Id := N + $; -- GNAT
   Name_Weak_External                  : constant Name_Id := N + $; -- GNAT
   Last_Pragma_Name                    : constant Name_Id := N + $;

   --  Language convention names for pragma Convention/Export/Import/Interface
   --  Note that Name_C is not included in this list, since it was already
   --  declared earlier in the context of one-character identifier names (where
   --  the order is critical to the fast look up process).

   --  Note: there are no convention names corresponding to the conventions
   --  Entry and Protected, this is because these conventions cannot be
   --  specified by a pragma.

   First_Convention_Name               : constant Name_Id := N + $;
   Name_Ada                            : constant Name_Id := N + $;
   Name_Ada_Pass_By_Copy               : constant Name_Id := N + $;
   Name_Ada_Pass_By_Reference          : constant Name_Id := N + $;
   Name_Assembler                      : constant Name_Id := N + $;
   Name_C_Variadic_0                   : constant Name_Id := N + $;
   Name_C_Variadic_1                   : constant Name_Id := N + $;
   Name_C_Variadic_2                   : constant Name_Id := N + $;
   Name_C_Variadic_3                   : constant Name_Id := N + $;
   Name_C_Variadic_4                   : constant Name_Id := N + $;
   Name_C_Variadic_5                   : constant Name_Id := N + $;
   Name_C_Variadic_6                   : constant Name_Id := N + $;
   Name_C_Variadic_7                   : constant Name_Id := N + $;
   Name_C_Variadic_8                   : constant Name_Id := N + $;
   Name_C_Variadic_9                   : constant Name_Id := N + $;
   Name_C_Variadic_10                  : constant Name_Id := N + $;
   Name_C_Variadic_11                  : constant Name_Id := N + $;
   Name_C_Variadic_12                  : constant Name_Id := N + $;
   Name_C_Variadic_13                  : constant Name_Id := N + $;
   Name_C_Variadic_14                  : constant Name_Id := N + $;
   Name_C_Variadic_15                  : constant Name_Id := N + $;
   Name_C_Variadic_16                  : constant Name_Id := N + $;
   Name_COBOL                          : constant Name_Id := N + $;
   Name_CPP                            : constant Name_Id := N + $;
   Name_Fortran                        : constant Name_Id := N + $;
   Name_Intrinsic                      : constant Name_Id := N + $;
   Name_Stdcall                        : constant Name_Id := N + $;
   Name_Stubbed                        : constant Name_Id := N + $;
   Last_Convention_Name                : constant Name_Id := N + $;

   subtype Name_C_Variadic is Name_Id
     range Name_C_Variadic_0 .. Name_C_Variadic_16;

   --  The following names are preset as synonyms for Assembler

   Name_Asm                            : constant Name_Id := N + $;
   Name_Assembly                       : constant Name_Id := N + $;

   --  The following names are preset as synonyms for C

   Name_Default                        : constant Name_Id := N + $;
   --  Name_External (previously defined as pragma)

   --  The following names are preset as synonyms for CPP

   Name_C_Plus_Plus                    : constant Name_Id := N + $;

   --  The following names are present as synonyms for Stdcall

   Name_DLL                            : constant Name_Id := N + $;
   Name_Win32                          : constant Name_Id := N + $;

   --  Other special names used in processing attributes, aspects, and pragmas

   Name_Address_Type                   : constant Name_Id := N + $;
   Name_Aggregate                      : constant Name_Id := N + $;
   Name_Allow                          : constant Name_Id := N + $;
   Name_Amount                         : constant Name_Id := N + $;
   Name_As_Is                          : constant Name_Id := N + $;
   Name_Attr_Long_Float                : constant Name_Id := N + $;
   Name_Assertion                      : constant Name_Id := N + $;
   Name_Assertions                     : constant Name_Id := N + $;
   Name_Attribute_Name                 : constant Name_Id := N + $;
   Name_Body_File_Name                 : constant Name_Id := N + $;
   Name_Boolean_Entry_Barriers         : constant Name_Id := N + $;
   Name_By_Any                         : constant Name_Id := N + $;
   Name_By_Entry                       : constant Name_Id := N + $;
   Name_By_Protected_Procedure         : constant Name_Id := N + $;
   Name_Casing                         : constant Name_Id := N + $;
   Name_Code                           : constant Name_Id := N + $;
   Name_Component                      : constant Name_Id := N + $;
   Name_Component_Size_4               : constant Name_Id := N + $;
   Name_Copy                           : constant Name_Id := N + $;
   Name_Copy_From                      : constant Name_Id := N + $;
   Name_Copy_To                        : constant Name_Id := N + $;
   Name_Decreases                      : constant Name_Id := N + $;
   Name_Disable                        : constant Name_Id := N + $;
   Name_Dot_Replacement                : constant Name_Id := N + $;
   Name_Dynamic                        : constant Name_Id := N + $;
   Name_Eliminated                     : constant Name_Id := N + $;
   Name_Ensures                        : constant Name_Id := N + $;
   Name_Entity                         : constant Name_Id := N + $;
   Name_External_Name                  : constant Name_Id := N + $;
   Name_Form                           : constant Name_Id := N + $;
   Name_Gcc                            : constant Name_Id := N + $;
   Name_General                        : constant Name_Id := N + $;
   Name_Gnat                           : constant Name_Id := N + $;
   Name_Gnat_Extended_Ravenscar        : constant Name_Id := N + $;
   Name_Gnat_Ravenscar_EDF             : constant Name_Id := N + $;
   Name_Gnatprove                      : constant Name_Id := N + $;
   Name_GPL                            : constant Name_Id := N + $;
   Name_High_Order_First               : constant Name_Id := N + $;
   Name_Ignore                         : constant Name_Id := N + $;
   Name_In_Out                         : constant Name_Id := N + $;
   Name_Increases                      : constant Name_Id := N + $;
   Name_Info                           : constant Name_Id := N + $;
   Name_Internal                       : constant Name_Id := N + $;
   Name_Ivdep                          : constant Name_Id := N + $;
   Name_Jorvik                         : constant Name_Id := N + $;
   Name_Link_Name                      : constant Name_Id := N + $;
   Name_Low_Order_First                : constant Name_Id := N + $;
   Name_Lowercase                      : constant Name_Id := N + $;
   Name_Max_Size                       : constant Name_Id := N + $;
   Name_Mechanism                      : constant Name_Id := N + $;
   Name_Message                        : constant Name_Id := N + $;
   Name_Minimized                      : constant Name_Id := N + $;
   Name_Mixedcase                      : constant Name_Id := N + $;
   Name_Mode                           : constant Name_Id := N + $;
   Name_Modified_GPL                   : constant Name_Id := N + $;
   Name_Name                           : constant Name_Id := N + $;
   Name_New_Name                       : constant Name_Id := N + $;
   Name_No                             : constant Name_Id := N + $;
   Name_No_Dependence                  : constant Name_Id := N + $;
   Name_No_Dynamic_Attachment          : constant Name_Id := N + $;
   Name_No_Dynamic_Interrupts          : constant Name_Id := N + $;
   Name_No_Elaboration_Code            : constant Name_Id := N + $;
   Name_No_Implementation_Extensions   : constant Name_Id := N + $;
   Name_No_Obsolescent_Features        : constant Name_Id := N + $;
   Name_No_Requeue                     : constant Name_Id := N + $;
   Name_No_Requeue_Statements          : constant Name_Id := N + $;
   Name_No_Specification_Of_Aspect     : constant Name_Id := N + $;
   Name_No_Task_Attributes             : constant Name_Id := N + $;
   Name_No_Task_Attributes_Package     : constant Name_Id := N + $;
   Name_No_Use_Of_Attribute            : constant Name_Id := N + $;
   Name_No_Use_Of_Entity               : constant Name_Id := N + $;
   Name_No_Use_Of_Pragma               : constant Name_Id := N + $;
   Name_No_Unroll                      : constant Name_Id := N + $;
   Name_No_Unrecognized_Aspects        : constant Name_Id := N + $;
   Name_No_Vector                      : constant Name_Id := N + $;
   Name_Nominal                        : constant Name_Id := N + $;
   Name_None                           : constant Name_Id := N + $;
   Name_Null_Address                   : constant Name_Id := N + $;
   Name_On                             : constant Name_Id := N + $;
   Name_Optional                       : constant Name_Id := N + $;
   Name_Policy                         : constant Name_Id := N + $;
   Name_Parameter_Types                : constant Name_Id := N + $;
   Name_Proof_In                       : constant Name_Id := N + $;
   Name_Reason                         : constant Name_Id := N + $;
   Name_Reference                      : constant Name_Id := N + $;
   Name_Renamed                        : constant Name_Id := N + $;
   Name_Requires                       : constant Name_Id := N + $;
   Name_Restricted                     : constant Name_Id := N + $;
   Name_Result_Mechanism               : constant Name_Id := N + $;
   Name_Result_Type                    : constant Name_Id := N + $;
   Name_Robustness                     : constant Name_Id := N + $;
   Name_Runtime                        : constant Name_Id := N + $;
   Name_SB                             : constant Name_Id := N + $;
   Name_Section                        : constant Name_Id := N + $;
   Name_Semaphore                      : constant Name_Id := N + $;
   Name_Simple_Barriers                : constant Name_Id := N + $;
   Name_SPARK                          : constant Name_Id := N + $;
   Name_SPARK_05                       : constant Name_Id := N + $;
   Name_Spec_File_Name                 : constant Name_Id := N + $;
   Name_State                          : constant Name_Id := N + $;
   Name_Statement_Assertions           : constant Name_Id := N + $;
   Name_Static                         : constant Name_Id := N + $;
   Name_Stack_Size                     : constant Name_Id := N + $;
   Name_Strict                         : constant Name_Id := N + $;
   Name_Subunit_File_Name              : constant Name_Id := N + $;
   Name_Suppressible                   : constant Name_Id := N + $;
   Name_Synchronous                    : constant Name_Id := N + $;
   Name_Task_Stack_Size_Default        : constant Name_Id := N + $;
   Name_Task_Type                      : constant Name_Id := N + $;
   Name_Time_Slicing_Enabled           : constant Name_Id := N + $;
   Name_Top_Guard                      : constant Name_Id := N + $;
   Name_Unit_Name                      : constant Name_Id := N + $;
   Name_Unrestricted                   : constant Name_Id := N + $;
   Name_Unroll                         : constant Name_Id := N + $;
   Name_Uppercase                      : constant Name_Id := N + $;
   Name_User                           : constant Name_Id := N + $;
   Name_Variant                        : constant Name_Id := N + $;
   Name_Vector                         : constant Name_Id := N + $;
   Name_Warn                           : constant Name_Id := N + $;
   Name_Working_Storage                : constant Name_Id := N + $;

   --  used by Repinfo JSON I/O

   Name_Present                        : constant Name_Id := N + $;

   --  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
   --  attributes are implemented in all Ada modes in GNAT.

   --  The entries marked GNAT are attributes that are defined by GNAT and
   --  implemented in all Ada modes. Full descriptions of these implementation
   --  dependent attributes may be found in the appropriate Sem_Attr section.

   First_Attribute_Name                : constant Name_Id := N + $;
   Name_Abort_Signal                   : constant Name_Id := N + $; -- GNAT
   Name_Access                         : constant Name_Id := N + $;
   Name_Address                        : constant Name_Id := N + $;
   Name_Address_Size                   : constant Name_Id := N + $; -- GNAT
   Name_Aft                            : constant Name_Id := N + $;
   Name_Alignment                      : constant Name_Id := N + $;
   Name_Asm_Input                      : constant Name_Id := N + $; -- GNAT
   Name_Asm_Output                     : constant Name_Id := N + $; -- GNAT
   Name_Atomic_Always_Lock_Free        : constant Name_Id := N + $; -- GNAT
   Name_Bit                            : constant Name_Id := N + $; -- GNAT
   Name_Bit_Order                      : constant Name_Id := N + $;
   Name_Bit_Position                   : constant Name_Id := N + $; -- GNAT
   Name_Body_Version                   : constant Name_Id := N + $;
   Name_Callable                       : constant Name_Id := N + $;
   Name_Caller                         : constant Name_Id := N + $;
   Name_Code_Address                   : constant Name_Id := N + $; -- GNAT
   Name_Compiler_Version               : constant Name_Id := N + $; -- GNAT
   Name_Component_Size                 : constant Name_Id := N + $;
   Name_Compose                        : constant Name_Id := N + $;
   Name_Constant_Indexing              : constant Name_Id := N + $; -- GNAT
   Name_Constrained                    : constant Name_Id := N + $;
   Name_Count                          : constant Name_Id := N + $;
   Name_Default_Bit_Order              : constant Name_Id := N + $; -- GNAT
   Name_Default_Scalar_Storage_Order   : constant Name_Id := N + $; -- GNAT
   Name_Default_Iterator               : constant Name_Id := N + $; -- GNAT
   Name_Definite                       : constant Name_Id := N + $;
   Name_Delta                          : constant Name_Id := N + $;
   Name_Denorm                         : constant Name_Id := N + $;
   Name_Deref                          : constant Name_Id := N + $; -- GNAT
   Name_Descriptor_Size                : constant Name_Id := N + $;
   Name_Digits                         : constant Name_Id := N + $;
   Name_Elaborated                     : constant Name_Id := N + $; -- GNAT
   Name_Emax                           : constant Name_Id := N + $; -- Ada 83
   Name_Enabled                        : constant Name_Id := N + $; -- GNAT
   Name_Enum_Rep                       : constant Name_Id := N + $; -- Ada 22
   Name_Enum_Val                       : constant Name_Id := N + $; -- Ada 22
   Name_Epsilon                        : constant Name_Id := N + $; -- Ada 83
   Name_Exponent                       : constant Name_Id := N + $;
   Name_External_Tag                   : constant Name_Id := N + $;
   Name_Fast_Math                      : constant Name_Id := N + $; -- GNAT
   Name_Finalization_Size              : constant Name_Id := N + $; -- GNAT
   Name_First                          : constant Name_Id := N + $;
   Name_First_Bit                      : constant Name_Id := N + $;
   Name_First_Valid                    : constant Name_Id := N + $; -- Ada 12
   Name_Fixed_Value                    : constant Name_Id := N + $; -- GNAT
   Name_Fore                           : constant Name_Id := N + $;
   Name_Has_Access_Values              : constant Name_Id := N + $; -- GNAT
   Name_Has_Discriminants              : constant Name_Id := N + $; -- GNAT
   Name_Has_Same_Storage               : constant Name_Id := N + $; -- Ada 12
   Name_Has_Tagged_Values              : constant Name_Id := N + $; -- GNAT
   Name_Identity                       : constant Name_Id := N + $;
   Name_Implicit_Dereference           : constant Name_Id := N + $; -- GNAT
   Name_Initialized                    : constant Name_Id := N + $; -- GNAT
   Name_Integer_Value                  : constant Name_Id := N + $; -- GNAT
   Name_Invalid_Value                  : constant Name_Id := N + $; -- GNAT
   Name_Iterator_Element               : constant Name_Id := N + $; -- GNAT
   Name_Iterable                       : constant Name_Id := N + $; -- GNAT
   Name_Large                          : constant Name_Id := N + $; -- Ada 83
   Name_Last                           : constant Name_Id := N + $;
   Name_Last_Bit                       : constant Name_Id := N + $;
   Name_Last_Valid                     : constant Name_Id := N + $; -- Ada 12
   Name_Leading_Part                   : constant Name_Id := N + $;
   Name_Length                         : constant Name_Id := N + $;
   Name_Library_Level                  : constant Name_Id := N + $; -- GNAT
   Name_Lock_Free                      : constant Name_Id := N + $; -- GNAT
   Name_Loop_Entry                     : constant Name_Id := N + $; -- GNAT
   Name_Machine_Emax                   : constant Name_Id := N + $;
   Name_Machine_Emin                   : constant Name_Id := N + $;
   Name_Machine_Mantissa               : constant Name_Id := N + $;
   Name_Machine_Overflows              : constant Name_Id := N + $;
   Name_Machine_Radix                  : constant Name_Id := N + $;
   Name_Machine_Rounding               : constant Name_Id := N + $; -- Ada 05
   Name_Machine_Rounds                 : constant Name_Id := N + $;
   Name_Machine_Size                   : constant Name_Id := N + $; -- GNAT
   Name_Mantissa                       : constant Name_Id := N + $; -- Ada 83
   Name_Max_Alignment_For_Allocation   : constant Name_Id := N + $; -- Ada 12
   Name_Max_Integer_Size               : constant Name_Id := N + $; -- GNAT
   Name_Max_Size_In_Storage_Elements   : constant Name_Id := N + $;
   Name_Maximum_Alignment              : constant Name_Id := N + $; -- GNAT
   Name_Mechanism_Code                 : constant Name_Id := N + $; -- GNAT
   Name_Mod                            : constant Name_Id := N + $; -- Ada 05
   Name_Model_Emin                     : constant Name_Id := N + $;
   Name_Model_Epsilon                  : constant Name_Id := N + $;
   Name_Model_Mantissa                 : constant Name_Id := N + $;
   Name_Model_Small                    : constant Name_Id := N + $;
   Name_Modulus                        : constant Name_Id := N + $;
   Name_Null_Parameter                 : constant Name_Id := N + $; -- GNAT
   Name_Object_Size                    : constant Name_Id := N + $; -- GNAT
   Name_Old                            : constant Name_Id := N + $; -- Ada 12
   Name_Overlaps_Storage               : constant Name_Id := N + $; -- GNAT
   Name_Partition_ID                   : constant Name_Id := N + $;
   Name_Passed_By_Reference            : constant Name_Id := N + $; -- GNAT
   Name_Pool_Address                   : constant Name_Id := N + $; -- GNAT
   Name_Pos                            : constant Name_Id := N + $;
   Name_Position                       : constant Name_Id := N + $;
   Name_Preelaborable_Initialization   : constant Name_Id := N + $; -- Ada 22
   Name_Priority                       : constant Name_Id := N + $; -- Ada 05
   Name_Range                          : constant Name_Id := N + $;
   Name_Range_Length                   : constant Name_Id := N + $; -- GNAT
   Name_Reduce                         : constant Name_Id := N + $; -- Ada 22
   Name_Ref                            : constant Name_Id := N + $; -- GNAT
   Name_Restriction_Set                : constant Name_Id := N + $; -- GNAT
   Name_Result                         : constant Name_Id := N + $; -- GNAT
   Name_Round                          : constant Name_Id := N + $;
   Name_Safe_Emax                      : constant Name_Id := N + $; -- Ada 83
   Name_Safe_First                     : constant Name_Id := N + $;
   Name_Safe_Large                     : constant Name_Id := N + $; -- Ada 83
   Name_Safe_Last                      : constant Name_Id := N + $;
   Name_Safe_Small                     : constant Name_Id := N + $; -- Ada 83
   Name_Scalar_Storage_Order           : constant Name_Id := N + $; -- GNAT
   Name_Scale                          : constant Name_Id := N + $;
   Name_Scaling                        : constant Name_Id := N + $;
   Name_Signed_Zeros                   : constant Name_Id := N + $;
   Name_Size                           : constant Name_Id := N + $;
   Name_Small                          : constant Name_Id := N + $; -- Ada 83
   Name_Small_Denominator              : constant Name_Id := N + $; -- GNAT
   Name_Small_Numerator                : constant Name_Id := N + $; -- GNAT
   Name_Storage_Size                   : constant Name_Id := N + $;
   Name_Storage_Unit                   : constant Name_Id := N + $; -- GNAT
   Name_Stream_Size                    : constant Name_Id := N + $; -- Ada 05
   Name_System_Allocator_Alignment     : constant Name_Id := N + $; -- GNAT
   Name_Tag                            : constant Name_Id := N + $;
   Name_Target_Name                    : constant Name_Id := N + $; -- GNAT
   Name_Terminated                     : constant Name_Id := N + $;
   Name_To_Address                     : constant Name_Id := N + $; -- GNAT
   Name_Type_Class                     : constant Name_Id := N + $; -- GNAT
   Name_Type_Key                       : constant Name_Id := N + $; -- GNAT
   Name_Unbiased_Rounding              : constant Name_Id := N + $;
   Name_Unchecked_Access               : constant Name_Id := N + $;
   Name_Unconstrained_Array            : constant Name_Id := N + $; -- GNAT
   Name_Universal_Literal_String       : constant Name_Id := N + $; -- GNAT
   Name_Unrestricted_Access            : constant Name_Id := N + $; -- GNAT
   Name_Update                         : constant Name_Id := N + $; -- GNAT
   Name_VADS_Size                      : constant Name_Id := N + $; -- GNAT
   Name_Val                            : constant Name_Id := N + $;
   Name_Valid                          : constant Name_Id := N + $;
   Name_Valid_Scalars                  : constant Name_Id := N + $; -- GNAT
   Name_Value_Size                     : constant Name_Id := N + $; -- GNAT
   Name_Variable_Indexing              : constant Name_Id := N + $; -- GNAT
   Name_Version                        : constant Name_Id := N + $;
   Name_Wchar_T_Size                   : constant Name_Id := N + $; -- GNAT
   Name_Wide_Wide_Width                : constant Name_Id := N + $; -- Ada 05
   Name_Wide_Width                     : constant Name_Id := N + $;
   Name_Width                          : constant Name_Id := N + $;
   Name_Word_Size                      : constant Name_Id := N + $; -- 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 + $;
   Name_Adjacent                       : constant Name_Id := N + $;
   Name_Ceiling                        : constant Name_Id := N + $;
   Name_Copy_Sign                      : constant Name_Id := N + $;
   Name_Floor                          : constant Name_Id := N + $;
   Name_Fraction                       : constant Name_Id := N + $;
   Name_From_Any                       : constant Name_Id := N + $; -- GNAT
   Name_Image                          : constant Name_Id := N + $;
   Name_Img                            : constant Name_Id := N + $; -- GNAT
   Name_Input                          : constant Name_Id := N + $;
   Name_Machine                        : constant Name_Id := N + $;
   Name_Max                            : constant Name_Id := N + $;
   Name_Min                            : constant Name_Id := N + $;
   Name_Model                          : constant Name_Id := N + $;
   Name_Pred                           : constant Name_Id := N + $;
   Name_Remainder                      : constant Name_Id := N + $;
   Name_Rounding                       : constant Name_Id := N + $;
   Name_Succ                           : constant Name_Id := N + $;
   Name_To_Any                         : constant Name_Id := N + $; -- GNAT
   Name_Truncation                     : constant Name_Id := N + $;
   Name_TypeCode                       : constant Name_Id := N + $; -- GNAT
   Name_Valid_Value                    : constant Name_Id := N + $; -- GNAT
   Name_Value                          : constant Name_Id := N + $;
   Name_Wide_Image                     : constant Name_Id := N + $;
   Name_Wide_Wide_Image                : constant Name_Id := N + $;
   Name_Wide_Value                     : constant Name_Id := N + $;
   Name_Wide_Wide_Value                : constant Name_Id := N + $;
   Last_Renamable_Function_Attribute   : constant Name_Id := N + $;

   --  Attributes that designate procedures

   First_Procedure_Attribute           : constant Name_Id := N + $;
   Name_Output                         : constant Name_Id := N + $;
   Name_Put_Image                      : constant Name_Id := N + $;
   Name_Read                           : constant Name_Id := N + $;
   Name_Write                          : constant Name_Id := N + $;
   Last_Procedure_Attribute            : constant Name_Id := N + $;

   --  Remaining attributes are ones that return entities

   --  Note that Elab_Subp_Body is not considered to be a valid attribute name
   --  unless we are operating in CodePeer mode.

   First_Entity_Attribute_Name         : constant Name_Id := N + $;
   Name_Elab_Body                      : constant Name_Id := N + $; -- GNAT
   Name_Elab_Spec                      : constant Name_Id := N + $; -- GNAT
   Name_Elab_Subp_Body                 : constant Name_Id := N + $; -- GNAT
   Name_Simple_Storage_Pool            : constant Name_Id := N + $; -- GNAT
   Name_Storage_Pool                   : constant Name_Id := N + $;

   --  These attributes are the ones that return types

   First_Type_Attribute_Name           : constant Name_Id := N + $;
   Name_Base                           : constant Name_Id := N + $;
   Name_Class                          : constant Name_Id := N + $;
   Name_Stub_Type                      : constant Name_Id := N + $; -- GNAT
   Last_Type_Attribute_Name            : constant Name_Id := N + $;
   Last_Entity_Attribute_Name          : constant Name_Id := N + $;
   Last_Attribute_Name                 : constant Name_Id := N + $;

   --  Names of internal attributes. They are not real attributes but special
   --  names used internally by GNAT in order to deal with delayed aspects
   --  (Aspect_CPU, Aspect_Dispatching_Domain, Aspect_Interrupt_Priority,
   --  Aspect_Secondary_Stack_Size) that don't have corresponding pragmas or
   --  user-referenceable attributes.

   --  It is convenient to have these internal attributes available for
   --  processing the aspects, since the normal approach is to convert an
   --  aspect into its corresponding pragma or attribute specification.

   --  These attributes do have Attribute_Id values so that case statements
   --  on Attribute_Id include these cases, but they are NOT included in the
   --  Attribute_Name subtype defined above, which is typically used in the
   --  front end for checking syntax of submitted programs (where the use of
   --  internal attributes is not permitted).

   First_Internal_Attribute_Name       : constant Name_Id := N + $;
   Name_CPU                            : constant Name_Id := N + $;
   Name_Dispatching_Domain             : constant Name_Id := N + $;
   Name_Interrupt_Priority             : constant Name_Id := N + $;
   Name_Secondary_Stack_Size           : constant Name_Id := N + $; -- GNAT
   Last_Internal_Attribute_Name        : constant Name_Id := N + $;

   --  Names of recognized locking policy identifiers

   First_Locking_Policy_Name           : constant Name_Id := N + $;
   Name_Ceiling_Locking                : constant Name_Id := N + $;
   Name_Inheritance_Locking            : constant Name_Id := N + $;
   Name_Concurrent_Readers_Locking     : constant Name_Id := N + $; -- GNAT
   Last_Locking_Policy_Name            : constant Name_Id := N + $;

   --  Names of recognized queuing policy identifiers

   --  Note: policies are identified by the first character of the 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 + $;
   Name_FIFO_Queuing                   : constant Name_Id := N + $;
   Name_Priority_Queuing               : constant Name_Id := N + $;
   Last_Queuing_Policy_Name            : constant Name_Id := N + $;

   --  Names of recognized task dispatching policy identifiers

   --  Note: policies are identified by the first character of the name (e.g. F
   --  for FIFO_Within_Priorities). If new policy names are added, the first
   --  character must be distinct.

   First_Task_Dispatching_Policy_Name         : constant Name_Id := N + $;
   Name_EDF_Across_Priorities                 : constant Name_Id := N + $;
   Name_FIFO_Within_Priorities                : constant Name_Id := N + $;
   Name_Non_Preemptive_FIFO_Within_Priorities : constant Name_Id := N + $;
   Name_Round_Robin_Within_Priorities         : constant Name_Id := N + $;
   Last_Task_Dispatching_Policy_Name          : constant Name_Id := N + $;

   --  Names of recognized partition elaboration policy identifiers

   --  Note: policies are identified by the first character of the name (e.g. S
   --  for Sequential). If new policy names are added, the first character must
   --  be distinct.

   First_Partition_Elaboration_Policy_Name : constant Name_Id := N + $;
   Name_Concurrent                         : constant Name_Id := N + $;
   Name_Sequential                         : constant Name_Id := N + $;
   Last_Partition_Elaboration_Policy_Name  : constant Name_Id := N + $;

   --  Names of recognized scalar families for pragma Initialize_Scalars

   Name_Short_Float                    : constant Name_Id := N + $; -- GNAT
   Name_Float                          : constant Name_Id := N + $; -- GNAT
   Name_Long_Float                     : constant Name_Id := N + $; -- GNAT
   Name_Long_Long_Float                : constant Name_Id := N + $; -- GNAT
   Name_Signed_8                       : constant Name_Id := N + $; -- GNAT
   Name_Signed_16                      : constant Name_Id := N + $; -- GNAT
   Name_Signed_32                      : constant Name_Id := N + $; -- GNAT
   Name_Signed_64                      : constant Name_Id := N + $; -- GNAT
   Name_Signed_128                     : constant Name_Id := N + $; -- GNAT
   Name_Unsigned_8                     : constant Name_Id := N + $; -- GNAT
   Name_Unsigned_16                    : constant Name_Id := N + $; -- GNAT
   Name_Unsigned_32                    : constant Name_Id := N + $; -- GNAT
   Name_Unsigned_64                    : constant Name_Id := N + $; -- GNAT
   Name_Unsigned_128                   : constant Name_Id := N + $; -- GNAT

   subtype Scalar_Id is Name_Id
     range Name_Short_Float .. Name_Unsigned_128;

   subtype Float_Scalar_Id is Name_Id
     range Name_Short_Float .. Name_Long_Long_Float;

   subtype Integer_Scalar_Id is Name_Id
     range Name_Signed_8 .. Name_Unsigned_128;

   --  Names of recognized checks for pragma Suppress

   --  Note: the name Atomic_Synchronization can only be specified internally
   --  as a result of using pragma Enable/Disable_Atomic_Synchronization.

   First_Check_Name                    : constant Name_Id := N + $;
   Name_Access_Check                   : constant Name_Id := N + $;
   Name_Accessibility_Check            : constant Name_Id := N + $;
   Name_Alignment_Check                : constant Name_Id := N + $; -- GNAT
   Name_Allocation_Check               : constant Name_Id := N + $;
   Name_Atomic_Synchronization         : constant Name_Id := N + $; -- GNAT
   Name_Characters_Assertion_Check     : constant Name_Id := N + $;
   Name_Containers_Assertion_Check     : constant Name_Id := N + $;
   Name_Discriminant_Check             : constant Name_Id := N + $;
   Name_Division_Check                 : constant Name_Id := N + $;
   Name_Duplicated_Tag_Check           : constant Name_Id := N + $; -- GNAT
   Name_Elaboration_Check              : constant Name_Id := N + $;
   Name_Index_Check                    : constant Name_Id := N + $;
   Name_Interfaces_Assertion_Check     : constant Name_Id := N + $;
   Name_IO_Assertion_Check             : constant Name_Id := N + $;
   Name_Length_Check                   : constant Name_Id := N + $;
   Name_Numerics_Assertion_Check       : constant Name_Id := N + $;
   Name_Overflow_Check                 : constant Name_Id := N + $;
   Name_Predicate_Check                : constant Name_Id := N + $; -- GNAT
   Name_Program_Error_Check            : constant Name_Id := N + $;
   Name_Range_Check                    : constant Name_Id := N + $;
   Name_Storage_Check                  : constant Name_Id := N + $;
   Name_Strings_Assertion_Check        : constant Name_Id := N + $;
   Name_System_Assertion_Check         : constant Name_Id := N + $;
   Name_Tag_Check                      : constant Name_Id := N + $;
   Name_Validity_Check                 : constant Name_Id := N + $; -- GNAT
   Name_Container_Checks               : constant Name_Id := N + $; -- GNAT
   Name_Tampering_Check                : constant Name_Id := N + $; -- GNAT
   Name_Tasking_Check                  : constant Name_Id := N + $;
   Name_All_Checks                     : constant Name_Id := N + $;
   Last_Check_Name                     : constant Name_Id := N + $;

   --  Ada 83 reserved words, excluding those already declared in the attribute
   --  list (Access, Delta, Digits, Mod, Range).

   Name_Abort                            : constant Name_Id := N + $;
   Name_Abs                              : constant Name_Id := N + $;
   Name_Accept                           : constant Name_Id := N + $;
   Name_And                              : constant Name_Id := N + $;
   Name_All                              : constant Name_Id := N + $;
   Name_Array                            : constant Name_Id := N + $;
   Name_At                               : constant Name_Id := N + $;
   Name_Begin                            : constant Name_Id := N + $;
   Name_Body                             : constant Name_Id := N + $;
   Name_Case                             : constant Name_Id := N + $;
   Name_Constant                         : constant Name_Id := N + $;
   Name_Declare                          : constant Name_Id := N + $;
   Name_Delay                            : constant Name_Id := N + $;
   Name_Do                               : constant Name_Id := N + $;
   Name_Else                             : constant Name_Id := N + $;
   Name_Elsif                            : constant Name_Id := N + $;
   Name_End                              : constant Name_Id := N + $;
   Name_Entry                            : constant Name_Id := N + $;
   Name_Exception                        : constant Name_Id := N + $;
   Name_Exit                             : constant Name_Id := N + $;
   Name_For                              : constant Name_Id := N + $;
   Name_Function                         : constant Name_Id := N + $;
   Name_Generic                          : constant Name_Id := N + $;
   Name_Goto                             : constant Name_Id := N + $;
   Name_If                               : constant Name_Id := N + $;
   Name_In                               : constant Name_Id := N + $;
   Name_Is                               : constant Name_Id := N + $;
   Name_Limited                          : constant Name_Id := N + $;
   Name_Loop                             : constant Name_Id := N + $;
   Name_New                              : constant Name_Id := N + $;
   Name_Not                              : constant Name_Id := N + $;
   Name_Null                             : constant Name_Id := N + $;
   Name_Of                               : constant Name_Id := N + $;
   Name_Or                               : constant Name_Id := N + $;
   Name_Others                           : constant Name_Id := N + $;
   Name_Out                              : constant Name_Id := N + $;
   Name_Package                          : constant Name_Id := N + $;
   Name_Pragma                           : constant Name_Id := N + $;
   Name_Private                          : constant Name_Id := N + $;
   Name_Procedure                        : constant Name_Id := N + $;
   Name_Raise                            : constant Name_Id := N + $;
   Name_Record                           : constant Name_Id := N + $;
   Name_Rem                              : constant Name_Id := N + $;
   Name_Renames                          : constant Name_Id := N + $;
   Name_Return                           : constant Name_Id := N + $;
   Name_Reverse                          : constant Name_Id := N + $;
   Name_Select                           : constant Name_Id := N + $;
   Name_Separate                         : constant Name_Id := N + $;
   Name_Subtype                          : constant Name_Id := N + $;
   Name_Task                             : constant Name_Id := N + $;
   Name_Terminate                        : constant Name_Id := N + $;
   Name_Then                             : constant Name_Id := N + $;
   Name_Type                             : constant Name_Id := N + $;
   Name_Use                              : constant Name_Id := N + $;
   Name_When                             : constant Name_Id := N + $;
   Name_While                            : constant Name_Id := N + $;
   Name_With                             : constant Name_Id := N + $;
   Name_Xor                              : constant Name_Id := N + $;

   --  Names of intrinsic subprograms

   --  Note: Asm is missing from this list, since Asm is a legitimate
   --  convention name. So is To_Address, which is a GNAT attribute.

   First_Intrinsic_Name                  : constant Name_Id := N + $;
   Name_Compilation_ISO_Date             : constant Name_Id := N + $;
   Name_Compilation_Date                 : constant Name_Id := N + $;
   Name_Compilation_Time                 : constant Name_Id := N + $;
   Name_Divide                           : constant Name_Id := N + $;
   Name_Enclosing_Entity                 : constant Name_Id := N + $;
   Name_Exception_Information            : constant Name_Id := N + $;
   Name_Exception_Message                : constant Name_Id := N + $;
   Name_Exception_Name                   : constant Name_Id := N + $;
   Name_File                             : constant Name_Id := N + $;
   Name_Generic_Dispatching_Constructor  : constant Name_Id := N + $;
   Name_Import_Address                   : constant Name_Id := N + $;
   Name_Import_Largest_Value             : constant Name_Id := N + $;
   Name_Import_Value                     : constant Name_Id := N + $;
   Name_Line                             : constant Name_Id := N + $;
   Name_Rotate_Left                      : constant Name_Id := N + $;
   Name_Rotate_Right                     : constant Name_Id := N + $;
   Name_Shift_Left                       : constant Name_Id := N + $;
   Name_Shift_Right                      : constant Name_Id := N + $;
   Name_Shift_Right_Arithmetic           : constant Name_Id := N + $;
   Name_Source_Location                  : constant Name_Id := N + $;
   Name_Unchecked_Conversion             : constant Name_Id := N + $;
   Name_Unchecked_Deallocation           : constant Name_Id := N + $;
   Name_To_Pointer                       : constant Name_Id := N + $;
   Last_Intrinsic_Name                   : constant Name_Id := N + $;

   --  Names used in processing intrinsic calls

   Name_Free                             : constant Name_Id := N + $;

   --  Ada 95 reserved words

   First_95_Reserved_Word                : constant Name_Id := N + $;
   Name_Abstract                         : constant Name_Id := N + $;
   Name_Aliased                          : constant Name_Id := N + $;
   Name_Protected                        : constant Name_Id := N + $;
   Name_Until                            : constant Name_Id := N + $;
   Name_Requeue                          : constant Name_Id := N + $;
   Name_Tagged                           : constant Name_Id := N + $;
   Last_95_Reserved_Word                 : constant Name_Id := N + $;

   subtype Ada_95_Reserved_Words is Name_Id
     range First_95_Reserved_Word .. Last_95_Reserved_Word;

   --  Additional names used by the Repinfo unit

   Name_Discriminant                     : constant Name_Id := N + $;
   Name_Operands                         : constant Name_Id := N + $;

   --  Other miscellaneous names used in front end
   --  Note that the UP_ prefix means use the rest of the name in uppercase,
   --  e.g. Name_UP_RESULT corresponds to the name "RESULT".

   Name_UP_RESULT                        : constant Name_Id := N + $;
   Name_Synchronous_Task_Control         : constant Name_Id := N + $;

   --  Names used to implement iterators over predefined containers

   Name_Cursor                           : constant Name_Id := N + $;
   Name_Element                          : constant Name_Id := N + $;
   Name_Has_Element                      : constant Name_Id := N + $;
   Name_Forward_Iterator                 : constant Name_Id := N + $;
   Name_Reversible_Iterator              : constant Name_Id := N + $;
   Name_Previous                         : constant Name_Id := N + $;
   Name_Pseudo_Reference                 : constant Name_Id := N + $;
   Name_Reference_Control_Type           : constant Name_Id := N + $;
   Name_Get_Element_Access               : constant Name_Id := N + $;

   --  Names for Ada 202x Aggregate aspect. Name_Aggregate is already
   --  present for gprbuild.

   Name_Empty                            : constant Name_Id := N + $;
   Name_Add_Named                        : constant Name_Id := N + $;
   Name_Add_Unnamed                      : constant Name_Id := N + $;
   Name_New_Indexed                      : constant Name_Id := N + $;
   Name_Assign_Indexed                   : constant Name_Id := N + $;

   --  Ada 2005 reserved words

   First_2005_Reserved_Word              : constant Name_Id := N + $;
   Name_Interface                        : constant Name_Id := N + $;
   Name_Overriding                       : constant Name_Id := N + $;
   Name_Synchronized                     : constant Name_Id := N + $;
   Last_2005_Reserved_Word               : constant Name_Id := N + $;

   subtype Ada_2005_Reserved_Words is Name_Id
     range First_2005_Reserved_Word .. Last_2005_Reserved_Word;

   --  Ada 2012 reserved words

   First_2012_Reserved_Word              : constant Name_Id := N + $;
   Name_Some                             : constant Name_Id := N + $;
   Last_2012_Reserved_Word               : constant Name_Id := N + $;

   subtype Ada_2012_Reserved_Words is Name_Id
     range First_2012_Reserved_Word .. Last_2012_Reserved_Word;

   --  Mark last defined name for consistency check in Snames body

   Last_Predefined_Name                  : constant Name_Id := N + $;

   ---------------------------------------
   -- 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 --
   ------------------------------

   type Attribute_Id is (
      Attribute_Abort_Signal,
      Attribute_Access,
      Attribute_Address,
      Attribute_Address_Size,
      Attribute_Aft,
      Attribute_Alignment,
      Attribute_Asm_Input,
      Attribute_Asm_Output,
      Attribute_Atomic_Always_Lock_Free,
      Attribute_Bit,
      Attribute_Bit_Order,
      Attribute_Bit_Position,
      Attribute_Body_Version,
      Attribute_Callable,
      Attribute_Caller,
      Attribute_Code_Address,
      Attribute_Compiler_Version,
      Attribute_Component_Size,
      Attribute_Compose,
      Attribute_Constant_Indexing,
      Attribute_Constrained,
      Attribute_Count,
      Attribute_Default_Bit_Order,
      Attribute_Default_Scalar_Storage_Order,
      Attribute_Default_Iterator,
      Attribute_Definite,
      Attribute_Delta,
      Attribute_Denorm,
      Attribute_Deref,
      Attribute_Descriptor_Size,
      Attribute_Digits,
      Attribute_Elaborated,
      Attribute_Emax,
      Attribute_Enabled,
      Attribute_Enum_Rep,
      Attribute_Enum_Val,
      Attribute_Epsilon,
      Attribute_Exponent,
      Attribute_External_Tag,
      Attribute_Fast_Math,
      Attribute_Finalization_Size,
      Attribute_First,
      Attribute_First_Bit,
      Attribute_First_Valid,
      Attribute_Fixed_Value,
      Attribute_Fore,
      Attribute_Has_Access_Values,
      Attribute_Has_Discriminants,
      Attribute_Has_Same_Storage,
      Attribute_Has_Tagged_Values,
      Attribute_Identity,
      Attribute_Implicit_Dereference,
      Attribute_Initialized,
      Attribute_Integer_Value,
      Attribute_Invalid_Value,
      Attribute_Iterator_Element,
      Attribute_Iterable,
      Attribute_Large,
      Attribute_Last,
      Attribute_Last_Bit,
      Attribute_Last_Valid,
      Attribute_Leading_Part,
      Attribute_Length,
      Attribute_Library_Level,
      Attribute_Lock_Free,
      Attribute_Loop_Entry,
      Attribute_Machine_Emax,
      Attribute_Machine_Emin,
      Attribute_Machine_Mantissa,
      Attribute_Machine_Overflows,
      Attribute_Machine_Radix,
      Attribute_Machine_Rounding,
      Attribute_Machine_Rounds,
      Attribute_Machine_Size,
      Attribute_Mantissa,
      Attribute_Max_Alignment_For_Allocation,
      Attribute_Max_Integer_Size,
      Attribute_Max_Size_In_Storage_Elements,
      Attribute_Maximum_Alignment,
      Attribute_Mechanism_Code,
      Attribute_Mod,
      Attribute_Model_Emin,
      Attribute_Model_Epsilon,
      Attribute_Model_Mantissa,
      Attribute_Model_Small,
      Attribute_Modulus,
      Attribute_Null_Parameter,
      Attribute_Object_Size,
      Attribute_Old,
      Attribute_Overlaps_Storage,
      Attribute_Partition_ID,
      Attribute_Passed_By_Reference,
      Attribute_Pool_Address,
      Attribute_Pos,
      Attribute_Position,
      Attribute_Preelaborable_Initialization,
      Attribute_Priority,
      Attribute_Range,
      Attribute_Range_Length,
      Attribute_Reduce,
      Attribute_Ref,
      Attribute_Restriction_Set,
      Attribute_Result,
      Attribute_Round,
      Attribute_Safe_Emax,
      Attribute_Safe_First,
      Attribute_Safe_Large,
      Attribute_Safe_Last,
      Attribute_Safe_Small,
      Attribute_Scalar_Storage_Order,
      Attribute_Scale,
      Attribute_Scaling,
      Attribute_Signed_Zeros,
      Attribute_Size,
      Attribute_Small,
      Attribute_Small_Denominator,
      Attribute_Small_Numerator,
      Attribute_Storage_Size,
      Attribute_Storage_Unit,
      Attribute_Stream_Size,
      Attribute_System_Allocator_Alignment,
      Attribute_Tag,
      Attribute_Target_Name,
      Attribute_Terminated,
      Attribute_To_Address,
      Attribute_Type_Class,
      Attribute_Type_Key,
      Attribute_Unbiased_Rounding,
      Attribute_Unchecked_Access,
      Attribute_Unconstrained_Array,
      Attribute_Universal_Literal_String,
      Attribute_Unrestricted_Access,
      Attribute_Update,
      Attribute_VADS_Size,
      Attribute_Val,
      Attribute_Valid,
      Attribute_Valid_Scalars,
      Attribute_Value_Size,
      Attribute_Variable_Indexing,
      Attribute_Version,
      Attribute_Wchar_T_Size,
      Attribute_Wide_Wide_Width,
      Attribute_Wide_Width,
      Attribute_Width,
      Attribute_Word_Size,

      --  Attributes designating renamable functions

      Attribute_Adjacent,
      Attribute_Ceiling,
      Attribute_Copy_Sign,
      Attribute_Floor,
      Attribute_Fraction,
      Attribute_From_Any,
      Attribute_Image,
      Attribute_Img,
      Attribute_Input,
      Attribute_Machine,
      Attribute_Max,
      Attribute_Min,
      Attribute_Model,
      Attribute_Pred,
      Attribute_Remainder,
      Attribute_Rounding,
      Attribute_Succ,
      Attribute_To_Any,
      Attribute_Truncation,
      Attribute_TypeCode,
      Attribute_Valid_Value,
      Attribute_Value,
      Attribute_Wide_Image,
      Attribute_Wide_Wide_Image,
      Attribute_Wide_Value,
      Attribute_Wide_Wide_Value,

      --  Attributes designating procedures

      Attribute_Output,
      Attribute_Put_Image,
      Attribute_Read,
      Attribute_Write,

      --  Entity attributes (includes type attributes)

      Attribute_Elab_Body,
      Attribute_Elab_Spec,
      Attribute_Elab_Subp_Body,
      Attribute_Simple_Storage_Pool,
      Attribute_Storage_Pool,

      --  Type attributes

      Attribute_Base,
      Attribute_Class,
      Attribute_Stub_Type,

      --  The internal attributes are on their own, out of order, because of
      --  the special processing required to deal with the fact that their
      --  names are not attribute names.

      Attribute_CPU,
      Attribute_Dispatching_Domain,
      Attribute_Interrupt_Priority);

   subtype Internal_Attribute_Id is Attribute_Id
     range Attribute_CPU .. Attribute_Interrupt_Priority;

   type Attribute_Class_Array is array (Attribute_Id) of Boolean;
   --  Type used to build attribute classification flag arrays

   ------------------------------------
   -- Convention Name ID Definitions --
   ------------------------------------

   type Convention_Id is (

      --  The native-to-Ada (non-foreign) conventions come first. These include
      --  the ones defined in the RM, plus Stubbed.

      Convention_Ada,
      Convention_Intrinsic,
      Convention_Entry,
      Convention_Protected,
      Convention_Stubbed,

      --  The following conventions are equivalent to Ada for all purposes
      --  except controlling the way parameters are passed.

      Convention_Ada_Pass_By_Copy,
      Convention_Ada_Pass_By_Reference,

      --  The remaining conventions are foreign language conventions

      Convention_Assembler,      --  also Asm, Assembly
      Convention_C,              --  also Default, External
      Convention_C_Variadic_0,
      Convention_C_Variadic_1,
      Convention_C_Variadic_2,
      Convention_C_Variadic_3,
      Convention_C_Variadic_4,
      Convention_C_Variadic_5,
      Convention_C_Variadic_6,
      Convention_C_Variadic_7,
      Convention_C_Variadic_8,
      Convention_C_Variadic_9,
      Convention_C_Variadic_10,
      Convention_C_Variadic_11,
      Convention_C_Variadic_12,
      Convention_C_Variadic_13,
      Convention_C_Variadic_14,
      Convention_C_Variadic_15,
      Convention_C_Variadic_16,
      Convention_CPP,
      Convention_COBOL,
      Convention_Fortran,
      Convention_Stdcall);       --  also DLL, Win32

      --  Note: Convention C_Pass_By_Copy is allowed only for record types
      --  (where it is treated like C except that the appropriate flag is set
      --  in the record type). Recognizing this convention is specially handled
      --  in Sem_Prag.

   for Convention_Id'Size use 8;

   subtype Convention_C_Family is Convention_Id
     range Convention_C .. Convention_CPP;

   subtype Convention_C_Variadic is Convention_Id
     range Convention_C_Variadic_0 .. Convention_C_Variadic_16;

   subtype Foreign_Convention is Convention_Id
     range Convention_Assembler .. Convention_Stdcall;

   -----------------------------------
   -- Locking Policy ID Definitions --
   -----------------------------------

   type Locking_Policy_Id is (
      Locking_Policy_Inheritance_Locking,
      Locking_Policy_Ceiling_Locking,
      Locking_Policy_Concurrent_Readers_Locking);

   ---------------------------
   -- Pragma ID Definitions --
   ---------------------------

   type Pragma_Id is (

      --  Configuration pragmas are grouped at start. Note that there is a list
      --  of them in the GNAT UG (doc/gnat_ugn/the_gnat_compilation_model.rst),
      --  be sure to update this list if a new configuration pragma is added.

      Pragma_Ada_83,
      Pragma_Ada_95,
      Pragma_Ada_05,
      Pragma_Ada_2005,
      Pragma_Ada_12,
      Pragma_Ada_2012,
      Pragma_Ada_2022,
      --  Note that there is no Pragma_Ada_22. Pragma_Ada_05/12 are for
      --  compatibility reasons only; the full year names are preferred.
      Pragma_Aggregate_Individually_Assign,
      Pragma_Allow_Integer_Address,
      Pragma_Annotate,
      Pragma_Assertion_Policy,
      Pragma_Assume_No_Invalid_Values,
      Pragma_C_Pass_By_Copy,
      Pragma_Check_Float_Overflow,
      Pragma_Check_Name,
      Pragma_Check_Policy,
      Pragma_Compile_Time_Error,
      Pragma_Compile_Time_Warning,
      Pragma_Component_Alignment,
      Pragma_Convention_Identifier,
      Pragma_Debug_Policy,
      Pragma_Detect_Blocking,
      Pragma_Default_Storage_Pool,
      Pragma_Disable_Atomic_Synchronization,
      Pragma_Discard_Names,
      Pragma_Elaboration_Checks,
      Pragma_Eliminate,
      Pragma_Enable_Atomic_Synchronization,
      Pragma_Extend_System,
      Pragma_Extensions_Allowed,
      Pragma_External_Name_Casing,
      Pragma_Favor_Top_Level,
      Pragma_GNAT_Annotate,
      Pragma_Ignore_Pragma,
      Pragma_Implicit_Packing,
      Pragma_Initialize_Scalars,
      Pragma_Interrupt_State,
      Pragma_License,
      Pragma_Locking_Policy,
      Pragma_No_Component_Reordering,
      Pragma_No_Heap_Finalization,
      Pragma_No_Run_Time,
      Pragma_No_Strict_Aliasing,
      Pragma_Normalize_Scalars,
      Pragma_Optimize_Alignment,
      Pragma_Overflow_Mode,
      Pragma_Overriding_Renamings,
      Pragma_Partition_Elaboration_Policy,
      Pragma_Persistent_BSS,
      Pragma_Prefix_Exception_Messages,
      Pragma_Priority_Specific_Dispatching,
      Pragma_Profile,
      Pragma_Profile_Warnings,
      Pragma_Propagate_Exceptions,
      Pragma_Queuing_Policy,
      Pragma_Rational,
      Pragma_Ravenscar,
      Pragma_Rename_Pragma,
      Pragma_Restricted_Run_Time,
      Pragma_Restrictions,
      Pragma_Restriction_Warnings,
      Pragma_Reviewable,
      Pragma_Short_Circuit_And_Or,
      Pragma_Short_Descriptors,
      Pragma_Source_File_Name,
      Pragma_Source_File_Name_Project,
      Pragma_SPARK_Mode,
      Pragma_Style_Checks,
      Pragma_Suppress,
      Pragma_Suppress_Exception_Locations,
      Pragma_Task_Dispatching_Policy,
      Pragma_Unevaluated_Use_Of_Old,
      Pragma_Unsuppress,
      Pragma_Use_VADS_Size,
      Pragma_Validity_Checks,
      Pragma_Warning_As_Error,
      Pragma_Warnings,
      Pragma_Wide_Character_Encoding,

      --  Remaining (non-configuration) pragmas

      Pragma_Abort_Defer,
      Pragma_Abstract_State,
      Pragma_All_Calls_Remote,
      Pragma_Assert,
      Pragma_Assert_And_Cut,
      Pragma_Assume,
      Pragma_Async_Readers,
      Pragma_Async_Writers,
      Pragma_Asynchronous,
      Pragma_Atomic,
      Pragma_Atomic_Components,
      Pragma_Attach_Handler,
      Pragma_Attribute_Definition,
      Pragma_Check,
      Pragma_Comment,
      Pragma_Common_Object,
      Pragma_Complete_Representation,
      Pragma_Complex_Representation,
      Pragma_Constant_After_Elaboration,
      Pragma_Contract_Cases,
      Pragma_Controlled,
      Pragma_Convention,
      Pragma_CPP_Class,
      Pragma_CPP_Constructor,
      Pragma_CPP_Virtual,
      Pragma_CPP_Vtable,
      Pragma_CUDA_Device,
      Pragma_CUDA_Execute,
      Pragma_CUDA_Global,
      Pragma_Deadline_Floor,
      Pragma_Debug,
      Pragma_Default_Initial_Condition,
      Pragma_Depends,
      Pragma_Effective_Reads,
      Pragma_Effective_Writes,
      Pragma_Elaborate,
      Pragma_Elaborate_All,
      Pragma_Elaborate_Body,
      Pragma_Export,
      Pragma_Export_Function,
      Pragma_Export_Object,
      Pragma_Export_Procedure,
      Pragma_Export_Valued_Procedure,
      Pragma_Extensions_Visible,
      Pragma_External,
      Pragma_Finalize_Storage_Only,
      Pragma_Ghost,
      Pragma_Global,
      Pragma_Ident,
      Pragma_Implementation_Defined,
      Pragma_Implemented,
      Pragma_Import,
      Pragma_Import_Function,
      Pragma_Import_Object,
      Pragma_Import_Procedure,
      Pragma_Import_Valued_Procedure,
      Pragma_Independent,
      Pragma_Independent_Components,
      Pragma_Initial_Condition,
      Pragma_Initializes,
      Pragma_Inline,
      Pragma_Inline_Always,
      Pragma_Inline_Generic,
      Pragma_Inspection_Point,
      Pragma_Interface_Name,
      Pragma_Interrupt_Handler,
      Pragma_Invariant,
      Pragma_Keep_Names,
      Pragma_Link_With,
      Pragma_Linker_Alias,
      Pragma_Linker_Constructor,
      Pragma_Linker_Destructor,
      Pragma_Linker_Options,
      Pragma_Linker_Section,
      Pragma_List,
      Pragma_Loop_Invariant,
      Pragma_Loop_Optimize,
      Pragma_Loop_Variant,
      Pragma_Machine_Attribute,
      Pragma_Main,
      Pragma_Main_Storage,
      Pragma_Max_Entry_Queue_Depth,
      Pragma_Max_Entry_Queue_Length,
      Pragma_Max_Queue_Length,
      Pragma_Memory_Size,
      Pragma_No_Body,
      Pragma_No_Caching,
      Pragma_No_Elaboration_Code_All,
      Pragma_No_Inline,
      Pragma_No_Return,
      Pragma_No_Tagged_Streams,
      Pragma_Obsolescent,
      Pragma_Optimize,
      Pragma_Ordered,
      Pragma_Pack,
      Pragma_Page,
      Pragma_Part_Of,
      Pragma_Passive,
      Pragma_Post,
      Pragma_Postcondition,
      Pragma_Post_Class,
      Pragma_Pre,
      Pragma_Precondition,
      Pragma_Predicate,
      Pragma_Predicate_Failure,
      Pragma_Preelaborate,
      Pragma_Pre_Class,
      Pragma_Provide_Shift_Operators,
      Pragma_Psect_Object,
      Pragma_Pure,
      Pragma_Pure_Function,
      Pragma_Refined_Depends,
      Pragma_Refined_Global,
      Pragma_Refined_Post,
      Pragma_Refined_State,
      Pragma_Relative_Deadline,
      Pragma_Remote_Access_Type,
      Pragma_Remote_Call_Interface,
      Pragma_Remote_Types,
      Pragma_Share_Generic,
      Pragma_Shared,
      Pragma_Shared_Passive,
      Pragma_Simple_Storage_Pool_Type,
      Pragma_Source_Reference,
      Pragma_Static_Elaboration_Desired,
      Pragma_Stream_Convert,
      Pragma_Subprogram_Variant,
      Pragma_Subtitle,
      Pragma_Suppress_All,
      Pragma_Suppress_Debug_Info,
      Pragma_Suppress_Initialization,
      Pragma_System_Name,
      Pragma_Task_Info,
      Pragma_Task_Name,
      Pragma_Task_Storage,
      Pragma_Test_Case,
      Pragma_Thread_Local_Storage,
      Pragma_Time_Slice,
      Pragma_Title,
      Pragma_Type_Invariant,
      Pragma_Type_Invariant_Class,
      Pragma_Unchecked_Union,
      Pragma_Unimplemented_Unit,
      Pragma_Universal_Aliasing,
      Pragma_Unmodified,
      Pragma_Unreferenced,
      Pragma_Unreferenced_Objects,
      Pragma_Unreserve_All_Interrupts,
      Pragma_Unused,
      Pragma_Volatile,
      Pragma_Volatile_Components,
      Pragma_Volatile_Full_Access,
      Pragma_Volatile_Function,
      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. Note that when a pragma is added in
      --  this section, functions Get_Pragma_Id and Is_Pragma_Name must be
      --  updated to account for the new pragma.

      Pragma_CPU,
      Pragma_Default_Scalar_Storage_Order,
      Pragma_Dispatching_Domain,
      Pragma_Fast_Math,
      Pragma_Interface,
      Pragma_Interrupt_Priority,
      Pragma_Lock_Free,
      Pragma_Preelaborable_Initialization,
      Pragma_Priority,
      Pragma_Secondary_Stack_Size,
      Pragma_Storage_Size,
      Pragma_Storage_Unit,

      --  The value to represent an unknown or unrecognized pragma

      Unknown_Pragma);

   -----------------------------------
   -- Queuing Policy ID definitions --
   -----------------------------------

   type Queuing_Policy_Id is (
      Queuing_Policy_FIFO_Queuing,
      Queuing_Policy_Priority_Queuing);

   --------------------------------------------
   -- Task Dispatching Policy ID definitions --
   --------------------------------------------

   type Task_Dispatching_Policy_Id is (
      Task_Dispatching_FIFO_Within_Priorities);
   --  Id values used to identify task dispatching policies

   -----------------
   -- Subprograms --
   -----------------

   procedure Initialize;
   --  Called to initialize the preset names in the names table

   function Is_Attribute_Name (N : Name_Id) return Boolean;
   --  Test to see if the name N is the name of a recognized attribute. Note
   --  that Name_Elab_Subp_Body returns False if not operating in CodePeer
   --  mode. This is the mechanism for considering this pragma illegal in
   --  normal GNAT programs.

   function Is_Entity_Attribute_Name (N : Name_Id) return Boolean;
   --  Test to see if the name N is the name of a recognized entity attribute,
   --  i.e. an attribute reference that returns an entity.

   function Is_Internal_Attribute_Name (N : Name_Id) return Boolean;
   --  Test to see if the name N is the name of an INT attribute (Name_CPU,
   --  Name_Dispatching_Domain, Name_Interrupt_Priority,
   --  Name_Secondary_Stack_Size).

   function Is_Procedure_Attribute_Name (N : Name_Id) return Boolean;
   --  Test to see if the name N is the name of a recognized attribute that
   --  designates a procedure (and can therefore appear as a statement).

   function Is_Function_Attribute_Name (N : Name_Id) return Boolean;
   --  Test to see if the name N is the name of a recognized attribute
   --  that designates a renameable function, and can therefore appear in
   --  a renaming statement. Note that not all attributes designating
   --  functions are renamable, in particular, those returning a universal
   --  value cannot be renamed.

   function Is_Type_Attribute_Name (N : Name_Id) return Boolean;
   --  Test to see if the name N is the name of a recognized type attribute,
   --  i.e. an attribute reference that returns a type

   function Is_Convention_Name (N : Name_Id) return Boolean;
   --  Test to see if the name N is the name of one of the recognized
   --  language conventions, as required by pragma Convention, Import,
   --  Export, Interface. Returns True if so. Also returns True for a
   --  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

   function Is_Partition_Elaboration_Policy_Name
     (N : Name_Id) return Boolean;
   --  Test to see if the name N is the name of a recognized partition
   --  elaboration policy.

   function Is_Operator_Symbol_Name (N : Name_Id) return Boolean;
   --  Test to see if the name N is the name of an operator symbol

   function Is_Pragma_Name (N : Name_Id) return Boolean;
   --  Test to see if the name N is the name of a recognized pragma. Note
   --  that pragmas CPU, Dispatching_Domain, Fast_Math, Interrupt_Priority,
   --  Lock_Free, Priority, Storage_Size, and Storage_Unit are recognized
   --  as pragmas by this function even though their names are separate from
   --  the other pragma names. For this reason, clients should always use
   --  this function, rather than do range tests on Name_Id values.

   function Is_Configuration_Pragma_Name (N : Name_Id) return Boolean;
   --  Test to see if the name N is the name of a recognized configuration
   --  pragma. Note that pragma Fast_Math is recognized as a configuration
   --  pragma by this function even though its name is separate from other
   --  configuration pragma names. For this reason, clients should always
   --  use this function, rather than do range tests on Name_Id values.

   function Is_Queuing_Policy_Name (N : Name_Id) return Boolean;
   --  Test to see if the name N is the name of a recognized queuing policy

   function Is_Task_Dispatching_Policy_Name (N : Name_Id) return Boolean;
   --  Test to see if the name N is the name of a recognized task
   --  dispatching policy.

   function Get_Attribute_Id (N : Name_Id) return Attribute_Id;
   --  Returns Id of attribute corresponding to given name. It is an error to
   --  call this function with a name that is not the name of a attribute. Note
   --  that the function also works correctly for internal attribute names even
   --  though there are not included in the main list of attribute Names.

   function Get_Convention_Id (N : Name_Id) return Convention_Id;
   --  Returns Id of language convention corresponding to given name. It is
   --  an error to call this function with a name that is not the name of a
   --  convention, or one that has been previously recorded using a call to
   --  Record_Convention_Identifier.

   function Get_Convention_Name (C : Convention_Id) return Name_Id;
   --  Returns the name of language convention corresponding to given
   --  convention id.

   function Get_Locking_Policy_Id (N : Name_Id) return Locking_Policy_Id;
   --  Returns Id of locking policy corresponding to given name. It is an error
   --  to call this function with a name that is not the name of a check.

   function Get_Pragma_Id (N : Name_Id) return Pragma_Id;
   --  Returns Id of pragma corresponding to given name. Returns Unknown_Pragma
   --  if N is not a name of a known (Ada defined or GNAT-specific) pragma.
   --  Note that the function also works correctly for names of pragmas that
   --  are not included in the main list of pragma Names (e.g. Name_CPU returns
   --  Pragma_CPU).

   function Get_Queuing_Policy_Id (N : Name_Id) return Queuing_Policy_Id;
   --  Returns Id of queuing policy corresponding to given name. It is an error
   --  to call this function with a name that is not the name of a check.

   function Get_Task_Dispatching_Policy_Id
     (N : Name_Id) return Task_Dispatching_Policy_Id;
   --  Returns Id of task dispatching policy corresponding to given name. It
   --  is an error to call this function with a name that is not the name of
   --  a defined check.

   procedure Record_Convention_Identifier
     (Id         : Name_Id;
      Convention : Convention_Id);
   --  A call to this procedure, resulting from an occurrence of a pragma
   --  Convention_Identifier, records that from now on an occurrence of Id
   --  will be recognized as a name for the specified convention.

private
   pragma Inline (Is_Attribute_Name);
   pragma Inline (Is_Configuration_Pragma_Name);
   pragma Inline (Is_Entity_Attribute_Name);
   pragma Inline (Is_Function_Attribute_Name);
   pragma Inline (Is_Internal_Attribute_Name);
   pragma Inline (Is_Locking_Policy_Name);
   pragma Inline (Is_Partition_Elaboration_Policy_Name);
   pragma Inline (Is_Operator_Symbol_Name);
   pragma Inline (Is_Pragma_Name);
   pragma Inline (Is_Procedure_Attribute_Name);
   pragma Inline (Is_Queuing_Policy_Name);
   pragma Inline (Is_Task_Dispatching_Policy_Name);
   pragma Inline (Is_Type_Attribute_Name);

end Snames;
