with Seinfo; use Seinfo;
pragma Warnings (Off);
with Output; use Output;
pragma Warnings (On);

package Sinfo.Nodes is

   --  This package is automatically generated.

   --  Type hierarchy for nodes
   --
   --  Node_Kind
   --     N_Unused_At_Start
   --     N_Representation_Clause
   --        N_At_Clause
   --        N_Component_Clause
   --        N_Enumeration_Representation_Clause
   --        N_Mod_Clause
   --        N_Record_Representation_Clause
   --        N_Attribute_Definition_Clause
   --     N_Empty
   --     N_Pragma_Argument_Association
   --     N_Has_Etype
   --        N_Error
   --        N_Entity
   --           N_Defining_Character_Literal
   --           N_Defining_Identifier
   --           N_Defining_Operator_Symbol
   --        N_Subexpr
   --           N_Has_Entity
   --              N_Expanded_Name
   --              N_Direct_Name
   --                 N_Identifier
   --                 N_Operator_Symbol
   --                 N_Character_Literal
   --              N_Op
   --                 N_Binary_Op
   --                    N_Op_Add
   --                    N_Op_Concat
   --                    N_Op_Expon
   --                    N_Op_Subtract
   --                    N_Multiplying_Operator
   --                       N_Op_Divide
   --                       N_Op_Mod
   --                       N_Op_Multiply
   --                       N_Op_Rem
   --                    N_Op_Boolean
   --                       N_Op_And
   --                       N_Op_Compare
   --                          N_Op_Eq
   --                          N_Op_Ge
   --                          N_Op_Gt
   --                          N_Op_Le
   --                          N_Op_Lt
   --                          N_Op_Ne
   --                       N_Op_Or
   --                       N_Op_Xor
   --                    N_Op_Shift
   --                       N_Op_Rotate_Left
   --                       N_Op_Rotate_Right
   --                       N_Op_Shift_Left
   --                       N_Op_Shift_Right
   --                       N_Op_Shift_Right_Arithmetic
   --                 end N_Binary_Op
   --                 N_Unary_Op
   --                    N_Op_Abs
   --                    N_Op_Minus
   --                    N_Op_Not
   --                    N_Op_Plus
   --              end N_Op
   --              N_Attribute_Reference
   --           end N_Has_Entity
   --           N_Membership_Test
   --              N_In
   --              N_Not_In
   --           N_Short_Circuit
   --              N_And_Then
   --              N_Or_Else
   --           N_Subprogram_Call
   --              N_Function_Call
   --              N_Procedure_Call_Statement
   --           N_Raise_xxx_Error
   --              N_Raise_Constraint_Error
   --              N_Raise_Program_Error
   --              N_Raise_Storage_Error
   --           N_Numeric_Or_String_Literal
   --              N_Integer_Literal
   --              N_Real_Literal
   --              N_String_Literal
   --              N_Interpolated_String_Literal
   --           N_Explicit_Dereference
   --           N_Expression_With_Actions
   --           N_If_Expression
   --           N_Indexed_Component
   --           N_Null
   --           N_Qualified_Expression
   --           N_Quantified_Expression
   --           N_Aggregate
   --           N_Allocator
   --           N_Case_Expression
   --           N_Delta_Aggregate
   --           N_Extension_Aggregate
   --           N_Raise_Expression
   --           N_Range
   --           N_Reference
   --           N_Selected_Component
   --           N_Slice
   --           N_Target_Name
   --           N_Type_Conversion
   --           N_Unchecked_Expression
   --           N_Unchecked_Type_Conversion
   --        end N_Subexpr
   --        N_Subtype_Indication
   --     end N_Has_Etype
   --     N_Declaration
   --        N_Component_Declaration
   --        N_Entry_Declaration
   --        N_Expression_Function
   --        N_Formal_Object_Declaration
   --        N_Formal_Type_Declaration
   --        N_Full_Type_Declaration
   --        N_Incomplete_Type_Declaration
   --        N_Iterator_Specification
   --        N_Loop_Parameter_Specification
   --        N_Object_Declaration
   --        N_Protected_Type_Declaration
   --        N_Private_Extension_Declaration
   --        N_Private_Type_Declaration
   --        N_Subtype_Declaration
   --        N_Subprogram_Specification
   --           N_Function_Specification
   --           N_Procedure_Specification
   --        N_Exception_Declaration
   --        N_Formal_Package_Declaration
   --     end N_Declaration
   --     N_Access_To_Subprogram_Definition
   --        N_Access_Function_Definition
   --        N_Access_Procedure_Definition
   --     N_Later_Decl_Item
   --        N_Task_Type_Declaration
   --        N_Body_Stub
   --           N_Package_Body_Stub
   --           N_Protected_Body_Stub
   --           N_Subprogram_Body_Stub
   --           N_Task_Body_Stub
   --        N_Generic_Instantiation
   --           N_Subprogram_Instantiation
   --              N_Function_Instantiation
   --              N_Procedure_Instantiation
   --           N_Package_Instantiation
   --        N_Proper_Body
   --           N_Unit_Body
   --              N_Package_Body
   --              N_Subprogram_Body
   --           N_Protected_Body
   --           N_Task_Body
   --        N_Implicit_Label_Declaration
   --        N_Package_Declaration
   --        N_Single_Task_Declaration
   --        N_Subprogram_Declaration
   --        N_Use_Package_Clause
   --        N_Generic_Declaration
   --           N_Generic_Package_Declaration
   --           N_Generic_Subprogram_Declaration
   --     end N_Later_Decl_Item
   --     N_Array_Type_Definition
   --        N_Constrained_Array_Definition
   --        N_Unconstrained_Array_Definition
   --     N_Renaming_Declaration
   --        N_Exception_Renaming_Declaration
   --        N_Object_Renaming_Declaration
   --        N_Package_Renaming_Declaration
   --        N_Subprogram_Renaming_Declaration
   --        N_Generic_Renaming_Declaration
   --           N_Generic_Function_Renaming_Declaration
   --           N_Generic_Package_Renaming_Declaration
   --           N_Generic_Procedure_Renaming_Declaration
   --     N_Statement_Other_Than_Procedure_Call
   --        N_Abort_Statement
   --        N_Accept_Statement
   --        N_Assignment_Statement
   --        N_Asynchronous_Select
   --        N_Block_Statement
   --        N_Case_Statement
   --        N_Code_Statement
   --        N_Compound_Statement
   --        N_Conditional_Entry_Call
   --        N_Delay_Statement
   --           N_Delay_Relative_Statement
   --           N_Delay_Until_Statement
   --        N_Entry_Call_Statement
   --        N_Free_Statement
   --        N_Goto_Statement
   --        N_Goto_When_Statement
   --        N_Loop_Statement
   --        N_Null_Statement
   --        N_Raise_Statement
   --        N_Raise_When_Statement
   --        N_Requeue_Statement
   --        N_Simple_Return_Statement
   --        N_Extended_Return_Statement
   --        N_Return_When_Statement
   --        N_Selective_Accept
   --        N_Timed_Entry_Call
   --        N_Exit_Statement
   --        N_If_Statement
   --     end N_Statement_Other_Than_Procedure_Call
   --     N_Accept_Alternative
   --     N_Delay_Alternative
   --     N_Elsif_Part
   --     N_Entry_Body_Formal_Part
   --     N_Iteration_Scheme
   --     N_Terminate_Alternative
   --     N_Formal_Subprogram_Declaration
   --        N_Formal_Abstract_Subprogram_Declaration
   --        N_Formal_Concrete_Subprogram_Declaration
   --     N_Push_Pop_xxx_Label
   --        N_Push_xxx_Label
   --           N_Push_Constraint_Error_Label
   --           N_Push_Program_Error_Label
   --           N_Push_Storage_Error_Label
   --        N_Pop_xxx_Label
   --           N_Pop_Constraint_Error_Label
   --           N_Pop_Program_Error_Label
   --           N_Pop_Storage_Error_Label
   --     N_SCIL_Node
   --        N_SCIL_Dispatch_Table_Tag_Init
   --        N_SCIL_Dispatching_Call
   --        N_SCIL_Membership_Test
   --     N_Abortable_Part
   --     N_Abstract_Subprogram_Declaration
   --     N_Access_Definition
   --     N_Access_To_Object_Definition
   --     N_Aspect_Specification
   --     N_Call_Marker
   --     N_Case_Expression_Alternative
   --     N_Case_Statement_Alternative
   --     N_Compilation_Unit
   --     N_Compilation_Unit_Aux
   --     N_Component_Association
   --     N_Component_Definition
   --     N_Component_List
   --     N_Contract
   --     N_Derived_Type_Definition
   --     N_Decimal_Fixed_Point_Definition
   --     N_Defining_Program_Unit_Name
   --     N_Delta_Constraint
   --     N_Designator
   --     N_Digits_Constraint
   --     N_Discriminant_Association
   --     N_Discriminant_Specification
   --     N_Enumeration_Type_Definition
   --     N_Entry_Body
   --     N_Entry_Call_Alternative
   --     N_Entry_Index_Specification
   --     N_Exception_Handler
   --     N_Floating_Point_Definition
   --     N_Formal_Decimal_Fixed_Point_Definition
   --     N_Formal_Derived_Type_Definition
   --     N_Formal_Discrete_Type_Definition
   --     N_Formal_Floating_Point_Definition
   --     N_Formal_Modular_Type_Definition
   --     N_Formal_Ordinary_Fixed_Point_Definition
   --     N_Formal_Private_Type_Definition
   --     N_Formal_Incomplete_Type_Definition
   --     N_Formal_Signed_Integer_Type_Definition
   --     N_Freeze_Entity
   --     N_Freeze_Generic_Entity
   --     N_Generic_Association
   --     N_Handled_Sequence_Of_Statements
   --     N_Index_Or_Discriminant_Constraint
   --     N_Iterated_Component_Association
   --     N_Iterated_Element_Association
   --     N_Itype_Reference
   --     N_Label
   --     N_Modular_Type_Definition
   --     N_Number_Declaration
   --     N_Ordinary_Fixed_Point_Definition
   --     N_Others_Choice
   --     N_Package_Specification
   --     N_Parameter_Association
   --     N_Parameter_Specification
   --     N_Pragma
   --     N_Protected_Definition
   --     N_Range_Constraint
   --     N_Real_Range_Specification
   --     N_Record_Definition
   --     N_Signed_Integer_Type_Definition
   --     N_Single_Protected_Declaration
   --     N_Subunit
   --     N_Task_Definition
   --     N_Triggering_Alternative
   --     N_Use_Type_Clause
   --     N_Validate_Unchecked_Conversion
   --     N_Variable_Reference_Marker
   --     N_Variant
   --     N_Variant_Part
   --     N_With_Clause
   --     N_Unused_At_End
   --  end Node_Kind
   --
   --  End type hierarchy for nodes

   type Node_Kind is -- 241 Node_Kinds
     (N_Unused_At_Start,
      N_At_Clause,
      N_Component_Clause,
      N_Enumeration_Representation_Clause,
      N_Mod_Clause,
      N_Record_Representation_Clause,
      N_Attribute_Definition_Clause,
      N_Empty,
      N_Pragma_Argument_Association,
      N_Error,
      N_Defining_Character_Literal,
      N_Defining_Identifier,
      N_Defining_Operator_Symbol,
      N_Expanded_Name,
      N_Identifier,
      N_Operator_Symbol,
      N_Character_Literal,
      N_Op_Add,
      N_Op_Concat,
      N_Op_Expon,
      N_Op_Subtract,
      N_Op_Divide,
      N_Op_Mod,
      N_Op_Multiply,
      N_Op_Rem,
      N_Op_And,
      N_Op_Eq,
      N_Op_Ge,
      N_Op_Gt,
      N_Op_Le,
      N_Op_Lt,
      N_Op_Ne,
      N_Op_Or,
      N_Op_Xor,
      N_Op_Rotate_Left,
      N_Op_Rotate_Right,
      N_Op_Shift_Left,
      N_Op_Shift_Right,
      N_Op_Shift_Right_Arithmetic,
      N_Op_Abs,
      N_Op_Minus,
      N_Op_Not,
      N_Op_Plus,
      N_Attribute_Reference,
      N_In,
      N_Not_In,
      N_And_Then,
      N_Or_Else,
      N_Function_Call,
      N_Procedure_Call_Statement,
      N_Raise_Constraint_Error,
      N_Raise_Program_Error,
      N_Raise_Storage_Error,
      N_Integer_Literal,
      N_Real_Literal,
      N_String_Literal,
      N_Interpolated_String_Literal,
      N_Explicit_Dereference,
      N_Expression_With_Actions,
      N_If_Expression,
      N_Indexed_Component,
      N_Null,
      N_Qualified_Expression,
      N_Quantified_Expression,
      N_Aggregate,
      N_Allocator,
      N_Case_Expression,
      N_Delta_Aggregate,
      N_Extension_Aggregate,
      N_Raise_Expression,
      N_Range,
      N_Reference,
      N_Selected_Component,
      N_Slice,
      N_Target_Name,
      N_Type_Conversion,
      N_Unchecked_Expression,
      N_Unchecked_Type_Conversion,
      N_Subtype_Indication,
      N_Component_Declaration,
      N_Entry_Declaration,
      N_Expression_Function,
      N_Formal_Object_Declaration,
      N_Formal_Type_Declaration,
      N_Full_Type_Declaration,
      N_Incomplete_Type_Declaration,
      N_Iterator_Specification,
      N_Loop_Parameter_Specification,
      N_Object_Declaration,
      N_Protected_Type_Declaration,
      N_Private_Extension_Declaration,
      N_Private_Type_Declaration,
      N_Subtype_Declaration,
      N_Function_Specification,
      N_Procedure_Specification,
      N_Exception_Declaration,
      N_Formal_Package_Declaration,
      N_Access_Function_Definition,
      N_Access_Procedure_Definition,
      N_Task_Type_Declaration,
      N_Package_Body_Stub,
      N_Protected_Body_Stub,
      N_Subprogram_Body_Stub,
      N_Task_Body_Stub,
      N_Function_Instantiation,
      N_Procedure_Instantiation,
      N_Package_Instantiation,
      N_Package_Body,
      N_Subprogram_Body,
      N_Protected_Body,
      N_Task_Body,
      N_Implicit_Label_Declaration,
      N_Package_Declaration,
      N_Single_Task_Declaration,
      N_Subprogram_Declaration,
      N_Use_Package_Clause,
      N_Generic_Package_Declaration,
      N_Generic_Subprogram_Declaration,
      N_Constrained_Array_Definition,
      N_Unconstrained_Array_Definition,
      N_Exception_Renaming_Declaration,
      N_Object_Renaming_Declaration,
      N_Package_Renaming_Declaration,
      N_Subprogram_Renaming_Declaration,
      N_Generic_Function_Renaming_Declaration,
      N_Generic_Package_Renaming_Declaration,
      N_Generic_Procedure_Renaming_Declaration,
      N_Abort_Statement,
      N_Accept_Statement,
      N_Assignment_Statement,
      N_Asynchronous_Select,
      N_Block_Statement,
      N_Case_Statement,
      N_Code_Statement,
      N_Compound_Statement,
      N_Conditional_Entry_Call,
      N_Delay_Relative_Statement,
      N_Delay_Until_Statement,
      N_Entry_Call_Statement,
      N_Free_Statement,
      N_Goto_Statement,
      N_Goto_When_Statement,
      N_Loop_Statement,
      N_Null_Statement,
      N_Raise_Statement,
      N_Raise_When_Statement,
      N_Requeue_Statement,
      N_Simple_Return_Statement,
      N_Extended_Return_Statement,
      N_Return_When_Statement,
      N_Selective_Accept,
      N_Timed_Entry_Call,
      N_Exit_Statement,
      N_If_Statement,
      N_Accept_Alternative,
      N_Delay_Alternative,
      N_Elsif_Part,
      N_Entry_Body_Formal_Part,
      N_Iteration_Scheme,
      N_Terminate_Alternative,
      N_Formal_Abstract_Subprogram_Declaration,
      N_Formal_Concrete_Subprogram_Declaration,
      N_Push_Constraint_Error_Label,
      N_Push_Program_Error_Label,
      N_Push_Storage_Error_Label,
      N_Pop_Constraint_Error_Label,
      N_Pop_Program_Error_Label,
      N_Pop_Storage_Error_Label,
      N_SCIL_Dispatch_Table_Tag_Init,
      N_SCIL_Dispatching_Call,
      N_SCIL_Membership_Test,
      N_Abortable_Part,
      N_Abstract_Subprogram_Declaration,
      N_Access_Definition,
      N_Access_To_Object_Definition,
      N_Aspect_Specification,
      N_Call_Marker,
      N_Case_Expression_Alternative,
      N_Case_Statement_Alternative,
      N_Compilation_Unit,
      N_Compilation_Unit_Aux,
      N_Component_Association,
      N_Component_Definition,
      N_Component_List,
      N_Contract,
      N_Derived_Type_Definition,
      N_Decimal_Fixed_Point_Definition,
      N_Defining_Program_Unit_Name,
      N_Delta_Constraint,
      N_Designator,
      N_Digits_Constraint,
      N_Discriminant_Association,
      N_Discriminant_Specification,
      N_Enumeration_Type_Definition,
      N_Entry_Body,
      N_Entry_Call_Alternative,
      N_Entry_Index_Specification,
      N_Exception_Handler,
      N_Floating_Point_Definition,
      N_Formal_Decimal_Fixed_Point_Definition,
      N_Formal_Derived_Type_Definition,
      N_Formal_Discrete_Type_Definition,
      N_Formal_Floating_Point_Definition,
      N_Formal_Modular_Type_Definition,
      N_Formal_Ordinary_Fixed_Point_Definition,
      N_Formal_Private_Type_Definition,
      N_Formal_Incomplete_Type_Definition,
      N_Formal_Signed_Integer_Type_Definition,
      N_Freeze_Entity,
      N_Freeze_Generic_Entity,
      N_Generic_Association,
      N_Handled_Sequence_Of_Statements,
      N_Index_Or_Discriminant_Constraint,
      N_Iterated_Component_Association,
      N_Iterated_Element_Association,
      N_Itype_Reference,
      N_Label,
      N_Modular_Type_Definition,
      N_Number_Declaration,
      N_Ordinary_Fixed_Point_Definition,
      N_Others_Choice,
      N_Package_Specification,
      N_Parameter_Association,
      N_Parameter_Specification,
      N_Pragma,
      N_Protected_Definition,
      N_Range_Constraint,
      N_Real_Range_Specification,
      N_Record_Definition,
      N_Signed_Integer_Type_Definition,
      N_Single_Protected_Declaration,
      N_Subunit,
      N_Task_Definition,
      N_Triggering_Alternative,
      N_Use_Type_Clause,
      N_Validate_Unchecked_Conversion,
      N_Variable_Reference_Marker,
      N_Variant,
      N_Variant_Part,
      N_With_Clause,
      N_Unused_At_End
     ) with Size => 8; -- Node_Kind

   function Nkind (N : Node_Id) return Node_Kind with Inline;
   function K (N : Node_Id) return Node_Kind renames Nkind;
   --  Shorthand for use in predicates and preconditions below
   --  There is no procedure Set_Nkind.
   --  See Init_Nkind and Mutate_Nkind in Atree.

   --  Subtypes of Node_Kind for each abstract type:

   pragma Style_Checks ("M200");
   subtype N_Representation_Clause is Node_Kind range
     N_At_Clause .. N_Attribute_Definition_Clause;
      --  N_At_Clause
      --  N_Component_Clause
      --  N_Enumeration_Representation_Clause
      --  N_Mod_Clause
      --  N_Record_Representation_Clause
      --  N_Attribute_Definition_Clause
   subtype N_Has_Etype is Node_Kind range
     N_Error .. N_Subtype_Indication;
      --  N_Error
      --  N_Defining_Character_Literal
      --  N_Defining_Identifier
      --  N_Defining_Operator_Symbol
      --  N_Expanded_Name
      --  N_Identifier
      --  N_Operator_Symbol
      --  N_Character_Literal
      --  N_Op_Add
      --  N_Op_Concat
      --  N_Op_Expon
      --  N_Op_Subtract
      --  N_Op_Divide
      --  N_Op_Mod
      --  N_Op_Multiply
      --  N_Op_Rem
      --  N_Op_And
      --  N_Op_Eq
      --  N_Op_Ge
      --  N_Op_Gt
      --  N_Op_Le
      --  N_Op_Lt
      --  N_Op_Ne
      --  N_Op_Or
      --  N_Op_Xor
      --  N_Op_Rotate_Left
      --  N_Op_Rotate_Right
      --  N_Op_Shift_Left
      --  N_Op_Shift_Right
      --  N_Op_Shift_Right_Arithmetic
      --  N_Op_Abs
      --  N_Op_Minus
      --  N_Op_Not
      --  N_Op_Plus
      --  N_Attribute_Reference
      --  N_In
      --  N_Not_In
      --  N_And_Then
      --  N_Or_Else
      --  N_Function_Call
      --  N_Procedure_Call_Statement
      --  N_Raise_Constraint_Error
      --  N_Raise_Program_Error
      --  N_Raise_Storage_Error
      --  N_Integer_Literal
      --  N_Real_Literal
      --  N_String_Literal
      --  N_Interpolated_String_Literal
      --  N_Explicit_Dereference
      --  N_Expression_With_Actions
      --  N_If_Expression
      --  N_Indexed_Component
      --  N_Null
      --  N_Qualified_Expression
      --  N_Quantified_Expression
      --  N_Aggregate
      --  N_Allocator
      --  N_Case_Expression
      --  N_Delta_Aggregate
      --  N_Extension_Aggregate
      --  N_Raise_Expression
      --  N_Range
      --  N_Reference
      --  N_Selected_Component
      --  N_Slice
      --  N_Target_Name
      --  N_Type_Conversion
      --  N_Unchecked_Expression
      --  N_Unchecked_Type_Conversion
      --  N_Subtype_Indication
   subtype N_Entity is N_Has_Etype range
     N_Defining_Character_Literal .. N_Defining_Operator_Symbol;
      --  N_Defining_Character_Literal
      --  N_Defining_Identifier
      --  N_Defining_Operator_Symbol
   subtype N_Subexpr is N_Has_Etype range
     N_Expanded_Name .. N_Unchecked_Type_Conversion;
      --  N_Expanded_Name
      --  N_Identifier
      --  N_Operator_Symbol
      --  N_Character_Literal
      --  N_Op_Add
      --  N_Op_Concat
      --  N_Op_Expon
      --  N_Op_Subtract
      --  N_Op_Divide
      --  N_Op_Mod
      --  N_Op_Multiply
      --  N_Op_Rem
      --  N_Op_And
      --  N_Op_Eq
      --  N_Op_Ge
      --  N_Op_Gt
      --  N_Op_Le
      --  N_Op_Lt
      --  N_Op_Ne
      --  N_Op_Or
      --  N_Op_Xor
      --  N_Op_Rotate_Left
      --  N_Op_Rotate_Right
      --  N_Op_Shift_Left
      --  N_Op_Shift_Right
      --  N_Op_Shift_Right_Arithmetic
      --  N_Op_Abs
      --  N_Op_Minus
      --  N_Op_Not
      --  N_Op_Plus
      --  N_Attribute_Reference
      --  N_In
      --  N_Not_In
      --  N_And_Then
      --  N_Or_Else
      --  N_Function_Call
      --  N_Procedure_Call_Statement
      --  N_Raise_Constraint_Error
      --  N_Raise_Program_Error
      --  N_Raise_Storage_Error
      --  N_Integer_Literal
      --  N_Real_Literal
      --  N_String_Literal
      --  N_Interpolated_String_Literal
      --  N_Explicit_Dereference
      --  N_Expression_With_Actions
      --  N_If_Expression
      --  N_Indexed_Component
      --  N_Null
      --  N_Qualified_Expression
      --  N_Quantified_Expression
      --  N_Aggregate
      --  N_Allocator
      --  N_Case_Expression
      --  N_Delta_Aggregate
      --  N_Extension_Aggregate
      --  N_Raise_Expression
      --  N_Range
      --  N_Reference
      --  N_Selected_Component
      --  N_Slice
      --  N_Target_Name
      --  N_Type_Conversion
      --  N_Unchecked_Expression
      --  N_Unchecked_Type_Conversion
   subtype N_Has_Entity is N_Subexpr range
     N_Expanded_Name .. N_Attribute_Reference;
      --  N_Expanded_Name
      --  N_Identifier
      --  N_Operator_Symbol
      --  N_Character_Literal
      --  N_Op_Add
      --  N_Op_Concat
      --  N_Op_Expon
      --  N_Op_Subtract
      --  N_Op_Divide
      --  N_Op_Mod
      --  N_Op_Multiply
      --  N_Op_Rem
      --  N_Op_And
      --  N_Op_Eq
      --  N_Op_Ge
      --  N_Op_Gt
      --  N_Op_Le
      --  N_Op_Lt
      --  N_Op_Ne
      --  N_Op_Or
      --  N_Op_Xor
      --  N_Op_Rotate_Left
      --  N_Op_Rotate_Right
      --  N_Op_Shift_Left
      --  N_Op_Shift_Right
      --  N_Op_Shift_Right_Arithmetic
      --  N_Op_Abs
      --  N_Op_Minus
      --  N_Op_Not
      --  N_Op_Plus
      --  N_Attribute_Reference
   subtype N_Direct_Name is N_Has_Entity range
     N_Identifier .. N_Character_Literal;
      --  N_Identifier
      --  N_Operator_Symbol
      --  N_Character_Literal
   subtype N_Op is N_Has_Entity range
     N_Op_Add .. N_Op_Plus;
      --  N_Op_Add
      --  N_Op_Concat
      --  N_Op_Expon
      --  N_Op_Subtract
      --  N_Op_Divide
      --  N_Op_Mod
      --  N_Op_Multiply
      --  N_Op_Rem
      --  N_Op_And
      --  N_Op_Eq
      --  N_Op_Ge
      --  N_Op_Gt
      --  N_Op_Le
      --  N_Op_Lt
      --  N_Op_Ne
      --  N_Op_Or
      --  N_Op_Xor
      --  N_Op_Rotate_Left
      --  N_Op_Rotate_Right
      --  N_Op_Shift_Left
      --  N_Op_Shift_Right
      --  N_Op_Shift_Right_Arithmetic
      --  N_Op_Abs
      --  N_Op_Minus
      --  N_Op_Not
      --  N_Op_Plus
   subtype N_Binary_Op is N_Op range
     N_Op_Add .. N_Op_Shift_Right_Arithmetic;
      --  N_Op_Add
      --  N_Op_Concat
      --  N_Op_Expon
      --  N_Op_Subtract
      --  N_Op_Divide
      --  N_Op_Mod
      --  N_Op_Multiply
      --  N_Op_Rem
      --  N_Op_And
      --  N_Op_Eq
      --  N_Op_Ge
      --  N_Op_Gt
      --  N_Op_Le
      --  N_Op_Lt
      --  N_Op_Ne
      --  N_Op_Or
      --  N_Op_Xor
      --  N_Op_Rotate_Left
      --  N_Op_Rotate_Right
      --  N_Op_Shift_Left
      --  N_Op_Shift_Right
      --  N_Op_Shift_Right_Arithmetic
   subtype N_Multiplying_Operator is N_Binary_Op range
     N_Op_Divide .. N_Op_Rem;
      --  N_Op_Divide
      --  N_Op_Mod
      --  N_Op_Multiply
      --  N_Op_Rem
   subtype N_Op_Boolean is N_Binary_Op range
     N_Op_And .. N_Op_Xor;
      --  N_Op_And
      --  N_Op_Eq
      --  N_Op_Ge
      --  N_Op_Gt
      --  N_Op_Le
      --  N_Op_Lt
      --  N_Op_Ne
      --  N_Op_Or
      --  N_Op_Xor
   subtype N_Op_Compare is N_Op_Boolean range
     N_Op_Eq .. N_Op_Ne;
      --  N_Op_Eq
      --  N_Op_Ge
      --  N_Op_Gt
      --  N_Op_Le
      --  N_Op_Lt
      --  N_Op_Ne
   subtype N_Op_Shift is N_Binary_Op range
     N_Op_Rotate_Left .. N_Op_Shift_Right_Arithmetic;
      --  N_Op_Rotate_Left
      --  N_Op_Rotate_Right
      --  N_Op_Shift_Left
      --  N_Op_Shift_Right
      --  N_Op_Shift_Right_Arithmetic
   subtype N_Unary_Op is N_Op range
     N_Op_Abs .. N_Op_Plus;
      --  N_Op_Abs
      --  N_Op_Minus
      --  N_Op_Not
      --  N_Op_Plus
   subtype N_Membership_Test is N_Subexpr range
     N_In .. N_Not_In;
      --  N_In
      --  N_Not_In
   subtype N_Short_Circuit is N_Subexpr range
     N_And_Then .. N_Or_Else;
      --  N_And_Then
      --  N_Or_Else
   subtype N_Subprogram_Call is N_Subexpr range
     N_Function_Call .. N_Procedure_Call_Statement;
      --  N_Function_Call
      --  N_Procedure_Call_Statement
   subtype N_Raise_xxx_Error is N_Subexpr range
     N_Raise_Constraint_Error .. N_Raise_Storage_Error;
      --  N_Raise_Constraint_Error
      --  N_Raise_Program_Error
      --  N_Raise_Storage_Error
   subtype N_Numeric_Or_String_Literal is N_Subexpr range
     N_Integer_Literal .. N_Interpolated_String_Literal;
      --  N_Integer_Literal
      --  N_Real_Literal
      --  N_String_Literal
      --  N_Interpolated_String_Literal
   subtype N_Declaration is Node_Kind range
     N_Component_Declaration .. N_Formal_Package_Declaration;
      --  N_Component_Declaration
      --  N_Entry_Declaration
      --  N_Expression_Function
      --  N_Formal_Object_Declaration
      --  N_Formal_Type_Declaration
      --  N_Full_Type_Declaration
      --  N_Incomplete_Type_Declaration
      --  N_Iterator_Specification
      --  N_Loop_Parameter_Specification
      --  N_Object_Declaration
      --  N_Protected_Type_Declaration
      --  N_Private_Extension_Declaration
      --  N_Private_Type_Declaration
      --  N_Subtype_Declaration
      --  N_Function_Specification
      --  N_Procedure_Specification
      --  N_Exception_Declaration
      --  N_Formal_Package_Declaration
   subtype N_Subprogram_Specification is N_Declaration range
     N_Function_Specification .. N_Procedure_Specification;
      --  N_Function_Specification
      --  N_Procedure_Specification
   subtype N_Access_To_Subprogram_Definition is Node_Kind range
     N_Access_Function_Definition .. N_Access_Procedure_Definition;
      --  N_Access_Function_Definition
      --  N_Access_Procedure_Definition
   subtype N_Later_Decl_Item is Node_Kind range
     N_Task_Type_Declaration .. N_Generic_Subprogram_Declaration;
      --  N_Task_Type_Declaration
      --  N_Package_Body_Stub
      --  N_Protected_Body_Stub
      --  N_Subprogram_Body_Stub
      --  N_Task_Body_Stub
      --  N_Function_Instantiation
      --  N_Procedure_Instantiation
      --  N_Package_Instantiation
      --  N_Package_Body
      --  N_Subprogram_Body
      --  N_Protected_Body
      --  N_Task_Body
      --  N_Implicit_Label_Declaration
      --  N_Package_Declaration
      --  N_Single_Task_Declaration
      --  N_Subprogram_Declaration
      --  N_Use_Package_Clause
      --  N_Generic_Package_Declaration
      --  N_Generic_Subprogram_Declaration
   subtype N_Body_Stub is N_Later_Decl_Item range
     N_Package_Body_Stub .. N_Task_Body_Stub;
      --  N_Package_Body_Stub
      --  N_Protected_Body_Stub
      --  N_Subprogram_Body_Stub
      --  N_Task_Body_Stub
   subtype N_Generic_Instantiation is N_Later_Decl_Item range
     N_Function_Instantiation .. N_Package_Instantiation;
      --  N_Function_Instantiation
      --  N_Procedure_Instantiation
      --  N_Package_Instantiation
   subtype N_Subprogram_Instantiation is N_Generic_Instantiation range
     N_Function_Instantiation .. N_Procedure_Instantiation;
      --  N_Function_Instantiation
      --  N_Procedure_Instantiation
   subtype N_Proper_Body is N_Later_Decl_Item range
     N_Package_Body .. N_Task_Body;
      --  N_Package_Body
      --  N_Subprogram_Body
      --  N_Protected_Body
      --  N_Task_Body
   subtype N_Unit_Body is N_Proper_Body range
     N_Package_Body .. N_Subprogram_Body;
      --  N_Package_Body
      --  N_Subprogram_Body
   subtype N_Generic_Declaration is N_Later_Decl_Item range
     N_Generic_Package_Declaration .. N_Generic_Subprogram_Declaration;
      --  N_Generic_Package_Declaration
      --  N_Generic_Subprogram_Declaration
   subtype N_Array_Type_Definition is Node_Kind range
     N_Constrained_Array_Definition .. N_Unconstrained_Array_Definition;
      --  N_Constrained_Array_Definition
      --  N_Unconstrained_Array_Definition
   subtype N_Renaming_Declaration is Node_Kind range
     N_Exception_Renaming_Declaration .. N_Generic_Procedure_Renaming_Declaration;
      --  N_Exception_Renaming_Declaration
      --  N_Object_Renaming_Declaration
      --  N_Package_Renaming_Declaration
      --  N_Subprogram_Renaming_Declaration
      --  N_Generic_Function_Renaming_Declaration
      --  N_Generic_Package_Renaming_Declaration
      --  N_Generic_Procedure_Renaming_Declaration
   subtype N_Generic_Renaming_Declaration is N_Renaming_Declaration range
     N_Generic_Function_Renaming_Declaration .. N_Generic_Procedure_Renaming_Declaration;
      --  N_Generic_Function_Renaming_Declaration
      --  N_Generic_Package_Renaming_Declaration
      --  N_Generic_Procedure_Renaming_Declaration
   subtype N_Statement_Other_Than_Procedure_Call is Node_Kind range
     N_Abort_Statement .. N_If_Statement;
      --  N_Abort_Statement
      --  N_Accept_Statement
      --  N_Assignment_Statement
      --  N_Asynchronous_Select
      --  N_Block_Statement
      --  N_Case_Statement
      --  N_Code_Statement
      --  N_Compound_Statement
      --  N_Conditional_Entry_Call
      --  N_Delay_Relative_Statement
      --  N_Delay_Until_Statement
      --  N_Entry_Call_Statement
      --  N_Free_Statement
      --  N_Goto_Statement
      --  N_Goto_When_Statement
      --  N_Loop_Statement
      --  N_Null_Statement
      --  N_Raise_Statement
      --  N_Raise_When_Statement
      --  N_Requeue_Statement
      --  N_Simple_Return_Statement
      --  N_Extended_Return_Statement
      --  N_Return_When_Statement
      --  N_Selective_Accept
      --  N_Timed_Entry_Call
      --  N_Exit_Statement
      --  N_If_Statement
   subtype N_Delay_Statement is N_Statement_Other_Than_Procedure_Call range
     N_Delay_Relative_Statement .. N_Delay_Until_Statement;
      --  N_Delay_Relative_Statement
      --  N_Delay_Until_Statement
   subtype N_Formal_Subprogram_Declaration is Node_Kind range
     N_Formal_Abstract_Subprogram_Declaration .. N_Formal_Concrete_Subprogram_Declaration;
      --  N_Formal_Abstract_Subprogram_Declaration
      --  N_Formal_Concrete_Subprogram_Declaration
   subtype N_Push_Pop_xxx_Label is Node_Kind range
     N_Push_Constraint_Error_Label .. N_Pop_Storage_Error_Label;
      --  N_Push_Constraint_Error_Label
      --  N_Push_Program_Error_Label
      --  N_Push_Storage_Error_Label
      --  N_Pop_Constraint_Error_Label
      --  N_Pop_Program_Error_Label
      --  N_Pop_Storage_Error_Label
   subtype N_Push_xxx_Label is N_Push_Pop_xxx_Label range
     N_Push_Constraint_Error_Label .. N_Push_Storage_Error_Label;
      --  N_Push_Constraint_Error_Label
      --  N_Push_Program_Error_Label
      --  N_Push_Storage_Error_Label
   subtype N_Pop_xxx_Label is N_Push_Pop_xxx_Label range
     N_Pop_Constraint_Error_Label .. N_Pop_Storage_Error_Label;
      --  N_Pop_Constraint_Error_Label
      --  N_Pop_Program_Error_Label
      --  N_Pop_Storage_Error_Label
   subtype N_SCIL_Node is Node_Kind range
     N_SCIL_Dispatch_Table_Tag_Init .. N_SCIL_Membership_Test;
      --  N_SCIL_Dispatch_Table_Tag_Init
      --  N_SCIL_Dispatching_Call
      --  N_SCIL_Membership_Test

   --  Subtypes of Node_Id with specified Node_Kind.
   --  These may be used in place of Node_Id for better documentation,
   --  and if assertions are enabled, for run-time checking.

   subtype N_Unused_At_Start_Id is
     Node_Id with Predicate =>
       K (N_Unused_At_Start_Id) in N_Unused_At_Start;
   subtype N_Representation_Clause_Id is
     Node_Id with Predicate =>
       K (N_Representation_Clause_Id) in N_Representation_Clause;
   subtype N_At_Clause_Id is
     N_Representation_Clause_Id with Predicate =>
       K (N_At_Clause_Id) in N_At_Clause;
   subtype N_Component_Clause_Id is
     N_Representation_Clause_Id with Predicate =>
       K (N_Component_Clause_Id) in N_Component_Clause;
   subtype N_Enumeration_Representation_Clause_Id is
     N_Representation_Clause_Id with Predicate =>
       K (N_Enumeration_Representation_Clause_Id) in N_Enumeration_Representation_Clause;
   subtype N_Mod_Clause_Id is
     N_Representation_Clause_Id with Predicate =>
       K (N_Mod_Clause_Id) in N_Mod_Clause;
   subtype N_Record_Representation_Clause_Id is
     N_Representation_Clause_Id with Predicate =>
       K (N_Record_Representation_Clause_Id) in N_Record_Representation_Clause;
   subtype N_Attribute_Definition_Clause_Id is
     N_Representation_Clause_Id with Predicate =>
       K (N_Attribute_Definition_Clause_Id) in N_Attribute_Definition_Clause;
   subtype N_Empty_Id is
     Node_Id with Predicate =>
       K (N_Empty_Id) in N_Empty;
   subtype N_Pragma_Argument_Association_Id is
     Node_Id with Predicate =>
       K (N_Pragma_Argument_Association_Id) in N_Pragma_Argument_Association;
   subtype N_Has_Etype_Id is
     Node_Id with Predicate =>
       K (N_Has_Etype_Id) in N_Has_Etype;
   subtype N_Error_Id is
     N_Has_Etype_Id with Predicate =>
       K (N_Error_Id) in N_Error;
   subtype N_Entity_Id is
     N_Has_Etype_Id with Predicate =>
       K (N_Entity_Id) in N_Entity;
   subtype N_Defining_Character_Literal_Id is
     N_Entity_Id with Predicate =>
       K (N_Defining_Character_Literal_Id) in N_Defining_Character_Literal;
   subtype N_Defining_Identifier_Id is
     N_Entity_Id with Predicate =>
       K (N_Defining_Identifier_Id) in N_Defining_Identifier;
   subtype N_Defining_Operator_Symbol_Id is
     N_Entity_Id with Predicate =>
       K (N_Defining_Operator_Symbol_Id) in N_Defining_Operator_Symbol;
   subtype N_Subexpr_Id is
     N_Has_Etype_Id with Predicate =>
       K (N_Subexpr_Id) in N_Subexpr;
   subtype N_Has_Entity_Id is
     N_Subexpr_Id with Predicate =>
       K (N_Has_Entity_Id) in N_Has_Entity;
   subtype N_Expanded_Name_Id is
     N_Has_Entity_Id with Predicate =>
       K (N_Expanded_Name_Id) in N_Expanded_Name;
   subtype N_Direct_Name_Id is
     N_Has_Entity_Id with Predicate =>
       K (N_Direct_Name_Id) in N_Direct_Name;
   subtype N_Identifier_Id is
     N_Direct_Name_Id with Predicate =>
       K (N_Identifier_Id) in N_Identifier;
   subtype N_Operator_Symbol_Id is
     N_Direct_Name_Id with Predicate =>
       K (N_Operator_Symbol_Id) in N_Operator_Symbol;
   subtype N_Character_Literal_Id is
     N_Direct_Name_Id with Predicate =>
       K (N_Character_Literal_Id) in N_Character_Literal;
   subtype N_Op_Id is
     N_Has_Entity_Id with Predicate =>
       K (N_Op_Id) in N_Op;
   subtype N_Binary_Op_Id is
     N_Op_Id with Predicate =>
       K (N_Binary_Op_Id) in N_Binary_Op;
   subtype N_Op_Add_Id is
     N_Binary_Op_Id with Predicate =>
       K (N_Op_Add_Id) in N_Op_Add;
   subtype N_Op_Concat_Id is
     N_Binary_Op_Id with Predicate =>
       K (N_Op_Concat_Id) in N_Op_Concat;
   subtype N_Op_Expon_Id is
     N_Binary_Op_Id with Predicate =>
       K (N_Op_Expon_Id) in N_Op_Expon;
   subtype N_Op_Subtract_Id is
     N_Binary_Op_Id with Predicate =>
       K (N_Op_Subtract_Id) in N_Op_Subtract;
   subtype N_Multiplying_Operator_Id is
     N_Binary_Op_Id with Predicate =>
       K (N_Multiplying_Operator_Id) in N_Multiplying_Operator;
   subtype N_Op_Divide_Id is
     N_Multiplying_Operator_Id with Predicate =>
       K (N_Op_Divide_Id) in N_Op_Divide;
   subtype N_Op_Mod_Id is
     N_Multiplying_Operator_Id with Predicate =>
       K (N_Op_Mod_Id) in N_Op_Mod;
   subtype N_Op_Multiply_Id is
     N_Multiplying_Operator_Id with Predicate =>
       K (N_Op_Multiply_Id) in N_Op_Multiply;
   subtype N_Op_Rem_Id is
     N_Multiplying_Operator_Id with Predicate =>
       K (N_Op_Rem_Id) in N_Op_Rem;
   subtype N_Op_Boolean_Id is
     N_Binary_Op_Id with Predicate =>
       K (N_Op_Boolean_Id) in N_Op_Boolean;
   subtype N_Op_And_Id is
     N_Op_Boolean_Id with Predicate =>
       K (N_Op_And_Id) in N_Op_And;
   subtype N_Op_Compare_Id is
     N_Op_Boolean_Id with Predicate =>
       K (N_Op_Compare_Id) in N_Op_Compare;
   subtype N_Op_Eq_Id is
     N_Op_Compare_Id with Predicate =>
       K (N_Op_Eq_Id) in N_Op_Eq;
   subtype N_Op_Ge_Id is
     N_Op_Compare_Id with Predicate =>
       K (N_Op_Ge_Id) in N_Op_Ge;
   subtype N_Op_Gt_Id is
     N_Op_Compare_Id with Predicate =>
       K (N_Op_Gt_Id) in N_Op_Gt;
   subtype N_Op_Le_Id is
     N_Op_Compare_Id with Predicate =>
       K (N_Op_Le_Id) in N_Op_Le;
   subtype N_Op_Lt_Id is
     N_Op_Compare_Id with Predicate =>
       K (N_Op_Lt_Id) in N_Op_Lt;
   subtype N_Op_Ne_Id is
     N_Op_Compare_Id with Predicate =>
       K (N_Op_Ne_Id) in N_Op_Ne;
   subtype N_Op_Or_Id is
     N_Op_Boolean_Id with Predicate =>
       K (N_Op_Or_Id) in N_Op_Or;
   subtype N_Op_Xor_Id is
     N_Op_Boolean_Id with Predicate =>
       K (N_Op_Xor_Id) in N_Op_Xor;
   subtype N_Op_Shift_Id is
     N_Binary_Op_Id with Predicate =>
       K (N_Op_Shift_Id) in N_Op_Shift;
   subtype N_Op_Rotate_Left_Id is
     N_Op_Shift_Id with Predicate =>
       K (N_Op_Rotate_Left_Id) in N_Op_Rotate_Left;
   subtype N_Op_Rotate_Right_Id is
     N_Op_Shift_Id with Predicate =>
       K (N_Op_Rotate_Right_Id) in N_Op_Rotate_Right;
   subtype N_Op_Shift_Left_Id is
     N_Op_Shift_Id with Predicate =>
       K (N_Op_Shift_Left_Id) in N_Op_Shift_Left;
   subtype N_Op_Shift_Right_Id is
     N_Op_Shift_Id with Predicate =>
       K (N_Op_Shift_Right_Id) in N_Op_Shift_Right;
   subtype N_Op_Shift_Right_Arithmetic_Id is
     N_Op_Shift_Id with Predicate =>
       K (N_Op_Shift_Right_Arithmetic_Id) in N_Op_Shift_Right_Arithmetic;
   subtype N_Unary_Op_Id is
     N_Op_Id with Predicate =>
       K (N_Unary_Op_Id) in N_Unary_Op;
   subtype N_Op_Abs_Id is
     N_Unary_Op_Id with Predicate =>
       K (N_Op_Abs_Id) in N_Op_Abs;
   subtype N_Op_Minus_Id is
     N_Unary_Op_Id with Predicate =>
       K (N_Op_Minus_Id) in N_Op_Minus;
   subtype N_Op_Not_Id is
     N_Unary_Op_Id with Predicate =>
       K (N_Op_Not_Id) in N_Op_Not;
   subtype N_Op_Plus_Id is
     N_Unary_Op_Id with Predicate =>
       K (N_Op_Plus_Id) in N_Op_Plus;
   subtype N_Attribute_Reference_Id is
     N_Has_Entity_Id with Predicate =>
       K (N_Attribute_Reference_Id) in N_Attribute_Reference;
   subtype N_Membership_Test_Id is
     N_Subexpr_Id with Predicate =>
       K (N_Membership_Test_Id) in N_Membership_Test;
   subtype N_In_Id is
     N_Membership_Test_Id with Predicate =>
       K (N_In_Id) in N_In;
   subtype N_Not_In_Id is
     N_Membership_Test_Id with Predicate =>
       K (N_Not_In_Id) in N_Not_In;
   subtype N_Short_Circuit_Id is
     N_Subexpr_Id with Predicate =>
       K (N_Short_Circuit_Id) in N_Short_Circuit;
   subtype N_And_Then_Id is
     N_Short_Circuit_Id with Predicate =>
       K (N_And_Then_Id) in N_And_Then;
   subtype N_Or_Else_Id is
     N_Short_Circuit_Id with Predicate =>
       K (N_Or_Else_Id) in N_Or_Else;
   subtype N_Subprogram_Call_Id is
     N_Subexpr_Id with Predicate =>
       K (N_Subprogram_Call_Id) in N_Subprogram_Call;
   subtype N_Function_Call_Id is
     N_Subprogram_Call_Id with Predicate =>
       K (N_Function_Call_Id) in N_Function_Call;
   subtype N_Procedure_Call_Statement_Id is
     N_Subprogram_Call_Id with Predicate =>
       K (N_Procedure_Call_Statement_Id) in N_Procedure_Call_Statement;
   subtype N_Raise_xxx_Error_Id is
     N_Subexpr_Id with Predicate =>
       K (N_Raise_xxx_Error_Id) in N_Raise_xxx_Error;
   subtype N_Raise_Constraint_Error_Id is
     N_Raise_xxx_Error_Id with Predicate =>
       K (N_Raise_Constraint_Error_Id) in N_Raise_Constraint_Error;
   subtype N_Raise_Program_Error_Id is
     N_Raise_xxx_Error_Id with Predicate =>
       K (N_Raise_Program_Error_Id) in N_Raise_Program_Error;
   subtype N_Raise_Storage_Error_Id is
     N_Raise_xxx_Error_Id with Predicate =>
       K (N_Raise_Storage_Error_Id) in N_Raise_Storage_Error;
   subtype N_Numeric_Or_String_Literal_Id is
     N_Subexpr_Id with Predicate =>
       K (N_Numeric_Or_String_Literal_Id) in N_Numeric_Or_String_Literal;
   subtype N_Integer_Literal_Id is
     N_Numeric_Or_String_Literal_Id with Predicate =>
       K (N_Integer_Literal_Id) in N_Integer_Literal;
   subtype N_Real_Literal_Id is
     N_Numeric_Or_String_Literal_Id with Predicate =>
       K (N_Real_Literal_Id) in N_Real_Literal;
   subtype N_String_Literal_Id is
     N_Numeric_Or_String_Literal_Id with Predicate =>
       K (N_String_Literal_Id) in N_String_Literal;
   subtype N_Interpolated_String_Literal_Id is
     N_Numeric_Or_String_Literal_Id with Predicate =>
       K (N_Interpolated_String_Literal_Id) in N_Interpolated_String_Literal;
   subtype N_Explicit_Dereference_Id is
     N_Subexpr_Id with Predicate =>
       K (N_Explicit_Dereference_Id) in N_Explicit_Dereference;
   subtype N_Expression_With_Actions_Id is
     N_Subexpr_Id with Predicate =>
       K (N_Expression_With_Actions_Id) in N_Expression_With_Actions;
   subtype N_If_Expression_Id is
     N_Subexpr_Id with Predicate =>
       K (N_If_Expression_Id) in N_If_Expression;
   subtype N_Indexed_Component_Id is
     N_Subexpr_Id with Predicate =>
       K (N_Indexed_Component_Id) in N_Indexed_Component;
   subtype N_Null_Id is
     N_Subexpr_Id with Predicate =>
       K (N_Null_Id) in N_Null;
   subtype N_Qualified_Expression_Id is
     N_Subexpr_Id with Predicate =>
       K (N_Qualified_Expression_Id) in N_Qualified_Expression;
   subtype N_Quantified_Expression_Id is
     N_Subexpr_Id with Predicate =>
       K (N_Quantified_Expression_Id) in N_Quantified_Expression;
   subtype N_Aggregate_Id is
     N_Subexpr_Id with Predicate =>
       K (N_Aggregate_Id) in N_Aggregate;
   subtype N_Allocator_Id is
     N_Subexpr_Id with Predicate =>
       K (N_Allocator_Id) in N_Allocator;
   subtype N_Case_Expression_Id is
     N_Subexpr_Id with Predicate =>
       K (N_Case_Expression_Id) in N_Case_Expression;
   subtype N_Delta_Aggregate_Id is
     N_Subexpr_Id with Predicate =>
       K (N_Delta_Aggregate_Id) in N_Delta_Aggregate;
   subtype N_Extension_Aggregate_Id is
     N_Subexpr_Id with Predicate =>
       K (N_Extension_Aggregate_Id) in N_Extension_Aggregate;
   subtype N_Raise_Expression_Id is
     N_Subexpr_Id with Predicate =>
       K (N_Raise_Expression_Id) in N_Raise_Expression;
   subtype N_Range_Id is
     N_Subexpr_Id with Predicate =>
       K (N_Range_Id) in N_Range;
   subtype N_Reference_Id is
     N_Subexpr_Id with Predicate =>
       K (N_Reference_Id) in N_Reference;
   subtype N_Selected_Component_Id is
     N_Subexpr_Id with Predicate =>
       K (N_Selected_Component_Id) in N_Selected_Component;
   subtype N_Slice_Id is
     N_Subexpr_Id with Predicate =>
       K (N_Slice_Id) in N_Slice;
   subtype N_Target_Name_Id is
     N_Subexpr_Id with Predicate =>
       K (N_Target_Name_Id) in N_Target_Name;
   subtype N_Type_Conversion_Id is
     N_Subexpr_Id with Predicate =>
       K (N_Type_Conversion_Id) in N_Type_Conversion;
   subtype N_Unchecked_Expression_Id is
     N_Subexpr_Id with Predicate =>
       K (N_Unchecked_Expression_Id) in N_Unchecked_Expression;
   subtype N_Unchecked_Type_Conversion_Id is
     N_Subexpr_Id with Predicate =>
       K (N_Unchecked_Type_Conversion_Id) in N_Unchecked_Type_Conversion;
   subtype N_Subtype_Indication_Id is
     N_Has_Etype_Id with Predicate =>
       K (N_Subtype_Indication_Id) in N_Subtype_Indication;
   subtype N_Declaration_Id is
     Node_Id with Predicate =>
       K (N_Declaration_Id) in N_Declaration;
   subtype N_Component_Declaration_Id is
     N_Declaration_Id with Predicate =>
       K (N_Component_Declaration_Id) in N_Component_Declaration;
   subtype N_Entry_Declaration_Id is
     N_Declaration_Id with Predicate =>
       K (N_Entry_Declaration_Id) in N_Entry_Declaration;
   subtype N_Expression_Function_Id is
     N_Declaration_Id with Predicate =>
       K (N_Expression_Function_Id) in N_Expression_Function;
   subtype N_Formal_Object_Declaration_Id is
     N_Declaration_Id with Predicate =>
       K (N_Formal_Object_Declaration_Id) in N_Formal_Object_Declaration;
   subtype N_Formal_Type_Declaration_Id is
     N_Declaration_Id with Predicate =>
       K (N_Formal_Type_Declaration_Id) in N_Formal_Type_Declaration;
   subtype N_Full_Type_Declaration_Id is
     N_Declaration_Id with Predicate =>
       K (N_Full_Type_Declaration_Id) in N_Full_Type_Declaration;
   subtype N_Incomplete_Type_Declaration_Id is
     N_Declaration_Id with Predicate =>
       K (N_Incomplete_Type_Declaration_Id) in N_Incomplete_Type_Declaration;
   subtype N_Iterator_Specification_Id is
     N_Declaration_Id with Predicate =>
       K (N_Iterator_Specification_Id) in N_Iterator_Specification;
   subtype N_Loop_Parameter_Specification_Id is
     N_Declaration_Id with Predicate =>
       K (N_Loop_Parameter_Specification_Id) in N_Loop_Parameter_Specification;
   subtype N_Object_Declaration_Id is
     N_Declaration_Id with Predicate =>
       K (N_Object_Declaration_Id) in N_Object_Declaration;
   subtype N_Protected_Type_Declaration_Id is
     N_Declaration_Id with Predicate =>
       K (N_Protected_Type_Declaration_Id) in N_Protected_Type_Declaration;
   subtype N_Private_Extension_Declaration_Id is
     N_Declaration_Id with Predicate =>
       K (N_Private_Extension_Declaration_Id) in N_Private_Extension_Declaration;
   subtype N_Private_Type_Declaration_Id is
     N_Declaration_Id with Predicate =>
       K (N_Private_Type_Declaration_Id) in N_Private_Type_Declaration;
   subtype N_Subtype_Declaration_Id is
     N_Declaration_Id with Predicate =>
       K (N_Subtype_Declaration_Id) in N_Subtype_Declaration;
   subtype N_Subprogram_Specification_Id is
     N_Declaration_Id with Predicate =>
       K (N_Subprogram_Specification_Id) in N_Subprogram_Specification;
   subtype N_Function_Specification_Id is
     N_Subprogram_Specification_Id with Predicate =>
       K (N_Function_Specification_Id) in N_Function_Specification;
   subtype N_Procedure_Specification_Id is
     N_Subprogram_Specification_Id with Predicate =>
       K (N_Procedure_Specification_Id) in N_Procedure_Specification;
   subtype N_Exception_Declaration_Id is
     N_Declaration_Id with Predicate =>
       K (N_Exception_Declaration_Id) in N_Exception_Declaration;
   subtype N_Formal_Package_Declaration_Id is
     N_Declaration_Id with Predicate =>
       K (N_Formal_Package_Declaration_Id) in N_Formal_Package_Declaration;
   subtype N_Access_To_Subprogram_Definition_Id is
     Node_Id with Predicate =>
       K (N_Access_To_Subprogram_Definition_Id) in N_Access_To_Subprogram_Definition;
   subtype N_Access_Function_Definition_Id is
     N_Access_To_Subprogram_Definition_Id with Predicate =>
       K (N_Access_Function_Definition_Id) in N_Access_Function_Definition;
   subtype N_Access_Procedure_Definition_Id is
     N_Access_To_Subprogram_Definition_Id with Predicate =>
       K (N_Access_Procedure_Definition_Id) in N_Access_Procedure_Definition;
   subtype N_Later_Decl_Item_Id is
     Node_Id with Predicate =>
       K (N_Later_Decl_Item_Id) in N_Later_Decl_Item;
   subtype N_Task_Type_Declaration_Id is
     N_Later_Decl_Item_Id with Predicate =>
       K (N_Task_Type_Declaration_Id) in N_Task_Type_Declaration;
   subtype N_Body_Stub_Id is
     N_Later_Decl_Item_Id with Predicate =>
       K (N_Body_Stub_Id) in N_Body_Stub;
   subtype N_Package_Body_Stub_Id is
     N_Body_Stub_Id with Predicate =>
       K (N_Package_Body_Stub_Id) in N_Package_Body_Stub;
   subtype N_Protected_Body_Stub_Id is
     N_Body_Stub_Id with Predicate =>
       K (N_Protected_Body_Stub_Id) in N_Protected_Body_Stub;
   subtype N_Subprogram_Body_Stub_Id is
     N_Body_Stub_Id with Predicate =>
       K (N_Subprogram_Body_Stub_Id) in N_Subprogram_Body_Stub;
   subtype N_Task_Body_Stub_Id is
     N_Body_Stub_Id with Predicate =>
       K (N_Task_Body_Stub_Id) in N_Task_Body_Stub;
   subtype N_Generic_Instantiation_Id is
     N_Later_Decl_Item_Id with Predicate =>
       K (N_Generic_Instantiation_Id) in N_Generic_Instantiation;
   subtype N_Subprogram_Instantiation_Id is
     N_Generic_Instantiation_Id with Predicate =>
       K (N_Subprogram_Instantiation_Id) in N_Subprogram_Instantiation;
   subtype N_Function_Instantiation_Id is
     N_Subprogram_Instantiation_Id with Predicate =>
       K (N_Function_Instantiation_Id) in N_Function_Instantiation;
   subtype N_Procedure_Instantiation_Id is
     N_Subprogram_Instantiation_Id with Predicate =>
       K (N_Procedure_Instantiation_Id) in N_Procedure_Instantiation;
   subtype N_Package_Instantiation_Id is
     N_Generic_Instantiation_Id with Predicate =>
       K (N_Package_Instantiation_Id) in N_Package_Instantiation;
   subtype N_Proper_Body_Id is
     N_Later_Decl_Item_Id with Predicate =>
       K (N_Proper_Body_Id) in N_Proper_Body;
   subtype N_Unit_Body_Id is
     N_Proper_Body_Id with Predicate =>
       K (N_Unit_Body_Id) in N_Unit_Body;
   subtype N_Package_Body_Id is
     N_Unit_Body_Id with Predicate =>
       K (N_Package_Body_Id) in N_Package_Body;
   subtype N_Subprogram_Body_Id is
     N_Unit_Body_Id with Predicate =>
       K (N_Subprogram_Body_Id) in N_Subprogram_Body;
   subtype N_Protected_Body_Id is
     N_Proper_Body_Id with Predicate =>
       K (N_Protected_Body_Id) in N_Protected_Body;
   subtype N_Task_Body_Id is
     N_Proper_Body_Id with Predicate =>
       K (N_Task_Body_Id) in N_Task_Body;
   subtype N_Implicit_Label_Declaration_Id is
     N_Later_Decl_Item_Id with Predicate =>
       K (N_Implicit_Label_Declaration_Id) in N_Implicit_Label_Declaration;
   subtype N_Package_Declaration_Id is
     N_Later_Decl_Item_Id with Predicate =>
       K (N_Package_Declaration_Id) in N_Package_Declaration;
   subtype N_Single_Task_Declaration_Id is
     N_Later_Decl_Item_Id with Predicate =>
       K (N_Single_Task_Declaration_Id) in N_Single_Task_Declaration;
   subtype N_Subprogram_Declaration_Id is
     N_Later_Decl_Item_Id with Predicate =>
       K (N_Subprogram_Declaration_Id) in N_Subprogram_Declaration;
   subtype N_Use_Package_Clause_Id is
     N_Later_Decl_Item_Id with Predicate =>
       K (N_Use_Package_Clause_Id) in N_Use_Package_Clause;
   subtype N_Generic_Declaration_Id is
     N_Later_Decl_Item_Id with Predicate =>
       K (N_Generic_Declaration_Id) in N_Generic_Declaration;
   subtype N_Generic_Package_Declaration_Id is
     N_Generic_Declaration_Id with Predicate =>
       K (N_Generic_Package_Declaration_Id) in N_Generic_Package_Declaration;
   subtype N_Generic_Subprogram_Declaration_Id is
     N_Generic_Declaration_Id with Predicate =>
       K (N_Generic_Subprogram_Declaration_Id) in N_Generic_Subprogram_Declaration;
   subtype N_Array_Type_Definition_Id is
     Node_Id with Predicate =>
       K (N_Array_Type_Definition_Id) in N_Array_Type_Definition;
   subtype N_Constrained_Array_Definition_Id is
     N_Array_Type_Definition_Id with Predicate =>
       K (N_Constrained_Array_Definition_Id) in N_Constrained_Array_Definition;
   subtype N_Unconstrained_Array_Definition_Id is
     N_Array_Type_Definition_Id with Predicate =>
       K (N_Unconstrained_Array_Definition_Id) in N_Unconstrained_Array_Definition;
   subtype N_Renaming_Declaration_Id is
     Node_Id with Predicate =>
       K (N_Renaming_Declaration_Id) in N_Renaming_Declaration;
   subtype N_Exception_Renaming_Declaration_Id is
     N_Renaming_Declaration_Id with Predicate =>
       K (N_Exception_Renaming_Declaration_Id) in N_Exception_Renaming_Declaration;
   subtype N_Object_Renaming_Declaration_Id is
     N_Renaming_Declaration_Id with Predicate =>
       K (N_Object_Renaming_Declaration_Id) in N_Object_Renaming_Declaration;
   subtype N_Package_Renaming_Declaration_Id is
     N_Renaming_Declaration_Id with Predicate =>
       K (N_Package_Renaming_Declaration_Id) in N_Package_Renaming_Declaration;
   subtype N_Subprogram_Renaming_Declaration_Id is
     N_Renaming_Declaration_Id with Predicate =>
       K (N_Subprogram_Renaming_Declaration_Id) in N_Subprogram_Renaming_Declaration;
   subtype N_Generic_Renaming_Declaration_Id is
     N_Renaming_Declaration_Id with Predicate =>
       K (N_Generic_Renaming_Declaration_Id) in N_Generic_Renaming_Declaration;
   subtype N_Generic_Function_Renaming_Declaration_Id is
     N_Generic_Renaming_Declaration_Id with Predicate =>
       K (N_Generic_Function_Renaming_Declaration_Id) in N_Generic_Function_Renaming_Declaration;
   subtype N_Generic_Package_Renaming_Declaration_Id is
     N_Generic_Renaming_Declaration_Id with Predicate =>
       K (N_Generic_Package_Renaming_Declaration_Id) in N_Generic_Package_Renaming_Declaration;
   subtype N_Generic_Procedure_Renaming_Declaration_Id is
     N_Generic_Renaming_Declaration_Id with Predicate =>
       K (N_Generic_Procedure_Renaming_Declaration_Id) in N_Generic_Procedure_Renaming_Declaration;
   subtype N_Statement_Other_Than_Procedure_Call_Id is
     Node_Id with Predicate =>
       K (N_Statement_Other_Than_Procedure_Call_Id) in N_Statement_Other_Than_Procedure_Call;
   subtype N_Abort_Statement_Id is
     N_Statement_Other_Than_Procedure_Call_Id with Predicate =>
       K (N_Abort_Statement_Id) in N_Abort_Statement;
   subtype N_Accept_Statement_Id is
     N_Statement_Other_Than_Procedure_Call_Id with Predicate =>
       K (N_Accept_Statement_Id) in N_Accept_Statement;
   subtype N_Assignment_Statement_Id is
     N_Statement_Other_Than_Procedure_Call_Id with Predicate =>
       K (N_Assignment_Statement_Id) in N_Assignment_Statement;
   subtype N_Asynchronous_Select_Id is
     N_Statement_Other_Than_Procedure_Call_Id with Predicate =>
       K (N_Asynchronous_Select_Id) in N_Asynchronous_Select;
   subtype N_Block_Statement_Id is
     N_Statement_Other_Than_Procedure_Call_Id with Predicate =>
       K (N_Block_Statement_Id) in N_Block_Statement;
   subtype N_Case_Statement_Id is
     N_Statement_Other_Than_Procedure_Call_Id with Predicate =>
       K (N_Case_Statement_Id) in N_Case_Statement;
   subtype N_Code_Statement_Id is
     N_Statement_Other_Than_Procedure_Call_Id with Predicate =>
       K (N_Code_Statement_Id) in N_Code_Statement;
   subtype N_Compound_Statement_Id is
     N_Statement_Other_Than_Procedure_Call_Id with Predicate =>
       K (N_Compound_Statement_Id) in N_Compound_Statement;
   subtype N_Conditional_Entry_Call_Id is
     N_Statement_Other_Than_Procedure_Call_Id with Predicate =>
       K (N_Conditional_Entry_Call_Id) in N_Conditional_Entry_Call;
   subtype N_Delay_Statement_Id is
     N_Statement_Other_Than_Procedure_Call_Id with Predicate =>
       K (N_Delay_Statement_Id) in N_Delay_Statement;
   subtype N_Delay_Relative_Statement_Id is
     N_Delay_Statement_Id with Predicate =>
       K (N_Delay_Relative_Statement_Id) in N_Delay_Relative_Statement;
   subtype N_Delay_Until_Statement_Id is
     N_Delay_Statement_Id with Predicate =>
       K (N_Delay_Until_Statement_Id) in N_Delay_Until_Statement;
   subtype N_Entry_Call_Statement_Id is
     N_Statement_Other_Than_Procedure_Call_Id with Predicate =>
       K (N_Entry_Call_Statement_Id) in N_Entry_Call_Statement;
   subtype N_Free_Statement_Id is
     N_Statement_Other_Than_Procedure_Call_Id with Predicate =>
       K (N_Free_Statement_Id) in N_Free_Statement;
   subtype N_Goto_Statement_Id is
     N_Statement_Other_Than_Procedure_Call_Id with Predicate =>
       K (N_Goto_Statement_Id) in N_Goto_Statement;
   subtype N_Goto_When_Statement_Id is
     N_Statement_Other_Than_Procedure_Call_Id with Predicate =>
       K (N_Goto_When_Statement_Id) in N_Goto_When_Statement;
   subtype N_Loop_Statement_Id is
     N_Statement_Other_Than_Procedure_Call_Id with Predicate =>
       K (N_Loop_Statement_Id) in N_Loop_Statement;
   subtype N_Null_Statement_Id is
     N_Statement_Other_Than_Procedure_Call_Id with Predicate =>
       K (N_Null_Statement_Id) in N_Null_Statement;
   subtype N_Raise_Statement_Id is
     N_Statement_Other_Than_Procedure_Call_Id with Predicate =>
       K (N_Raise_Statement_Id) in N_Raise_Statement;
   subtype N_Raise_When_Statement_Id is
     N_Statement_Other_Than_Procedure_Call_Id with Predicate =>
       K (N_Raise_When_Statement_Id) in N_Raise_When_Statement;
   subtype N_Requeue_Statement_Id is
     N_Statement_Other_Than_Procedure_Call_Id with Predicate =>
       K (N_Requeue_Statement_Id) in N_Requeue_Statement;
   subtype N_Simple_Return_Statement_Id is
     N_Statement_Other_Than_Procedure_Call_Id with Predicate =>
       K (N_Simple_Return_Statement_Id) in N_Simple_Return_Statement;
   subtype N_Extended_Return_Statement_Id is
     N_Statement_Other_Than_Procedure_Call_Id with Predicate =>
       K (N_Extended_Return_Statement_Id) in N_Extended_Return_Statement;
   subtype N_Return_When_Statement_Id is
     N_Statement_Other_Than_Procedure_Call_Id with Predicate =>
       K (N_Return_When_Statement_Id) in N_Return_When_Statement;
   subtype N_Selective_Accept_Id is
     N_Statement_Other_Than_Procedure_Call_Id with Predicate =>
       K (N_Selective_Accept_Id) in N_Selective_Accept;
   subtype N_Timed_Entry_Call_Id is
     N_Statement_Other_Than_Procedure_Call_Id with Predicate =>
       K (N_Timed_Entry_Call_Id) in N_Timed_Entry_Call;
   subtype N_Exit_Statement_Id is
     N_Statement_Other_Than_Procedure_Call_Id with Predicate =>
       K (N_Exit_Statement_Id) in N_Exit_Statement;
   subtype N_If_Statement_Id is
     N_Statement_Other_Than_Procedure_Call_Id with Predicate =>
       K (N_If_Statement_Id) in N_If_Statement;
   subtype N_Accept_Alternative_Id is
     Node_Id with Predicate =>
       K (N_Accept_Alternative_Id) in N_Accept_Alternative;
   subtype N_Delay_Alternative_Id is
     Node_Id with Predicate =>
       K (N_Delay_Alternative_Id) in N_Delay_Alternative;
   subtype N_Elsif_Part_Id is
     Node_Id with Predicate =>
       K (N_Elsif_Part_Id) in N_Elsif_Part;
   subtype N_Entry_Body_Formal_Part_Id is
     Node_Id with Predicate =>
       K (N_Entry_Body_Formal_Part_Id) in N_Entry_Body_Formal_Part;
   subtype N_Iteration_Scheme_Id is
     Node_Id with Predicate =>
       K (N_Iteration_Scheme_Id) in N_Iteration_Scheme;
   subtype N_Terminate_Alternative_Id is
     Node_Id with Predicate =>
       K (N_Terminate_Alternative_Id) in N_Terminate_Alternative;
   subtype N_Formal_Subprogram_Declaration_Id is
     Node_Id with Predicate =>
       K (N_Formal_Subprogram_Declaration_Id) in N_Formal_Subprogram_Declaration;
   subtype N_Formal_Abstract_Subprogram_Declaration_Id is
     N_Formal_Subprogram_Declaration_Id with Predicate =>
       K (N_Formal_Abstract_Subprogram_Declaration_Id) in N_Formal_Abstract_Subprogram_Declaration;
   subtype N_Formal_Concrete_Subprogram_Declaration_Id is
     N_Formal_Subprogram_Declaration_Id with Predicate =>
       K (N_Formal_Concrete_Subprogram_Declaration_Id) in N_Formal_Concrete_Subprogram_Declaration;
   subtype N_Push_Pop_xxx_Label_Id is
     Node_Id with Predicate =>
       K (N_Push_Pop_xxx_Label_Id) in N_Push_Pop_xxx_Label;
   subtype N_Push_xxx_Label_Id is
     N_Push_Pop_xxx_Label_Id with Predicate =>
       K (N_Push_xxx_Label_Id) in N_Push_xxx_Label;
   subtype N_Push_Constraint_Error_Label_Id is
     N_Push_xxx_Label_Id with Predicate =>
       K (N_Push_Constraint_Error_Label_Id) in N_Push_Constraint_Error_Label;
   subtype N_Push_Program_Error_Label_Id is
     N_Push_xxx_Label_Id with Predicate =>
       K (N_Push_Program_Error_Label_Id) in N_Push_Program_Error_Label;
   subtype N_Push_Storage_Error_Label_Id is
     N_Push_xxx_Label_Id with Predicate =>
       K (N_Push_Storage_Error_Label_Id) in N_Push_Storage_Error_Label;
   subtype N_Pop_xxx_Label_Id is
     N_Push_Pop_xxx_Label_Id with Predicate =>
       K (N_Pop_xxx_Label_Id) in N_Pop_xxx_Label;
   subtype N_Pop_Constraint_Error_Label_Id is
     N_Pop_xxx_Label_Id with Predicate =>
       K (N_Pop_Constraint_Error_Label_Id) in N_Pop_Constraint_Error_Label;
   subtype N_Pop_Program_Error_Label_Id is
     N_Pop_xxx_Label_Id with Predicate =>
       K (N_Pop_Program_Error_Label_Id) in N_Pop_Program_Error_Label;
   subtype N_Pop_Storage_Error_Label_Id is
     N_Pop_xxx_Label_Id with Predicate =>
       K (N_Pop_Storage_Error_Label_Id) in N_Pop_Storage_Error_Label;
   subtype N_SCIL_Node_Id is
     Node_Id with Predicate =>
       K (N_SCIL_Node_Id) in N_SCIL_Node;
   subtype N_SCIL_Dispatch_Table_Tag_Init_Id is
     N_SCIL_Node_Id with Predicate =>
       K (N_SCIL_Dispatch_Table_Tag_Init_Id) in N_SCIL_Dispatch_Table_Tag_Init;
   subtype N_SCIL_Dispatching_Call_Id is
     N_SCIL_Node_Id with Predicate =>
       K (N_SCIL_Dispatching_Call_Id) in N_SCIL_Dispatching_Call;
   subtype N_SCIL_Membership_Test_Id is
     N_SCIL_Node_Id with Predicate =>
       K (N_SCIL_Membership_Test_Id) in N_SCIL_Membership_Test;
   subtype N_Abortable_Part_Id is
     Node_Id with Predicate =>
       K (N_Abortable_Part_Id) in N_Abortable_Part;
   subtype N_Abstract_Subprogram_Declaration_Id is
     Node_Id with Predicate =>
       K (N_Abstract_Subprogram_Declaration_Id) in N_Abstract_Subprogram_Declaration;
   subtype N_Access_Definition_Id is
     Node_Id with Predicate =>
       K (N_Access_Definition_Id) in N_Access_Definition;
   subtype N_Access_To_Object_Definition_Id is
     Node_Id with Predicate =>
       K (N_Access_To_Object_Definition_Id) in N_Access_To_Object_Definition;
   subtype N_Aspect_Specification_Id is
     Node_Id with Predicate =>
       K (N_Aspect_Specification_Id) in N_Aspect_Specification;
   subtype N_Call_Marker_Id is
     Node_Id with Predicate =>
       K (N_Call_Marker_Id) in N_Call_Marker;
   subtype N_Case_Expression_Alternative_Id is
     Node_Id with Predicate =>
       K (N_Case_Expression_Alternative_Id) in N_Case_Expression_Alternative;
   subtype N_Case_Statement_Alternative_Id is
     Node_Id with Predicate =>
       K (N_Case_Statement_Alternative_Id) in N_Case_Statement_Alternative;
   subtype N_Compilation_Unit_Id is
     Node_Id with Predicate =>
       K (N_Compilation_Unit_Id) in N_Compilation_Unit;
   subtype N_Compilation_Unit_Aux_Id is
     Node_Id with Predicate =>
       K (N_Compilation_Unit_Aux_Id) in N_Compilation_Unit_Aux;
   subtype N_Component_Association_Id is
     Node_Id with Predicate =>
       K (N_Component_Association_Id) in N_Component_Association;
   subtype N_Component_Definition_Id is
     Node_Id with Predicate =>
       K (N_Component_Definition_Id) in N_Component_Definition;
   subtype N_Component_List_Id is
     Node_Id with Predicate =>
       K (N_Component_List_Id) in N_Component_List;
   subtype N_Contract_Id is
     Node_Id with Predicate =>
       K (N_Contract_Id) in N_Contract;
   subtype N_Derived_Type_Definition_Id is
     Node_Id with Predicate =>
       K (N_Derived_Type_Definition_Id) in N_Derived_Type_Definition;
   subtype N_Decimal_Fixed_Point_Definition_Id is
     Node_Id with Predicate =>
       K (N_Decimal_Fixed_Point_Definition_Id) in N_Decimal_Fixed_Point_Definition;
   subtype N_Defining_Program_Unit_Name_Id is
     Node_Id with Predicate =>
       K (N_Defining_Program_Unit_Name_Id) in N_Defining_Program_Unit_Name;
   subtype N_Delta_Constraint_Id is
     Node_Id with Predicate =>
       K (N_Delta_Constraint_Id) in N_Delta_Constraint;
   subtype N_Designator_Id is
     Node_Id with Predicate =>
       K (N_Designator_Id) in N_Designator;
   subtype N_Digits_Constraint_Id is
     Node_Id with Predicate =>
       K (N_Digits_Constraint_Id) in N_Digits_Constraint;
   subtype N_Discriminant_Association_Id is
     Node_Id with Predicate =>
       K (N_Discriminant_Association_Id) in N_Discriminant_Association;
   subtype N_Discriminant_Specification_Id is
     Node_Id with Predicate =>
       K (N_Discriminant_Specification_Id) in N_Discriminant_Specification;
   subtype N_Enumeration_Type_Definition_Id is
     Node_Id with Predicate =>
       K (N_Enumeration_Type_Definition_Id) in N_Enumeration_Type_Definition;
   subtype N_Entry_Body_Id is
     Node_Id with Predicate =>
       K (N_Entry_Body_Id) in N_Entry_Body;
   subtype N_Entry_Call_Alternative_Id is
     Node_Id with Predicate =>
       K (N_Entry_Call_Alternative_Id) in N_Entry_Call_Alternative;
   subtype N_Entry_Index_Specification_Id is
     Node_Id with Predicate =>
       K (N_Entry_Index_Specification_Id) in N_Entry_Index_Specification;
   subtype N_Exception_Handler_Id is
     Node_Id with Predicate =>
       K (N_Exception_Handler_Id) in N_Exception_Handler;
   subtype N_Floating_Point_Definition_Id is
     Node_Id with Predicate =>
       K (N_Floating_Point_Definition_Id) in N_Floating_Point_Definition;
   subtype N_Formal_Decimal_Fixed_Point_Definition_Id is
     Node_Id with Predicate =>
       K (N_Formal_Decimal_Fixed_Point_Definition_Id) in N_Formal_Decimal_Fixed_Point_Definition;
   subtype N_Formal_Derived_Type_Definition_Id is
     Node_Id with Predicate =>
       K (N_Formal_Derived_Type_Definition_Id) in N_Formal_Derived_Type_Definition;
   subtype N_Formal_Discrete_Type_Definition_Id is
     Node_Id with Predicate =>
       K (N_Formal_Discrete_Type_Definition_Id) in N_Formal_Discrete_Type_Definition;
   subtype N_Formal_Floating_Point_Definition_Id is
     Node_Id with Predicate =>
       K (N_Formal_Floating_Point_Definition_Id) in N_Formal_Floating_Point_Definition;
   subtype N_Formal_Modular_Type_Definition_Id is
     Node_Id with Predicate =>
       K (N_Formal_Modular_Type_Definition_Id) in N_Formal_Modular_Type_Definition;
   subtype N_Formal_Ordinary_Fixed_Point_Definition_Id is
     Node_Id with Predicate =>
       K (N_Formal_Ordinary_Fixed_Point_Definition_Id) in N_Formal_Ordinary_Fixed_Point_Definition;
   subtype N_Formal_Private_Type_Definition_Id is
     Node_Id with Predicate =>
       K (N_Formal_Private_Type_Definition_Id) in N_Formal_Private_Type_Definition;
   subtype N_Formal_Incomplete_Type_Definition_Id is
     Node_Id with Predicate =>
       K (N_Formal_Incomplete_Type_Definition_Id) in N_Formal_Incomplete_Type_Definition;
   subtype N_Formal_Signed_Integer_Type_Definition_Id is
     Node_Id with Predicate =>
       K (N_Formal_Signed_Integer_Type_Definition_Id) in N_Formal_Signed_Integer_Type_Definition;
   subtype N_Freeze_Entity_Id is
     Node_Id with Predicate =>
       K (N_Freeze_Entity_Id) in N_Freeze_Entity;
   subtype N_Freeze_Generic_Entity_Id is
     Node_Id with Predicate =>
       K (N_Freeze_Generic_Entity_Id) in N_Freeze_Generic_Entity;
   subtype N_Generic_Association_Id is
     Node_Id with Predicate =>
       K (N_Generic_Association_Id) in N_Generic_Association;
   subtype N_Handled_Sequence_Of_Statements_Id is
     Node_Id with Predicate =>
       K (N_Handled_Sequence_Of_Statements_Id) in N_Handled_Sequence_Of_Statements;
   subtype N_Index_Or_Discriminant_Constraint_Id is
     Node_Id with Predicate =>
       K (N_Index_Or_Discriminant_Constraint_Id) in N_Index_Or_Discriminant_Constraint;
   subtype N_Iterated_Component_Association_Id is
     Node_Id with Predicate =>
       K (N_Iterated_Component_Association_Id) in N_Iterated_Component_Association;
   subtype N_Iterated_Element_Association_Id is
     Node_Id with Predicate =>
       K (N_Iterated_Element_Association_Id) in N_Iterated_Element_Association;
   subtype N_Itype_Reference_Id is
     Node_Id with Predicate =>
       K (N_Itype_Reference_Id) in N_Itype_Reference;
   subtype N_Label_Id is
     Node_Id with Predicate =>
       K (N_Label_Id) in N_Label;
   subtype N_Modular_Type_Definition_Id is
     Node_Id with Predicate =>
       K (N_Modular_Type_Definition_Id) in N_Modular_Type_Definition;
   subtype N_Number_Declaration_Id is
     Node_Id with Predicate =>
       K (N_Number_Declaration_Id) in N_Number_Declaration;
   subtype N_Ordinary_Fixed_Point_Definition_Id is
     Node_Id with Predicate =>
       K (N_Ordinary_Fixed_Point_Definition_Id) in N_Ordinary_Fixed_Point_Definition;
   subtype N_Others_Choice_Id is
     Node_Id with Predicate =>
       K (N_Others_Choice_Id) in N_Others_Choice;
   subtype N_Package_Specification_Id is
     Node_Id with Predicate =>
       K (N_Package_Specification_Id) in N_Package_Specification;
   subtype N_Parameter_Association_Id is
     Node_Id with Predicate =>
       K (N_Parameter_Association_Id) in N_Parameter_Association;
   subtype N_Parameter_Specification_Id is
     Node_Id with Predicate =>
       K (N_Parameter_Specification_Id) in N_Parameter_Specification;
   subtype N_Pragma_Id is
     Node_Id with Predicate =>
       K (N_Pragma_Id) in N_Pragma;
   subtype N_Protected_Definition_Id is
     Node_Id with Predicate =>
       K (N_Protected_Definition_Id) in N_Protected_Definition;
   subtype N_Range_Constraint_Id is
     Node_Id with Predicate =>
       K (N_Range_Constraint_Id) in N_Range_Constraint;
   subtype N_Real_Range_Specification_Id is
     Node_Id with Predicate =>
       K (N_Real_Range_Specification_Id) in N_Real_Range_Specification;
   subtype N_Record_Definition_Id is
     Node_Id with Predicate =>
       K (N_Record_Definition_Id) in N_Record_Definition;
   subtype N_Signed_Integer_Type_Definition_Id is
     Node_Id with Predicate =>
       K (N_Signed_Integer_Type_Definition_Id) in N_Signed_Integer_Type_Definition;
   subtype N_Single_Protected_Declaration_Id is
     Node_Id with Predicate =>
       K (N_Single_Protected_Declaration_Id) in N_Single_Protected_Declaration;
   subtype N_Subunit_Id is
     Node_Id with Predicate =>
       K (N_Subunit_Id) in N_Subunit;
   subtype N_Task_Definition_Id is
     Node_Id with Predicate =>
       K (N_Task_Definition_Id) in N_Task_Definition;
   subtype N_Triggering_Alternative_Id is
     Node_Id with Predicate =>
       K (N_Triggering_Alternative_Id) in N_Triggering_Alternative;
   subtype N_Use_Type_Clause_Id is
     Node_Id with Predicate =>
       K (N_Use_Type_Clause_Id) in N_Use_Type_Clause;
   subtype N_Validate_Unchecked_Conversion_Id is
     Node_Id with Predicate =>
       K (N_Validate_Unchecked_Conversion_Id) in N_Validate_Unchecked_Conversion;
   subtype N_Variable_Reference_Marker_Id is
     Node_Id with Predicate =>
       K (N_Variable_Reference_Marker_Id) in N_Variable_Reference_Marker;
   subtype N_Variant_Id is
     Node_Id with Predicate =>
       K (N_Variant_Id) in N_Variant;
   subtype N_Variant_Part_Id is
     Node_Id with Predicate =>
       K (N_Variant_Part_Id) in N_Variant_Part;
   subtype N_With_Clause_Id is
     Node_Id with Predicate =>
       K (N_With_Clause_Id) in N_With_Clause;
   subtype N_Unused_At_End_Id is
     Node_Id with Predicate =>
       K (N_Unused_At_End_Id) in N_Unused_At_End;

   --  Union types (nonhierarchical subtypes of Node_Id)

   subtype N_Alternative is
     Node_Kind with Predicate =>
       N_Alternative in
          N_Case_Statement_Alternative
          | N_Variant;
   subtype N_Alternative_Id is
     Node_Id with Predicate =>
       K (N_Alternative_Id) in N_Alternative;
   subtype N_Entity_Name is
     Node_Kind with Predicate =>
       N_Entity_Name in
          N_Expanded_Name
          | N_Identifier
          | N_Operator_Symbol;
   subtype N_Entity_Name_Id is
     Node_Id with Predicate =>
       K (N_Entity_Name_Id) in N_Entity_Name;
   subtype N_Has_Bounds is
     Node_Kind with Predicate =>
       N_Has_Bounds in
          N_Range
          | N_Real_Range_Specification
          | N_Signed_Integer_Type_Definition;
   subtype N_Has_Bounds_Id is
     Node_Id with Predicate =>
       K (N_Has_Bounds_Id) in N_Has_Bounds;
   subtype N_Has_Chars is
     Node_Kind with Predicate =>
       N_Has_Chars in
          N_Attribute_Definition_Clause
          | N_Empty
          | N_Pragma_Argument_Association
          | N_Error
          | N_Entity
          | N_Expanded_Name
          | N_Identifier
          | N_Operator_Symbol
          | N_Character_Literal
          | N_Op;
   subtype N_Has_Chars_Id is
     Node_Id with Predicate =>
       K (N_Has_Chars_Id) in N_Has_Chars;
   subtype N_Has_Condition is
     Node_Kind with Predicate =>
       N_Has_Condition in
          N_Exit_Statement
          | N_If_Statement
          | N_Accept_Alternative
          | N_Delay_Alternative
          | N_Elsif_Part
          | N_Entry_Body_Formal_Part
          | N_Iteration_Scheme
          | N_Terminate_Alternative;
   subtype N_Has_Condition_Id is
     Node_Id with Predicate =>
       K (N_Has_Condition_Id) in N_Has_Condition;
   subtype N_Is_Case_Choice is
     Node_Kind with Predicate =>
       N_Is_Case_Choice in
          N_Is_Range
          | N_Others_Choice;
   subtype N_Is_Case_Choice_Id is
     Node_Id with Predicate =>
       K (N_Is_Case_Choice_Id) in N_Is_Case_Choice;
   subtype N_Is_Decl is
     Node_Kind with Predicate =>
       N_Is_Decl in
          N_Aggregate
          | N_Block_Statement
          | N_Declaration
          | N_Discriminant_Specification
          | N_Entry_Index_Specification
          | N_Enumeration_Type_Definition
          | N_Exception_Handler
          | N_Explicit_Dereference
          | N_Expression_With_Actions
          | N_Extension_Aggregate
          | N_Identifier
          | N_Iterated_Component_Association
          | N_Later_Decl_Item
          | N_Loop_Statement
          | N_Null_Statement
          | N_Number_Declaration
          | N_Package_Specification
          | N_Parameter_Specification
          | N_Renaming_Declaration
          | N_Quantified_Expression;
   subtype N_Is_Decl_Id is
     Node_Id with Predicate =>
       K (N_Is_Decl_Id) in N_Is_Decl;
   subtype N_Is_Exception_Choice is
     Node_Kind with Predicate =>
       N_Is_Exception_Choice in
          N_Entity_Name
          | N_Others_Choice;
   subtype N_Is_Exception_Choice_Id is
     Node_Id with Predicate =>
       K (N_Is_Exception_Choice_Id) in N_Is_Exception_Choice;
   subtype N_Is_Index is
     Node_Kind with Predicate =>
       N_Is_Index in
          N_Has_Bounds
          | N_Has_Entity
          | N_Subtype_Indication;
   subtype N_Is_Index_Id is
     Node_Id with Predicate =>
       K (N_Is_Index_Id) in N_Is_Index;
   subtype N_Is_Range is
     Node_Kind with Predicate =>
       N_Is_Range in
          N_Character_Literal
          | N_Entity_Name
          | N_Has_Bounds
          | N_Integer_Literal
          | N_Subtype_Indication;
   subtype N_Is_Range_Id is
     Node_Id with Predicate =>
       K (N_Is_Range_Id) in N_Is_Range;

   --  Optional subtypes of Node_Id. These allow Empty.

   subtype Opt_N_Unused_At_Start_Id is
     Node_Id with Predicate =>
       Opt_N_Unused_At_Start_Id = Empty or else
       Opt_N_Unused_At_Start_Id in N_Unused_At_Start_Id;
   subtype Opt_N_Representation_Clause_Id is
     Node_Id with Predicate =>
       Opt_N_Representation_Clause_Id = Empty or else
       Opt_N_Representation_Clause_Id in N_Representation_Clause_Id;
   subtype Opt_N_At_Clause_Id is
     Node_Id with Predicate =>
       Opt_N_At_Clause_Id = Empty or else
       Opt_N_At_Clause_Id in N_At_Clause_Id;
   subtype Opt_N_Component_Clause_Id is
     Node_Id with Predicate =>
       Opt_N_Component_Clause_Id = Empty or else
       Opt_N_Component_Clause_Id in N_Component_Clause_Id;
   subtype Opt_N_Enumeration_Representation_Clause_Id is
     Node_Id with Predicate =>
       Opt_N_Enumeration_Representation_Clause_Id = Empty or else
       Opt_N_Enumeration_Representation_Clause_Id in N_Enumeration_Representation_Clause_Id;
   subtype Opt_N_Mod_Clause_Id is
     Node_Id with Predicate =>
       Opt_N_Mod_Clause_Id = Empty or else
       Opt_N_Mod_Clause_Id in N_Mod_Clause_Id;
   subtype Opt_N_Record_Representation_Clause_Id is
     Node_Id with Predicate =>
       Opt_N_Record_Representation_Clause_Id = Empty or else
       Opt_N_Record_Representation_Clause_Id in N_Record_Representation_Clause_Id;
   subtype Opt_N_Attribute_Definition_Clause_Id is
     Node_Id with Predicate =>
       Opt_N_Attribute_Definition_Clause_Id = Empty or else
       Opt_N_Attribute_Definition_Clause_Id in N_Attribute_Definition_Clause_Id;
   subtype Opt_N_Empty_Id is
     Node_Id with Predicate =>
       Opt_N_Empty_Id = Empty or else
       Opt_N_Empty_Id in N_Empty_Id;
   subtype Opt_N_Pragma_Argument_Association_Id is
     Node_Id with Predicate =>
       Opt_N_Pragma_Argument_Association_Id = Empty or else
       Opt_N_Pragma_Argument_Association_Id in N_Pragma_Argument_Association_Id;
   subtype Opt_N_Has_Etype_Id is
     Node_Id with Predicate =>
       Opt_N_Has_Etype_Id = Empty or else
       Opt_N_Has_Etype_Id in N_Has_Etype_Id;
   subtype Opt_N_Error_Id is
     Node_Id with Predicate =>
       Opt_N_Error_Id = Empty or else
       Opt_N_Error_Id in N_Error_Id;
   subtype Opt_N_Entity_Id is
     Node_Id with Predicate =>
       Opt_N_Entity_Id = Empty or else
       Opt_N_Entity_Id in N_Entity_Id;
   subtype Opt_N_Defining_Character_Literal_Id is
     Node_Id with Predicate =>
       Opt_N_Defining_Character_Literal_Id = Empty or else
       Opt_N_Defining_Character_Literal_Id in N_Defining_Character_Literal_Id;
   subtype Opt_N_Defining_Identifier_Id is
     Node_Id with Predicate =>
       Opt_N_Defining_Identifier_Id = Empty or else
       Opt_N_Defining_Identifier_Id in N_Defining_Identifier_Id;
   subtype Opt_N_Defining_Operator_Symbol_Id is
     Node_Id with Predicate =>
       Opt_N_Defining_Operator_Symbol_Id = Empty or else
       Opt_N_Defining_Operator_Symbol_Id in N_Defining_Operator_Symbol_Id;
   subtype Opt_N_Subexpr_Id is
     Node_Id with Predicate =>
       Opt_N_Subexpr_Id = Empty or else
       Opt_N_Subexpr_Id in N_Subexpr_Id;
   subtype Opt_N_Has_Entity_Id is
     Node_Id with Predicate =>
       Opt_N_Has_Entity_Id = Empty or else
       Opt_N_Has_Entity_Id in N_Has_Entity_Id;
   subtype Opt_N_Expanded_Name_Id is
     Node_Id with Predicate =>
       Opt_N_Expanded_Name_Id = Empty or else
       Opt_N_Expanded_Name_Id in N_Expanded_Name_Id;
   subtype Opt_N_Direct_Name_Id is
     Node_Id with Predicate =>
       Opt_N_Direct_Name_Id = Empty or else
       Opt_N_Direct_Name_Id in N_Direct_Name_Id;
   subtype Opt_N_Identifier_Id is
     Node_Id with Predicate =>
       Opt_N_Identifier_Id = Empty or else
       Opt_N_Identifier_Id in N_Identifier_Id;
   subtype Opt_N_Operator_Symbol_Id is
     Node_Id with Predicate =>
       Opt_N_Operator_Symbol_Id = Empty or else
       Opt_N_Operator_Symbol_Id in N_Operator_Symbol_Id;
   subtype Opt_N_Character_Literal_Id is
     Node_Id with Predicate =>
       Opt_N_Character_Literal_Id = Empty or else
       Opt_N_Character_Literal_Id in N_Character_Literal_Id;
   subtype Opt_N_Op_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Id = Empty or else
       Opt_N_Op_Id in N_Op_Id;
   subtype Opt_N_Binary_Op_Id is
     Node_Id with Predicate =>
       Opt_N_Binary_Op_Id = Empty or else
       Opt_N_Binary_Op_Id in N_Binary_Op_Id;
   subtype Opt_N_Op_Add_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Add_Id = Empty or else
       Opt_N_Op_Add_Id in N_Op_Add_Id;
   subtype Opt_N_Op_Concat_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Concat_Id = Empty or else
       Opt_N_Op_Concat_Id in N_Op_Concat_Id;
   subtype Opt_N_Op_Expon_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Expon_Id = Empty or else
       Opt_N_Op_Expon_Id in N_Op_Expon_Id;
   subtype Opt_N_Op_Subtract_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Subtract_Id = Empty or else
       Opt_N_Op_Subtract_Id in N_Op_Subtract_Id;
   subtype Opt_N_Multiplying_Operator_Id is
     Node_Id with Predicate =>
       Opt_N_Multiplying_Operator_Id = Empty or else
       Opt_N_Multiplying_Operator_Id in N_Multiplying_Operator_Id;
   subtype Opt_N_Op_Divide_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Divide_Id = Empty or else
       Opt_N_Op_Divide_Id in N_Op_Divide_Id;
   subtype Opt_N_Op_Mod_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Mod_Id = Empty or else
       Opt_N_Op_Mod_Id in N_Op_Mod_Id;
   subtype Opt_N_Op_Multiply_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Multiply_Id = Empty or else
       Opt_N_Op_Multiply_Id in N_Op_Multiply_Id;
   subtype Opt_N_Op_Rem_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Rem_Id = Empty or else
       Opt_N_Op_Rem_Id in N_Op_Rem_Id;
   subtype Opt_N_Op_Boolean_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Boolean_Id = Empty or else
       Opt_N_Op_Boolean_Id in N_Op_Boolean_Id;
   subtype Opt_N_Op_And_Id is
     Node_Id with Predicate =>
       Opt_N_Op_And_Id = Empty or else
       Opt_N_Op_And_Id in N_Op_And_Id;
   subtype Opt_N_Op_Compare_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Compare_Id = Empty or else
       Opt_N_Op_Compare_Id in N_Op_Compare_Id;
   subtype Opt_N_Op_Eq_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Eq_Id = Empty or else
       Opt_N_Op_Eq_Id in N_Op_Eq_Id;
   subtype Opt_N_Op_Ge_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Ge_Id = Empty or else
       Opt_N_Op_Ge_Id in N_Op_Ge_Id;
   subtype Opt_N_Op_Gt_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Gt_Id = Empty or else
       Opt_N_Op_Gt_Id in N_Op_Gt_Id;
   subtype Opt_N_Op_Le_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Le_Id = Empty or else
       Opt_N_Op_Le_Id in N_Op_Le_Id;
   subtype Opt_N_Op_Lt_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Lt_Id = Empty or else
       Opt_N_Op_Lt_Id in N_Op_Lt_Id;
   subtype Opt_N_Op_Ne_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Ne_Id = Empty or else
       Opt_N_Op_Ne_Id in N_Op_Ne_Id;
   subtype Opt_N_Op_Or_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Or_Id = Empty or else
       Opt_N_Op_Or_Id in N_Op_Or_Id;
   subtype Opt_N_Op_Xor_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Xor_Id = Empty or else
       Opt_N_Op_Xor_Id in N_Op_Xor_Id;
   subtype Opt_N_Op_Shift_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Shift_Id = Empty or else
       Opt_N_Op_Shift_Id in N_Op_Shift_Id;
   subtype Opt_N_Op_Rotate_Left_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Rotate_Left_Id = Empty or else
       Opt_N_Op_Rotate_Left_Id in N_Op_Rotate_Left_Id;
   subtype Opt_N_Op_Rotate_Right_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Rotate_Right_Id = Empty or else
       Opt_N_Op_Rotate_Right_Id in N_Op_Rotate_Right_Id;
   subtype Opt_N_Op_Shift_Left_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Shift_Left_Id = Empty or else
       Opt_N_Op_Shift_Left_Id in N_Op_Shift_Left_Id;
   subtype Opt_N_Op_Shift_Right_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Shift_Right_Id = Empty or else
       Opt_N_Op_Shift_Right_Id in N_Op_Shift_Right_Id;
   subtype Opt_N_Op_Shift_Right_Arithmetic_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Shift_Right_Arithmetic_Id = Empty or else
       Opt_N_Op_Shift_Right_Arithmetic_Id in N_Op_Shift_Right_Arithmetic_Id;
   subtype Opt_N_Unary_Op_Id is
     Node_Id with Predicate =>
       Opt_N_Unary_Op_Id = Empty or else
       Opt_N_Unary_Op_Id in N_Unary_Op_Id;
   subtype Opt_N_Op_Abs_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Abs_Id = Empty or else
       Opt_N_Op_Abs_Id in N_Op_Abs_Id;
   subtype Opt_N_Op_Minus_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Minus_Id = Empty or else
       Opt_N_Op_Minus_Id in N_Op_Minus_Id;
   subtype Opt_N_Op_Not_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Not_Id = Empty or else
       Opt_N_Op_Not_Id in N_Op_Not_Id;
   subtype Opt_N_Op_Plus_Id is
     Node_Id with Predicate =>
       Opt_N_Op_Plus_Id = Empty or else
       Opt_N_Op_Plus_Id in N_Op_Plus_Id;
   subtype Opt_N_Attribute_Reference_Id is
     Node_Id with Predicate =>
       Opt_N_Attribute_Reference_Id = Empty or else
       Opt_N_Attribute_Reference_Id in N_Attribute_Reference_Id;
   subtype Opt_N_Membership_Test_Id is
     Node_Id with Predicate =>
       Opt_N_Membership_Test_Id = Empty or else
       Opt_N_Membership_Test_Id in N_Membership_Test_Id;
   subtype Opt_N_In_Id is
     Node_Id with Predicate =>
       Opt_N_In_Id = Empty or else
       Opt_N_In_Id in N_In_Id;
   subtype Opt_N_Not_In_Id is
     Node_Id with Predicate =>
       Opt_N_Not_In_Id = Empty or else
       Opt_N_Not_In_Id in N_Not_In_Id;
   subtype Opt_N_Short_Circuit_Id is
     Node_Id with Predicate =>
       Opt_N_Short_Circuit_Id = Empty or else
       Opt_N_Short_Circuit_Id in N_Short_Circuit_Id;
   subtype Opt_N_And_Then_Id is
     Node_Id with Predicate =>
       Opt_N_And_Then_Id = Empty or else
       Opt_N_And_Then_Id in N_And_Then_Id;
   subtype Opt_N_Or_Else_Id is
     Node_Id with Predicate =>
       Opt_N_Or_Else_Id = Empty or else
       Opt_N_Or_Else_Id in N_Or_Else_Id;
   subtype Opt_N_Subprogram_Call_Id is
     Node_Id with Predicate =>
       Opt_N_Subprogram_Call_Id = Empty or else
       Opt_N_Subprogram_Call_Id in N_Subprogram_Call_Id;
   subtype Opt_N_Function_Call_Id is
     Node_Id with Predicate =>
       Opt_N_Function_Call_Id = Empty or else
       Opt_N_Function_Call_Id in N_Function_Call_Id;
   subtype Opt_N_Procedure_Call_Statement_Id is
     Node_Id with Predicate =>
       Opt_N_Procedure_Call_Statement_Id = Empty or else
       Opt_N_Procedure_Call_Statement_Id in N_Procedure_Call_Statement_Id;
   subtype Opt_N_Raise_xxx_Error_Id is
     Node_Id with Predicate =>
       Opt_N_Raise_xxx_Error_Id = Empty or else
       Opt_N_Raise_xxx_Error_Id in N_Raise_xxx_Error_Id;
   subtype Opt_N_Raise_Constraint_Error_Id is
     Node_Id with Predicate =>
       Opt_N_Raise_Constraint_Error_Id = Empty or else
       Opt_N_Raise_Constraint_Error_Id in N_Raise_Constraint_Error_Id;
   subtype Opt_N_Raise_Program_Error_Id is
     Node_Id with Predicate =>
       Opt_N_Raise_Program_Error_Id = Empty or else
       Opt_N_Raise_Program_Error_Id in N_Raise_Program_Error_Id;
   subtype Opt_N_Raise_Storage_Error_Id is
     Node_Id with Predicate =>
       Opt_N_Raise_Storage_Error_Id = Empty or else
       Opt_N_Raise_Storage_Error_Id in N_Raise_Storage_Error_Id;
   subtype Opt_N_Numeric_Or_String_Literal_Id is
     Node_Id with Predicate =>
       Opt_N_Numeric_Or_String_Literal_Id = Empty or else
       Opt_N_Numeric_Or_String_Literal_Id in N_Numeric_Or_String_Literal_Id;
   subtype Opt_N_Integer_Literal_Id is
     Node_Id with Predicate =>
       Opt_N_Integer_Literal_Id = Empty or else
       Opt_N_Integer_Literal_Id in N_Integer_Literal_Id;
   subtype Opt_N_Real_Literal_Id is
     Node_Id with Predicate =>
       Opt_N_Real_Literal_Id = Empty or else
       Opt_N_Real_Literal_Id in N_Real_Literal_Id;
   subtype Opt_N_String_Literal_Id is
     Node_Id with Predicate =>
       Opt_N_String_Literal_Id = Empty or else
       Opt_N_String_Literal_Id in N_String_Literal_Id;
   subtype Opt_N_Interpolated_String_Literal_Id is
     Node_Id with Predicate =>
       Opt_N_Interpolated_String_Literal_Id = Empty or else
       Opt_N_Interpolated_String_Literal_Id in N_Interpolated_String_Literal_Id;
   subtype Opt_N_Explicit_Dereference_Id is
     Node_Id with Predicate =>
       Opt_N_Explicit_Dereference_Id = Empty or else
       Opt_N_Explicit_Dereference_Id in N_Explicit_Dereference_Id;
   subtype Opt_N_Expression_With_Actions_Id is
     Node_Id with Predicate =>
       Opt_N_Expression_With_Actions_Id = Empty or else
       Opt_N_Expression_With_Actions_Id in N_Expression_With_Actions_Id;
   subtype Opt_N_If_Expression_Id is
     Node_Id with Predicate =>
       Opt_N_If_Expression_Id = Empty or else
       Opt_N_If_Expression_Id in N_If_Expression_Id;
   subtype Opt_N_Indexed_Component_Id is
     Node_Id with Predicate =>
       Opt_N_Indexed_Component_Id = Empty or else
       Opt_N_Indexed_Component_Id in N_Indexed_Component_Id;
   subtype Opt_N_Null_Id is
     Node_Id with Predicate =>
       Opt_N_Null_Id = Empty or else
       Opt_N_Null_Id in N_Null_Id;
   subtype Opt_N_Qualified_Expression_Id is
     Node_Id with Predicate =>
       Opt_N_Qualified_Expression_Id = Empty or else
       Opt_N_Qualified_Expression_Id in N_Qualified_Expression_Id;
   subtype Opt_N_Quantified_Expression_Id is
     Node_Id with Predicate =>
       Opt_N_Quantified_Expression_Id = Empty or else
       Opt_N_Quantified_Expression_Id in N_Quantified_Expression_Id;
   subtype Opt_N_Aggregate_Id is
     Node_Id with Predicate =>
       Opt_N_Aggregate_Id = Empty or else
       Opt_N_Aggregate_Id in N_Aggregate_Id;
   subtype Opt_N_Allocator_Id is
     Node_Id with Predicate =>
       Opt_N_Allocator_Id = Empty or else
       Opt_N_Allocator_Id in N_Allocator_Id;
   subtype Opt_N_Case_Expression_Id is
     Node_Id with Predicate =>
       Opt_N_Case_Expression_Id = Empty or else
       Opt_N_Case_Expression_Id in N_Case_Expression_Id;
   subtype Opt_N_Delta_Aggregate_Id is
     Node_Id with Predicate =>
       Opt_N_Delta_Aggregate_Id = Empty or else
       Opt_N_Delta_Aggregate_Id in N_Delta_Aggregate_Id;
   subtype Opt_N_Extension_Aggregate_Id is
     Node_Id with Predicate =>
       Opt_N_Extension_Aggregate_Id = Empty or else
       Opt_N_Extension_Aggregate_Id in N_Extension_Aggregate_Id;
   subtype Opt_N_Raise_Expression_Id is
     Node_Id with Predicate =>
       Opt_N_Raise_Expression_Id = Empty or else
       Opt_N_Raise_Expression_Id in N_Raise_Expression_Id;
   subtype Opt_N_Range_Id is
     Node_Id with Predicate =>
       Opt_N_Range_Id = Empty or else
       Opt_N_Range_Id in N_Range_Id;
   subtype Opt_N_Reference_Id is
     Node_Id with Predicate =>
       Opt_N_Reference_Id = Empty or else
       Opt_N_Reference_Id in N_Reference_Id;
   subtype Opt_N_Selected_Component_Id is
     Node_Id with Predicate =>
       Opt_N_Selected_Component_Id = Empty or else
       Opt_N_Selected_Component_Id in N_Selected_Component_Id;
   subtype Opt_N_Slice_Id is
     Node_Id with Predicate =>
       Opt_N_Slice_Id = Empty or else
       Opt_N_Slice_Id in N_Slice_Id;
   subtype Opt_N_Target_Name_Id is
     Node_Id with Predicate =>
       Opt_N_Target_Name_Id = Empty or else
       Opt_N_Target_Name_Id in N_Target_Name_Id;
   subtype Opt_N_Type_Conversion_Id is
     Node_Id with Predicate =>
       Opt_N_Type_Conversion_Id = Empty or else
       Opt_N_Type_Conversion_Id in N_Type_Conversion_Id;
   subtype Opt_N_Unchecked_Expression_Id is
     Node_Id with Predicate =>
       Opt_N_Unchecked_Expression_Id = Empty or else
       Opt_N_Unchecked_Expression_Id in N_Unchecked_Expression_Id;
   subtype Opt_N_Unchecked_Type_Conversion_Id is
     Node_Id with Predicate =>
       Opt_N_Unchecked_Type_Conversion_Id = Empty or else
       Opt_N_Unchecked_Type_Conversion_Id in N_Unchecked_Type_Conversion_Id;
   subtype Opt_N_Subtype_Indication_Id is
     Node_Id with Predicate =>
       Opt_N_Subtype_Indication_Id = Empty or else
       Opt_N_Subtype_Indication_Id in N_Subtype_Indication_Id;
   subtype Opt_N_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Declaration_Id = Empty or else
       Opt_N_Declaration_Id in N_Declaration_Id;
   subtype Opt_N_Component_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Component_Declaration_Id = Empty or else
       Opt_N_Component_Declaration_Id in N_Component_Declaration_Id;
   subtype Opt_N_Entry_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Entry_Declaration_Id = Empty or else
       Opt_N_Entry_Declaration_Id in N_Entry_Declaration_Id;
   subtype Opt_N_Expression_Function_Id is
     Node_Id with Predicate =>
       Opt_N_Expression_Function_Id = Empty or else
       Opt_N_Expression_Function_Id in N_Expression_Function_Id;
   subtype Opt_N_Formal_Object_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Formal_Object_Declaration_Id = Empty or else
       Opt_N_Formal_Object_Declaration_Id in N_Formal_Object_Declaration_Id;
   subtype Opt_N_Formal_Type_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Formal_Type_Declaration_Id = Empty or else
       Opt_N_Formal_Type_Declaration_Id in N_Formal_Type_Declaration_Id;
   subtype Opt_N_Full_Type_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Full_Type_Declaration_Id = Empty or else
       Opt_N_Full_Type_Declaration_Id in N_Full_Type_Declaration_Id;
   subtype Opt_N_Incomplete_Type_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Incomplete_Type_Declaration_Id = Empty or else
       Opt_N_Incomplete_Type_Declaration_Id in N_Incomplete_Type_Declaration_Id;
   subtype Opt_N_Iterator_Specification_Id is
     Node_Id with Predicate =>
       Opt_N_Iterator_Specification_Id = Empty or else
       Opt_N_Iterator_Specification_Id in N_Iterator_Specification_Id;
   subtype Opt_N_Loop_Parameter_Specification_Id is
     Node_Id with Predicate =>
       Opt_N_Loop_Parameter_Specification_Id = Empty or else
       Opt_N_Loop_Parameter_Specification_Id in N_Loop_Parameter_Specification_Id;
   subtype Opt_N_Object_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Object_Declaration_Id = Empty or else
       Opt_N_Object_Declaration_Id in N_Object_Declaration_Id;
   subtype Opt_N_Protected_Type_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Protected_Type_Declaration_Id = Empty or else
       Opt_N_Protected_Type_Declaration_Id in N_Protected_Type_Declaration_Id;
   subtype Opt_N_Private_Extension_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Private_Extension_Declaration_Id = Empty or else
       Opt_N_Private_Extension_Declaration_Id in N_Private_Extension_Declaration_Id;
   subtype Opt_N_Private_Type_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Private_Type_Declaration_Id = Empty or else
       Opt_N_Private_Type_Declaration_Id in N_Private_Type_Declaration_Id;
   subtype Opt_N_Subtype_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Subtype_Declaration_Id = Empty or else
       Opt_N_Subtype_Declaration_Id in N_Subtype_Declaration_Id;
   subtype Opt_N_Subprogram_Specification_Id is
     Node_Id with Predicate =>
       Opt_N_Subprogram_Specification_Id = Empty or else
       Opt_N_Subprogram_Specification_Id in N_Subprogram_Specification_Id;
   subtype Opt_N_Function_Specification_Id is
     Node_Id with Predicate =>
       Opt_N_Function_Specification_Id = Empty or else
       Opt_N_Function_Specification_Id in N_Function_Specification_Id;
   subtype Opt_N_Procedure_Specification_Id is
     Node_Id with Predicate =>
       Opt_N_Procedure_Specification_Id = Empty or else
       Opt_N_Procedure_Specification_Id in N_Procedure_Specification_Id;
   subtype Opt_N_Exception_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Exception_Declaration_Id = Empty or else
       Opt_N_Exception_Declaration_Id in N_Exception_Declaration_Id;
   subtype Opt_N_Formal_Package_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Formal_Package_Declaration_Id = Empty or else
       Opt_N_Formal_Package_Declaration_Id in N_Formal_Package_Declaration_Id;
   subtype Opt_N_Access_To_Subprogram_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Access_To_Subprogram_Definition_Id = Empty or else
       Opt_N_Access_To_Subprogram_Definition_Id in N_Access_To_Subprogram_Definition_Id;
   subtype Opt_N_Access_Function_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Access_Function_Definition_Id = Empty or else
       Opt_N_Access_Function_Definition_Id in N_Access_Function_Definition_Id;
   subtype Opt_N_Access_Procedure_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Access_Procedure_Definition_Id = Empty or else
       Opt_N_Access_Procedure_Definition_Id in N_Access_Procedure_Definition_Id;
   subtype Opt_N_Later_Decl_Item_Id is
     Node_Id with Predicate =>
       Opt_N_Later_Decl_Item_Id = Empty or else
       Opt_N_Later_Decl_Item_Id in N_Later_Decl_Item_Id;
   subtype Opt_N_Task_Type_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Task_Type_Declaration_Id = Empty or else
       Opt_N_Task_Type_Declaration_Id in N_Task_Type_Declaration_Id;
   subtype Opt_N_Body_Stub_Id is
     Node_Id with Predicate =>
       Opt_N_Body_Stub_Id = Empty or else
       Opt_N_Body_Stub_Id in N_Body_Stub_Id;
   subtype Opt_N_Package_Body_Stub_Id is
     Node_Id with Predicate =>
       Opt_N_Package_Body_Stub_Id = Empty or else
       Opt_N_Package_Body_Stub_Id in N_Package_Body_Stub_Id;
   subtype Opt_N_Protected_Body_Stub_Id is
     Node_Id with Predicate =>
       Opt_N_Protected_Body_Stub_Id = Empty or else
       Opt_N_Protected_Body_Stub_Id in N_Protected_Body_Stub_Id;
   subtype Opt_N_Subprogram_Body_Stub_Id is
     Node_Id with Predicate =>
       Opt_N_Subprogram_Body_Stub_Id = Empty or else
       Opt_N_Subprogram_Body_Stub_Id in N_Subprogram_Body_Stub_Id;
   subtype Opt_N_Task_Body_Stub_Id is
     Node_Id with Predicate =>
       Opt_N_Task_Body_Stub_Id = Empty or else
       Opt_N_Task_Body_Stub_Id in N_Task_Body_Stub_Id;
   subtype Opt_N_Generic_Instantiation_Id is
     Node_Id with Predicate =>
       Opt_N_Generic_Instantiation_Id = Empty or else
       Opt_N_Generic_Instantiation_Id in N_Generic_Instantiation_Id;
   subtype Opt_N_Subprogram_Instantiation_Id is
     Node_Id with Predicate =>
       Opt_N_Subprogram_Instantiation_Id = Empty or else
       Opt_N_Subprogram_Instantiation_Id in N_Subprogram_Instantiation_Id;
   subtype Opt_N_Function_Instantiation_Id is
     Node_Id with Predicate =>
       Opt_N_Function_Instantiation_Id = Empty or else
       Opt_N_Function_Instantiation_Id in N_Function_Instantiation_Id;
   subtype Opt_N_Procedure_Instantiation_Id is
     Node_Id with Predicate =>
       Opt_N_Procedure_Instantiation_Id = Empty or else
       Opt_N_Procedure_Instantiation_Id in N_Procedure_Instantiation_Id;
   subtype Opt_N_Package_Instantiation_Id is
     Node_Id with Predicate =>
       Opt_N_Package_Instantiation_Id = Empty or else
       Opt_N_Package_Instantiation_Id in N_Package_Instantiation_Id;
   subtype Opt_N_Proper_Body_Id is
     Node_Id with Predicate =>
       Opt_N_Proper_Body_Id = Empty or else
       Opt_N_Proper_Body_Id in N_Proper_Body_Id;
   subtype Opt_N_Unit_Body_Id is
     Node_Id with Predicate =>
       Opt_N_Unit_Body_Id = Empty or else
       Opt_N_Unit_Body_Id in N_Unit_Body_Id;
   subtype Opt_N_Package_Body_Id is
     Node_Id with Predicate =>
       Opt_N_Package_Body_Id = Empty or else
       Opt_N_Package_Body_Id in N_Package_Body_Id;
   subtype Opt_N_Subprogram_Body_Id is
     Node_Id with Predicate =>
       Opt_N_Subprogram_Body_Id = Empty or else
       Opt_N_Subprogram_Body_Id in N_Subprogram_Body_Id;
   subtype Opt_N_Protected_Body_Id is
     Node_Id with Predicate =>
       Opt_N_Protected_Body_Id = Empty or else
       Opt_N_Protected_Body_Id in N_Protected_Body_Id;
   subtype Opt_N_Task_Body_Id is
     Node_Id with Predicate =>
       Opt_N_Task_Body_Id = Empty or else
       Opt_N_Task_Body_Id in N_Task_Body_Id;
   subtype Opt_N_Implicit_Label_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Implicit_Label_Declaration_Id = Empty or else
       Opt_N_Implicit_Label_Declaration_Id in N_Implicit_Label_Declaration_Id;
   subtype Opt_N_Package_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Package_Declaration_Id = Empty or else
       Opt_N_Package_Declaration_Id in N_Package_Declaration_Id;
   subtype Opt_N_Single_Task_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Single_Task_Declaration_Id = Empty or else
       Opt_N_Single_Task_Declaration_Id in N_Single_Task_Declaration_Id;
   subtype Opt_N_Subprogram_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Subprogram_Declaration_Id = Empty or else
       Opt_N_Subprogram_Declaration_Id in N_Subprogram_Declaration_Id;
   subtype Opt_N_Use_Package_Clause_Id is
     Node_Id with Predicate =>
       Opt_N_Use_Package_Clause_Id = Empty or else
       Opt_N_Use_Package_Clause_Id in N_Use_Package_Clause_Id;
   subtype Opt_N_Generic_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Generic_Declaration_Id = Empty or else
       Opt_N_Generic_Declaration_Id in N_Generic_Declaration_Id;
   subtype Opt_N_Generic_Package_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Generic_Package_Declaration_Id = Empty or else
       Opt_N_Generic_Package_Declaration_Id in N_Generic_Package_Declaration_Id;
   subtype Opt_N_Generic_Subprogram_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Generic_Subprogram_Declaration_Id = Empty or else
       Opt_N_Generic_Subprogram_Declaration_Id in N_Generic_Subprogram_Declaration_Id;
   subtype Opt_N_Array_Type_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Array_Type_Definition_Id = Empty or else
       Opt_N_Array_Type_Definition_Id in N_Array_Type_Definition_Id;
   subtype Opt_N_Constrained_Array_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Constrained_Array_Definition_Id = Empty or else
       Opt_N_Constrained_Array_Definition_Id in N_Constrained_Array_Definition_Id;
   subtype Opt_N_Unconstrained_Array_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Unconstrained_Array_Definition_Id = Empty or else
       Opt_N_Unconstrained_Array_Definition_Id in N_Unconstrained_Array_Definition_Id;
   subtype Opt_N_Renaming_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Renaming_Declaration_Id = Empty or else
       Opt_N_Renaming_Declaration_Id in N_Renaming_Declaration_Id;
   subtype Opt_N_Exception_Renaming_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Exception_Renaming_Declaration_Id = Empty or else
       Opt_N_Exception_Renaming_Declaration_Id in N_Exception_Renaming_Declaration_Id;
   subtype Opt_N_Object_Renaming_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Object_Renaming_Declaration_Id = Empty or else
       Opt_N_Object_Renaming_Declaration_Id in N_Object_Renaming_Declaration_Id;
   subtype Opt_N_Package_Renaming_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Package_Renaming_Declaration_Id = Empty or else
       Opt_N_Package_Renaming_Declaration_Id in N_Package_Renaming_Declaration_Id;
   subtype Opt_N_Subprogram_Renaming_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Subprogram_Renaming_Declaration_Id = Empty or else
       Opt_N_Subprogram_Renaming_Declaration_Id in N_Subprogram_Renaming_Declaration_Id;
   subtype Opt_N_Generic_Renaming_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Generic_Renaming_Declaration_Id = Empty or else
       Opt_N_Generic_Renaming_Declaration_Id in N_Generic_Renaming_Declaration_Id;
   subtype Opt_N_Generic_Function_Renaming_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Generic_Function_Renaming_Declaration_Id = Empty or else
       Opt_N_Generic_Function_Renaming_Declaration_Id in N_Generic_Function_Renaming_Declaration_Id;
   subtype Opt_N_Generic_Package_Renaming_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Generic_Package_Renaming_Declaration_Id = Empty or else
       Opt_N_Generic_Package_Renaming_Declaration_Id in N_Generic_Package_Renaming_Declaration_Id;
   subtype Opt_N_Generic_Procedure_Renaming_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Generic_Procedure_Renaming_Declaration_Id = Empty or else
       Opt_N_Generic_Procedure_Renaming_Declaration_Id in N_Generic_Procedure_Renaming_Declaration_Id;
   subtype Opt_N_Statement_Other_Than_Procedure_Call_Id is
     Node_Id with Predicate =>
       Opt_N_Statement_Other_Than_Procedure_Call_Id = Empty or else
       Opt_N_Statement_Other_Than_Procedure_Call_Id in N_Statement_Other_Than_Procedure_Call_Id;
   subtype Opt_N_Abort_Statement_Id is
     Node_Id with Predicate =>
       Opt_N_Abort_Statement_Id = Empty or else
       Opt_N_Abort_Statement_Id in N_Abort_Statement_Id;
   subtype Opt_N_Accept_Statement_Id is
     Node_Id with Predicate =>
       Opt_N_Accept_Statement_Id = Empty or else
       Opt_N_Accept_Statement_Id in N_Accept_Statement_Id;
   subtype Opt_N_Assignment_Statement_Id is
     Node_Id with Predicate =>
       Opt_N_Assignment_Statement_Id = Empty or else
       Opt_N_Assignment_Statement_Id in N_Assignment_Statement_Id;
   subtype Opt_N_Asynchronous_Select_Id is
     Node_Id with Predicate =>
       Opt_N_Asynchronous_Select_Id = Empty or else
       Opt_N_Asynchronous_Select_Id in N_Asynchronous_Select_Id;
   subtype Opt_N_Block_Statement_Id is
     Node_Id with Predicate =>
       Opt_N_Block_Statement_Id = Empty or else
       Opt_N_Block_Statement_Id in N_Block_Statement_Id;
   subtype Opt_N_Case_Statement_Id is
     Node_Id with Predicate =>
       Opt_N_Case_Statement_Id = Empty or else
       Opt_N_Case_Statement_Id in N_Case_Statement_Id;
   subtype Opt_N_Code_Statement_Id is
     Node_Id with Predicate =>
       Opt_N_Code_Statement_Id = Empty or else
       Opt_N_Code_Statement_Id in N_Code_Statement_Id;
   subtype Opt_N_Compound_Statement_Id is
     Node_Id with Predicate =>
       Opt_N_Compound_Statement_Id = Empty or else
       Opt_N_Compound_Statement_Id in N_Compound_Statement_Id;
   subtype Opt_N_Conditional_Entry_Call_Id is
     Node_Id with Predicate =>
       Opt_N_Conditional_Entry_Call_Id = Empty or else
       Opt_N_Conditional_Entry_Call_Id in N_Conditional_Entry_Call_Id;
   subtype Opt_N_Delay_Statement_Id is
     Node_Id with Predicate =>
       Opt_N_Delay_Statement_Id = Empty or else
       Opt_N_Delay_Statement_Id in N_Delay_Statement_Id;
   subtype Opt_N_Delay_Relative_Statement_Id is
     Node_Id with Predicate =>
       Opt_N_Delay_Relative_Statement_Id = Empty or else
       Opt_N_Delay_Relative_Statement_Id in N_Delay_Relative_Statement_Id;
   subtype Opt_N_Delay_Until_Statement_Id is
     Node_Id with Predicate =>
       Opt_N_Delay_Until_Statement_Id = Empty or else
       Opt_N_Delay_Until_Statement_Id in N_Delay_Until_Statement_Id;
   subtype Opt_N_Entry_Call_Statement_Id is
     Node_Id with Predicate =>
       Opt_N_Entry_Call_Statement_Id = Empty or else
       Opt_N_Entry_Call_Statement_Id in N_Entry_Call_Statement_Id;
   subtype Opt_N_Free_Statement_Id is
     Node_Id with Predicate =>
       Opt_N_Free_Statement_Id = Empty or else
       Opt_N_Free_Statement_Id in N_Free_Statement_Id;
   subtype Opt_N_Goto_Statement_Id is
     Node_Id with Predicate =>
       Opt_N_Goto_Statement_Id = Empty or else
       Opt_N_Goto_Statement_Id in N_Goto_Statement_Id;
   subtype Opt_N_Goto_When_Statement_Id is
     Node_Id with Predicate =>
       Opt_N_Goto_When_Statement_Id = Empty or else
       Opt_N_Goto_When_Statement_Id in N_Goto_When_Statement_Id;
   subtype Opt_N_Loop_Statement_Id is
     Node_Id with Predicate =>
       Opt_N_Loop_Statement_Id = Empty or else
       Opt_N_Loop_Statement_Id in N_Loop_Statement_Id;
   subtype Opt_N_Null_Statement_Id is
     Node_Id with Predicate =>
       Opt_N_Null_Statement_Id = Empty or else
       Opt_N_Null_Statement_Id in N_Null_Statement_Id;
   subtype Opt_N_Raise_Statement_Id is
     Node_Id with Predicate =>
       Opt_N_Raise_Statement_Id = Empty or else
       Opt_N_Raise_Statement_Id in N_Raise_Statement_Id;
   subtype Opt_N_Raise_When_Statement_Id is
     Node_Id with Predicate =>
       Opt_N_Raise_When_Statement_Id = Empty or else
       Opt_N_Raise_When_Statement_Id in N_Raise_When_Statement_Id;
   subtype Opt_N_Requeue_Statement_Id is
     Node_Id with Predicate =>
       Opt_N_Requeue_Statement_Id = Empty or else
       Opt_N_Requeue_Statement_Id in N_Requeue_Statement_Id;
   subtype Opt_N_Simple_Return_Statement_Id is
     Node_Id with Predicate =>
       Opt_N_Simple_Return_Statement_Id = Empty or else
       Opt_N_Simple_Return_Statement_Id in N_Simple_Return_Statement_Id;
   subtype Opt_N_Extended_Return_Statement_Id is
     Node_Id with Predicate =>
       Opt_N_Extended_Return_Statement_Id = Empty or else
       Opt_N_Extended_Return_Statement_Id in N_Extended_Return_Statement_Id;
   subtype Opt_N_Return_When_Statement_Id is
     Node_Id with Predicate =>
       Opt_N_Return_When_Statement_Id = Empty or else
       Opt_N_Return_When_Statement_Id in N_Return_When_Statement_Id;
   subtype Opt_N_Selective_Accept_Id is
     Node_Id with Predicate =>
       Opt_N_Selective_Accept_Id = Empty or else
       Opt_N_Selective_Accept_Id in N_Selective_Accept_Id;
   subtype Opt_N_Timed_Entry_Call_Id is
     Node_Id with Predicate =>
       Opt_N_Timed_Entry_Call_Id = Empty or else
       Opt_N_Timed_Entry_Call_Id in N_Timed_Entry_Call_Id;
   subtype Opt_N_Exit_Statement_Id is
     Node_Id with Predicate =>
       Opt_N_Exit_Statement_Id = Empty or else
       Opt_N_Exit_Statement_Id in N_Exit_Statement_Id;
   subtype Opt_N_If_Statement_Id is
     Node_Id with Predicate =>
       Opt_N_If_Statement_Id = Empty or else
       Opt_N_If_Statement_Id in N_If_Statement_Id;
   subtype Opt_N_Accept_Alternative_Id is
     Node_Id with Predicate =>
       Opt_N_Accept_Alternative_Id = Empty or else
       Opt_N_Accept_Alternative_Id in N_Accept_Alternative_Id;
   subtype Opt_N_Delay_Alternative_Id is
     Node_Id with Predicate =>
       Opt_N_Delay_Alternative_Id = Empty or else
       Opt_N_Delay_Alternative_Id in N_Delay_Alternative_Id;
   subtype Opt_N_Elsif_Part_Id is
     Node_Id with Predicate =>
       Opt_N_Elsif_Part_Id = Empty or else
       Opt_N_Elsif_Part_Id in N_Elsif_Part_Id;
   subtype Opt_N_Entry_Body_Formal_Part_Id is
     Node_Id with Predicate =>
       Opt_N_Entry_Body_Formal_Part_Id = Empty or else
       Opt_N_Entry_Body_Formal_Part_Id in N_Entry_Body_Formal_Part_Id;
   subtype Opt_N_Iteration_Scheme_Id is
     Node_Id with Predicate =>
       Opt_N_Iteration_Scheme_Id = Empty or else
       Opt_N_Iteration_Scheme_Id in N_Iteration_Scheme_Id;
   subtype Opt_N_Terminate_Alternative_Id is
     Node_Id with Predicate =>
       Opt_N_Terminate_Alternative_Id = Empty or else
       Opt_N_Terminate_Alternative_Id in N_Terminate_Alternative_Id;
   subtype Opt_N_Formal_Subprogram_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Formal_Subprogram_Declaration_Id = Empty or else
       Opt_N_Formal_Subprogram_Declaration_Id in N_Formal_Subprogram_Declaration_Id;
   subtype Opt_N_Formal_Abstract_Subprogram_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Formal_Abstract_Subprogram_Declaration_Id = Empty or else
       Opt_N_Formal_Abstract_Subprogram_Declaration_Id in N_Formal_Abstract_Subprogram_Declaration_Id;
   subtype Opt_N_Formal_Concrete_Subprogram_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Formal_Concrete_Subprogram_Declaration_Id = Empty or else
       Opt_N_Formal_Concrete_Subprogram_Declaration_Id in N_Formal_Concrete_Subprogram_Declaration_Id;
   subtype Opt_N_Push_Pop_xxx_Label_Id is
     Node_Id with Predicate =>
       Opt_N_Push_Pop_xxx_Label_Id = Empty or else
       Opt_N_Push_Pop_xxx_Label_Id in N_Push_Pop_xxx_Label_Id;
   subtype Opt_N_Push_xxx_Label_Id is
     Node_Id with Predicate =>
       Opt_N_Push_xxx_Label_Id = Empty or else
       Opt_N_Push_xxx_Label_Id in N_Push_xxx_Label_Id;
   subtype Opt_N_Push_Constraint_Error_Label_Id is
     Node_Id with Predicate =>
       Opt_N_Push_Constraint_Error_Label_Id = Empty or else
       Opt_N_Push_Constraint_Error_Label_Id in N_Push_Constraint_Error_Label_Id;
   subtype Opt_N_Push_Program_Error_Label_Id is
     Node_Id with Predicate =>
       Opt_N_Push_Program_Error_Label_Id = Empty or else
       Opt_N_Push_Program_Error_Label_Id in N_Push_Program_Error_Label_Id;
   subtype Opt_N_Push_Storage_Error_Label_Id is
     Node_Id with Predicate =>
       Opt_N_Push_Storage_Error_Label_Id = Empty or else
       Opt_N_Push_Storage_Error_Label_Id in N_Push_Storage_Error_Label_Id;
   subtype Opt_N_Pop_xxx_Label_Id is
     Node_Id with Predicate =>
       Opt_N_Pop_xxx_Label_Id = Empty or else
       Opt_N_Pop_xxx_Label_Id in N_Pop_xxx_Label_Id;
   subtype Opt_N_Pop_Constraint_Error_Label_Id is
     Node_Id with Predicate =>
       Opt_N_Pop_Constraint_Error_Label_Id = Empty or else
       Opt_N_Pop_Constraint_Error_Label_Id in N_Pop_Constraint_Error_Label_Id;
   subtype Opt_N_Pop_Program_Error_Label_Id is
     Node_Id with Predicate =>
       Opt_N_Pop_Program_Error_Label_Id = Empty or else
       Opt_N_Pop_Program_Error_Label_Id in N_Pop_Program_Error_Label_Id;
   subtype Opt_N_Pop_Storage_Error_Label_Id is
     Node_Id with Predicate =>
       Opt_N_Pop_Storage_Error_Label_Id = Empty or else
       Opt_N_Pop_Storage_Error_Label_Id in N_Pop_Storage_Error_Label_Id;
   subtype Opt_N_SCIL_Node_Id is
     Node_Id with Predicate =>
       Opt_N_SCIL_Node_Id = Empty or else
       Opt_N_SCIL_Node_Id in N_SCIL_Node_Id;
   subtype Opt_N_SCIL_Dispatch_Table_Tag_Init_Id is
     Node_Id with Predicate =>
       Opt_N_SCIL_Dispatch_Table_Tag_Init_Id = Empty or else
       Opt_N_SCIL_Dispatch_Table_Tag_Init_Id in N_SCIL_Dispatch_Table_Tag_Init_Id;
   subtype Opt_N_SCIL_Dispatching_Call_Id is
     Node_Id with Predicate =>
       Opt_N_SCIL_Dispatching_Call_Id = Empty or else
       Opt_N_SCIL_Dispatching_Call_Id in N_SCIL_Dispatching_Call_Id;
   subtype Opt_N_SCIL_Membership_Test_Id is
     Node_Id with Predicate =>
       Opt_N_SCIL_Membership_Test_Id = Empty or else
       Opt_N_SCIL_Membership_Test_Id in N_SCIL_Membership_Test_Id;
   subtype Opt_N_Abortable_Part_Id is
     Node_Id with Predicate =>
       Opt_N_Abortable_Part_Id = Empty or else
       Opt_N_Abortable_Part_Id in N_Abortable_Part_Id;
   subtype Opt_N_Abstract_Subprogram_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Abstract_Subprogram_Declaration_Id = Empty or else
       Opt_N_Abstract_Subprogram_Declaration_Id in N_Abstract_Subprogram_Declaration_Id;
   subtype Opt_N_Access_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Access_Definition_Id = Empty or else
       Opt_N_Access_Definition_Id in N_Access_Definition_Id;
   subtype Opt_N_Access_To_Object_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Access_To_Object_Definition_Id = Empty or else
       Opt_N_Access_To_Object_Definition_Id in N_Access_To_Object_Definition_Id;
   subtype Opt_N_Aspect_Specification_Id is
     Node_Id with Predicate =>
       Opt_N_Aspect_Specification_Id = Empty or else
       Opt_N_Aspect_Specification_Id in N_Aspect_Specification_Id;
   subtype Opt_N_Call_Marker_Id is
     Node_Id with Predicate =>
       Opt_N_Call_Marker_Id = Empty or else
       Opt_N_Call_Marker_Id in N_Call_Marker_Id;
   subtype Opt_N_Case_Expression_Alternative_Id is
     Node_Id with Predicate =>
       Opt_N_Case_Expression_Alternative_Id = Empty or else
       Opt_N_Case_Expression_Alternative_Id in N_Case_Expression_Alternative_Id;
   subtype Opt_N_Case_Statement_Alternative_Id is
     Node_Id with Predicate =>
       Opt_N_Case_Statement_Alternative_Id = Empty or else
       Opt_N_Case_Statement_Alternative_Id in N_Case_Statement_Alternative_Id;
   subtype Opt_N_Compilation_Unit_Id is
     Node_Id with Predicate =>
       Opt_N_Compilation_Unit_Id = Empty or else
       Opt_N_Compilation_Unit_Id in N_Compilation_Unit_Id;
   subtype Opt_N_Compilation_Unit_Aux_Id is
     Node_Id with Predicate =>
       Opt_N_Compilation_Unit_Aux_Id = Empty or else
       Opt_N_Compilation_Unit_Aux_Id in N_Compilation_Unit_Aux_Id;
   subtype Opt_N_Component_Association_Id is
     Node_Id with Predicate =>
       Opt_N_Component_Association_Id = Empty or else
       Opt_N_Component_Association_Id in N_Component_Association_Id;
   subtype Opt_N_Component_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Component_Definition_Id = Empty or else
       Opt_N_Component_Definition_Id in N_Component_Definition_Id;
   subtype Opt_N_Component_List_Id is
     Node_Id with Predicate =>
       Opt_N_Component_List_Id = Empty or else
       Opt_N_Component_List_Id in N_Component_List_Id;
   subtype Opt_N_Contract_Id is
     Node_Id with Predicate =>
       Opt_N_Contract_Id = Empty or else
       Opt_N_Contract_Id in N_Contract_Id;
   subtype Opt_N_Derived_Type_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Derived_Type_Definition_Id = Empty or else
       Opt_N_Derived_Type_Definition_Id in N_Derived_Type_Definition_Id;
   subtype Opt_N_Decimal_Fixed_Point_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Decimal_Fixed_Point_Definition_Id = Empty or else
       Opt_N_Decimal_Fixed_Point_Definition_Id in N_Decimal_Fixed_Point_Definition_Id;
   subtype Opt_N_Defining_Program_Unit_Name_Id is
     Node_Id with Predicate =>
       Opt_N_Defining_Program_Unit_Name_Id = Empty or else
       Opt_N_Defining_Program_Unit_Name_Id in N_Defining_Program_Unit_Name_Id;
   subtype Opt_N_Delta_Constraint_Id is
     Node_Id with Predicate =>
       Opt_N_Delta_Constraint_Id = Empty or else
       Opt_N_Delta_Constraint_Id in N_Delta_Constraint_Id;
   subtype Opt_N_Designator_Id is
     Node_Id with Predicate =>
       Opt_N_Designator_Id = Empty or else
       Opt_N_Designator_Id in N_Designator_Id;
   subtype Opt_N_Digits_Constraint_Id is
     Node_Id with Predicate =>
       Opt_N_Digits_Constraint_Id = Empty or else
       Opt_N_Digits_Constraint_Id in N_Digits_Constraint_Id;
   subtype Opt_N_Discriminant_Association_Id is
     Node_Id with Predicate =>
       Opt_N_Discriminant_Association_Id = Empty or else
       Opt_N_Discriminant_Association_Id in N_Discriminant_Association_Id;
   subtype Opt_N_Discriminant_Specification_Id is
     Node_Id with Predicate =>
       Opt_N_Discriminant_Specification_Id = Empty or else
       Opt_N_Discriminant_Specification_Id in N_Discriminant_Specification_Id;
   subtype Opt_N_Enumeration_Type_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Enumeration_Type_Definition_Id = Empty or else
       Opt_N_Enumeration_Type_Definition_Id in N_Enumeration_Type_Definition_Id;
   subtype Opt_N_Entry_Body_Id is
     Node_Id with Predicate =>
       Opt_N_Entry_Body_Id = Empty or else
       Opt_N_Entry_Body_Id in N_Entry_Body_Id;
   subtype Opt_N_Entry_Call_Alternative_Id is
     Node_Id with Predicate =>
       Opt_N_Entry_Call_Alternative_Id = Empty or else
       Opt_N_Entry_Call_Alternative_Id in N_Entry_Call_Alternative_Id;
   subtype Opt_N_Entry_Index_Specification_Id is
     Node_Id with Predicate =>
       Opt_N_Entry_Index_Specification_Id = Empty or else
       Opt_N_Entry_Index_Specification_Id in N_Entry_Index_Specification_Id;
   subtype Opt_N_Exception_Handler_Id is
     Node_Id with Predicate =>
       Opt_N_Exception_Handler_Id = Empty or else
       Opt_N_Exception_Handler_Id in N_Exception_Handler_Id;
   subtype Opt_N_Floating_Point_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Floating_Point_Definition_Id = Empty or else
       Opt_N_Floating_Point_Definition_Id in N_Floating_Point_Definition_Id;
   subtype Opt_N_Formal_Decimal_Fixed_Point_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Formal_Decimal_Fixed_Point_Definition_Id = Empty or else
       Opt_N_Formal_Decimal_Fixed_Point_Definition_Id in N_Formal_Decimal_Fixed_Point_Definition_Id;
   subtype Opt_N_Formal_Derived_Type_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Formal_Derived_Type_Definition_Id = Empty or else
       Opt_N_Formal_Derived_Type_Definition_Id in N_Formal_Derived_Type_Definition_Id;
   subtype Opt_N_Formal_Discrete_Type_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Formal_Discrete_Type_Definition_Id = Empty or else
       Opt_N_Formal_Discrete_Type_Definition_Id in N_Formal_Discrete_Type_Definition_Id;
   subtype Opt_N_Formal_Floating_Point_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Formal_Floating_Point_Definition_Id = Empty or else
       Opt_N_Formal_Floating_Point_Definition_Id in N_Formal_Floating_Point_Definition_Id;
   subtype Opt_N_Formal_Modular_Type_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Formal_Modular_Type_Definition_Id = Empty or else
       Opt_N_Formal_Modular_Type_Definition_Id in N_Formal_Modular_Type_Definition_Id;
   subtype Opt_N_Formal_Ordinary_Fixed_Point_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Formal_Ordinary_Fixed_Point_Definition_Id = Empty or else
       Opt_N_Formal_Ordinary_Fixed_Point_Definition_Id in N_Formal_Ordinary_Fixed_Point_Definition_Id;
   subtype Opt_N_Formal_Private_Type_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Formal_Private_Type_Definition_Id = Empty or else
       Opt_N_Formal_Private_Type_Definition_Id in N_Formal_Private_Type_Definition_Id;
   subtype Opt_N_Formal_Incomplete_Type_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Formal_Incomplete_Type_Definition_Id = Empty or else
       Opt_N_Formal_Incomplete_Type_Definition_Id in N_Formal_Incomplete_Type_Definition_Id;
   subtype Opt_N_Formal_Signed_Integer_Type_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Formal_Signed_Integer_Type_Definition_Id = Empty or else
       Opt_N_Formal_Signed_Integer_Type_Definition_Id in N_Formal_Signed_Integer_Type_Definition_Id;
   subtype Opt_N_Freeze_Entity_Id is
     Node_Id with Predicate =>
       Opt_N_Freeze_Entity_Id = Empty or else
       Opt_N_Freeze_Entity_Id in N_Freeze_Entity_Id;
   subtype Opt_N_Freeze_Generic_Entity_Id is
     Node_Id with Predicate =>
       Opt_N_Freeze_Generic_Entity_Id = Empty or else
       Opt_N_Freeze_Generic_Entity_Id in N_Freeze_Generic_Entity_Id;
   subtype Opt_N_Generic_Association_Id is
     Node_Id with Predicate =>
       Opt_N_Generic_Association_Id = Empty or else
       Opt_N_Generic_Association_Id in N_Generic_Association_Id;
   subtype Opt_N_Handled_Sequence_Of_Statements_Id is
     Node_Id with Predicate =>
       Opt_N_Handled_Sequence_Of_Statements_Id = Empty or else
       Opt_N_Handled_Sequence_Of_Statements_Id in N_Handled_Sequence_Of_Statements_Id;
   subtype Opt_N_Index_Or_Discriminant_Constraint_Id is
     Node_Id with Predicate =>
       Opt_N_Index_Or_Discriminant_Constraint_Id = Empty or else
       Opt_N_Index_Or_Discriminant_Constraint_Id in N_Index_Or_Discriminant_Constraint_Id;
   subtype Opt_N_Iterated_Component_Association_Id is
     Node_Id with Predicate =>
       Opt_N_Iterated_Component_Association_Id = Empty or else
       Opt_N_Iterated_Component_Association_Id in N_Iterated_Component_Association_Id;
   subtype Opt_N_Iterated_Element_Association_Id is
     Node_Id with Predicate =>
       Opt_N_Iterated_Element_Association_Id = Empty or else
       Opt_N_Iterated_Element_Association_Id in N_Iterated_Element_Association_Id;
   subtype Opt_N_Itype_Reference_Id is
     Node_Id with Predicate =>
       Opt_N_Itype_Reference_Id = Empty or else
       Opt_N_Itype_Reference_Id in N_Itype_Reference_Id;
   subtype Opt_N_Label_Id is
     Node_Id with Predicate =>
       Opt_N_Label_Id = Empty or else
       Opt_N_Label_Id in N_Label_Id;
   subtype Opt_N_Modular_Type_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Modular_Type_Definition_Id = Empty or else
       Opt_N_Modular_Type_Definition_Id in N_Modular_Type_Definition_Id;
   subtype Opt_N_Number_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Number_Declaration_Id = Empty or else
       Opt_N_Number_Declaration_Id in N_Number_Declaration_Id;
   subtype Opt_N_Ordinary_Fixed_Point_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Ordinary_Fixed_Point_Definition_Id = Empty or else
       Opt_N_Ordinary_Fixed_Point_Definition_Id in N_Ordinary_Fixed_Point_Definition_Id;
   subtype Opt_N_Others_Choice_Id is
     Node_Id with Predicate =>
       Opt_N_Others_Choice_Id = Empty or else
       Opt_N_Others_Choice_Id in N_Others_Choice_Id;
   subtype Opt_N_Package_Specification_Id is
     Node_Id with Predicate =>
       Opt_N_Package_Specification_Id = Empty or else
       Opt_N_Package_Specification_Id in N_Package_Specification_Id;
   subtype Opt_N_Parameter_Association_Id is
     Node_Id with Predicate =>
       Opt_N_Parameter_Association_Id = Empty or else
       Opt_N_Parameter_Association_Id in N_Parameter_Association_Id;
   subtype Opt_N_Parameter_Specification_Id is
     Node_Id with Predicate =>
       Opt_N_Parameter_Specification_Id = Empty or else
       Opt_N_Parameter_Specification_Id in N_Parameter_Specification_Id;
   subtype Opt_N_Pragma_Id is
     Node_Id with Predicate =>
       Opt_N_Pragma_Id = Empty or else
       Opt_N_Pragma_Id in N_Pragma_Id;
   subtype Opt_N_Protected_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Protected_Definition_Id = Empty or else
       Opt_N_Protected_Definition_Id in N_Protected_Definition_Id;
   subtype Opt_N_Range_Constraint_Id is
     Node_Id with Predicate =>
       Opt_N_Range_Constraint_Id = Empty or else
       Opt_N_Range_Constraint_Id in N_Range_Constraint_Id;
   subtype Opt_N_Real_Range_Specification_Id is
     Node_Id with Predicate =>
       Opt_N_Real_Range_Specification_Id = Empty or else
       Opt_N_Real_Range_Specification_Id in N_Real_Range_Specification_Id;
   subtype Opt_N_Record_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Record_Definition_Id = Empty or else
       Opt_N_Record_Definition_Id in N_Record_Definition_Id;
   subtype Opt_N_Signed_Integer_Type_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Signed_Integer_Type_Definition_Id = Empty or else
       Opt_N_Signed_Integer_Type_Definition_Id in N_Signed_Integer_Type_Definition_Id;
   subtype Opt_N_Single_Protected_Declaration_Id is
     Node_Id with Predicate =>
       Opt_N_Single_Protected_Declaration_Id = Empty or else
       Opt_N_Single_Protected_Declaration_Id in N_Single_Protected_Declaration_Id;
   subtype Opt_N_Subunit_Id is
     Node_Id with Predicate =>
       Opt_N_Subunit_Id = Empty or else
       Opt_N_Subunit_Id in N_Subunit_Id;
   subtype Opt_N_Task_Definition_Id is
     Node_Id with Predicate =>
       Opt_N_Task_Definition_Id = Empty or else
       Opt_N_Task_Definition_Id in N_Task_Definition_Id;
   subtype Opt_N_Triggering_Alternative_Id is
     Node_Id with Predicate =>
       Opt_N_Triggering_Alternative_Id = Empty or else
       Opt_N_Triggering_Alternative_Id in N_Triggering_Alternative_Id;
   subtype Opt_N_Use_Type_Clause_Id is
     Node_Id with Predicate =>
       Opt_N_Use_Type_Clause_Id = Empty or else
       Opt_N_Use_Type_Clause_Id in N_Use_Type_Clause_Id;
   subtype Opt_N_Validate_Unchecked_Conversion_Id is
     Node_Id with Predicate =>
       Opt_N_Validate_Unchecked_Conversion_Id = Empty or else
       Opt_N_Validate_Unchecked_Conversion_Id in N_Validate_Unchecked_Conversion_Id;
   subtype Opt_N_Variable_Reference_Marker_Id is
     Node_Id with Predicate =>
       Opt_N_Variable_Reference_Marker_Id = Empty or else
       Opt_N_Variable_Reference_Marker_Id in N_Variable_Reference_Marker_Id;
   subtype Opt_N_Variant_Id is
     Node_Id with Predicate =>
       Opt_N_Variant_Id = Empty or else
       Opt_N_Variant_Id in N_Variant_Id;
   subtype Opt_N_Variant_Part_Id is
     Node_Id with Predicate =>
       Opt_N_Variant_Part_Id = Empty or else
       Opt_N_Variant_Part_Id in N_Variant_Part_Id;
   subtype Opt_N_With_Clause_Id is
     Node_Id with Predicate =>
       Opt_N_With_Clause_Id = Empty or else
       Opt_N_With_Clause_Id in N_With_Clause_Id;
   subtype Opt_N_Unused_At_End_Id is
     Node_Id with Predicate =>
       Opt_N_Unused_At_End_Id = Empty or else
       Opt_N_Unused_At_End_Id in N_Unused_At_End_Id;

   --  Optional union types:

   subtype Opt_N_Alternative_Id is
     Node_Id with Predicate =>
       Opt_N_Alternative_Id = Empty or else
       Opt_N_Alternative_Id in N_Alternative_Id;
   subtype Opt_N_Entity_Name_Id is
     Node_Id with Predicate =>
       Opt_N_Entity_Name_Id = Empty or else
       Opt_N_Entity_Name_Id in N_Entity_Name_Id;
   subtype Opt_N_Has_Bounds_Id is
     Node_Id with Predicate =>
       Opt_N_Has_Bounds_Id = Empty or else
       Opt_N_Has_Bounds_Id in N_Has_Bounds_Id;
   subtype Opt_N_Has_Chars_Id is
     Node_Id with Predicate =>
       Opt_N_Has_Chars_Id = Empty or else
       Opt_N_Has_Chars_Id in N_Has_Chars_Id;
   subtype Opt_N_Has_Condition_Id is
     Node_Id with Predicate =>
       Opt_N_Has_Condition_Id = Empty or else
       Opt_N_Has_Condition_Id in N_Has_Condition_Id;
   subtype Opt_N_Is_Case_Choice_Id is
     Node_Id with Predicate =>
       Opt_N_Is_Case_Choice_Id = Empty or else
       Opt_N_Is_Case_Choice_Id in N_Is_Case_Choice_Id;
   subtype Opt_N_Is_Decl_Id is
     Node_Id with Predicate =>
       Opt_N_Is_Decl_Id = Empty or else
       Opt_N_Is_Decl_Id in N_Is_Decl_Id;
   subtype Opt_N_Is_Exception_Choice_Id is
     Node_Id with Predicate =>
       Opt_N_Is_Exception_Choice_Id = Empty or else
       Opt_N_Is_Exception_Choice_Id in N_Is_Exception_Choice_Id;
   subtype Opt_N_Is_Index_Id is
     Node_Id with Predicate =>
       Opt_N_Is_Index_Id = Empty or else
       Opt_N_Is_Index_Id in N_Is_Index_Id;
   subtype Opt_N_Is_Range_Id is
     Node_Id with Predicate =>
       Opt_N_Is_Range_Id = Empty or else
       Opt_N_Is_Range_Id in N_Is_Range_Id;

   subtype Flag is Boolean;

   pragma Assert (Node_Kind'Pos (N_Unused_At_Start) = 0);

   pragma Assert (Node_Kind'Last = N_Unused_At_End);

   --  Getters and setters for fields

   --  Nkind getter is above

   function Sloc (N : Node_Id) return Source_Ptr with Inline;
   procedure Set_Sloc (N : Node_Id; Val : Source_Ptr) with Inline;

   function In_List (N : Node_Id) return Flag with Inline;
   procedure Set_In_List (N : Node_Id; Val : Flag := True) with Inline;

   function Rewrite_Ins (N : Node_Id) return Flag with Inline;
   procedure Set_Rewrite_Ins (N : Node_Id; Val : Flag := True) with Inline;

   function Comes_From_Source (N : Node_Id) return Flag with Inline;
   procedure Set_Comes_From_Source (N : Node_Id; Val : Flag := True) with Inline;

   function Analyzed (N : Node_Id) return Flag with Inline;
   procedure Set_Analyzed (N : Node_Id; Val : Flag := True) with Inline;

   function Error_Posted (N : Node_Id) return Flag with Inline;
   procedure Set_Error_Posted (N : Node_Id; Val : Flag := True) with Inline;

   function Small_Paren_Count (N : Node_Id) return Small_Paren_Count_Type with Inline;
   procedure Set_Small_Paren_Count (N : Node_Id; Val : Small_Paren_Count_Type) with Inline;

   function Check_Actuals (N : Node_Id) return Flag with Inline;
   procedure Set_Check_Actuals (N : Node_Id; Val : Flag := True) with Inline;

   function Has_Aspects (N : Node_Id) return Flag with Inline;
   procedure Set_Has_Aspects (N : Node_Id; Val : Flag := True) with Inline;

   function Is_Ignored_Ghost_Node (N : Node_Id) return Flag with Inline;
   procedure Set_Is_Ignored_Ghost_Node (N : Node_Id; Val : Flag := True) with Inline;

   function Link (N : Node_Id) return Union_Id with Inline;
   procedure Set_Link (N : Node_Id; Val : Union_Id) with Inline;

   function Abort_Present (N : N_Requeue_Statement_Id) return Flag with Inline;
   procedure Set_Abort_Present (N : N_Requeue_Statement_Id; Val : Flag := True) with Inline;

   function Abortable_Part (N : N_Asynchronous_Select_Id) return Node_Id with Inline;
   procedure Set_Abortable_Part (N : N_Asynchronous_Select_Id; Val : Node_Id) with Inline;

   function Abstract_Present (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Private_Extension_Declaration_Id
         | N_Private_Type_Declaration_Id
         | N_Derived_Type_Definition_Id
         | N_Formal_Derived_Type_Definition_Id
         | N_Formal_Private_Type_Definition_Id
         | N_Record_Definition_Id;
   procedure Set_Abstract_Present (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Private_Extension_Declaration_Id
         | N_Private_Type_Declaration_Id
         | N_Derived_Type_Definition_Id
         | N_Formal_Derived_Type_Definition_Id
         | N_Formal_Private_Type_Definition_Id
         | N_Record_Definition_Id;

   function Accept_Handler_Records (N : N_Accept_Alternative_Id) return List_Id with Inline;
   procedure Set_Accept_Handler_Records (N : N_Accept_Alternative_Id; Val : List_Id) with Inline;

   function Accept_Statement (N : N_Accept_Alternative_Id) return Node_Id with Inline;
   procedure Set_Accept_Statement (N : N_Accept_Alternative_Id; Val : Node_Id) with Inline;

   function Access_Definition (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Formal_Object_Declaration_Id
         | N_Object_Renaming_Declaration_Id
         | N_Component_Definition_Id;
   procedure Set_Access_Definition (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Formal_Object_Declaration_Id
         | N_Object_Renaming_Declaration_Id
         | N_Component_Definition_Id;

   function Access_To_Subprogram_Definition (N : N_Access_Definition_Id) return Node_Id with Inline;
   procedure Set_Access_To_Subprogram_Definition (N : N_Access_Definition_Id; Val : Node_Id) with Inline;

   function Access_Types_To_Process (N : N_Freeze_Entity_Id) return Elist_Id with Inline;
   procedure Set_Access_Types_To_Process (N : N_Freeze_Entity_Id; Val : Elist_Id) with Inline;

   function Actions (N : Node_Id) return List_Id with Inline, Pre =>
      N in N_And_Then_Id
         | N_Or_Else_Id
         | N_Expression_With_Actions_Id
         | N_Compound_Statement_Id
         | N_Case_Expression_Alternative_Id
         | N_Compilation_Unit_Aux_Id
         | N_Freeze_Entity_Id;
   procedure Set_Actions (N : Node_Id; Val : List_Id) with Inline, Pre =>
      N in N_And_Then_Id
         | N_Or_Else_Id
         | N_Expression_With_Actions_Id
         | N_Compound_Statement_Id
         | N_Case_Expression_Alternative_Id
         | N_Compilation_Unit_Aux_Id
         | N_Freeze_Entity_Id;

   function Activation_Chain_Entity (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Subprogram_Body_Id
         | N_Task_Body_Id
         | N_Package_Declaration_Id
         | N_Generic_Package_Declaration_Id
         | N_Block_Statement_Id
         | N_Entry_Body_Id;
   procedure Set_Activation_Chain_Entity (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Subprogram_Body_Id
         | N_Task_Body_Id
         | N_Package_Declaration_Id
         | N_Generic_Package_Declaration_Id
         | N_Block_Statement_Id
         | N_Entry_Body_Id;

   function Acts_As_Spec (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Subprogram_Body_Id
         | N_Compilation_Unit_Id;
   procedure Set_Acts_As_Spec (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Subprogram_Body_Id
         | N_Compilation_Unit_Id;

   function Actual_Designated_Subtype (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Explicit_Dereference_Id
         | N_Free_Statement_Id;
   procedure Set_Actual_Designated_Subtype (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Explicit_Dereference_Id
         | N_Free_Statement_Id;

   function Address_Warning_Posted (N : N_Attribute_Definition_Clause_Id) return Flag with Inline;
   procedure Set_Address_Warning_Posted (N : N_Attribute_Definition_Clause_Id; Val : Flag := True) with Inline;

   function Aggregate_Bounds (N : N_Aggregate_Id) return Node_Id with Inline;
   procedure Set_Aggregate_Bounds (N : N_Aggregate_Id; Val : Node_Id) with Inline;

   function Aliased_Present (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Object_Declaration_Id
         | N_Component_Definition_Id
         | N_Parameter_Specification_Id;
   procedure Set_Aliased_Present (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Object_Declaration_Id
         | N_Component_Definition_Id
         | N_Parameter_Specification_Id;

   function All_Others (N : N_Others_Choice_Id) return Flag with Inline;
   procedure Set_All_Others (N : N_Others_Choice_Id; Val : Flag := True) with Inline;

   function All_Present (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Quantified_Expression_Id
         | N_Access_Definition_Id
         | N_Access_To_Object_Definition_Id
         | N_Use_Type_Clause_Id;
   procedure Set_All_Present (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Quantified_Expression_Id
         | N_Access_Definition_Id
         | N_Access_To_Object_Definition_Id
         | N_Use_Type_Clause_Id;

   function Alternatives (N : Node_Id) return List_Id with Inline, Pre =>
      N in N_In_Id
         | N_Not_In_Id
         | N_Case_Expression_Id
         | N_Case_Statement_Id;
   procedure Set_Alternatives (N : Node_Id; Val : List_Id) with Inline, Pre =>
      N in N_In_Id
         | N_Not_In_Id
         | N_Case_Expression_Id
         | N_Case_Statement_Id;

   function Ancestor_Part (N : N_Extension_Aggregate_Id) return Node_Id with Inline;
   procedure Set_Ancestor_Part (N : N_Extension_Aggregate_Id; Val : Node_Id) with Inline;

   function Atomic_Sync_Required (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Expanded_Name_Id
         | N_Identifier_Id
         | N_Explicit_Dereference_Id
         | N_Indexed_Component_Id
         | N_Selected_Component_Id;
   procedure Set_Atomic_Sync_Required (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Expanded_Name_Id
         | N_Identifier_Id
         | N_Explicit_Dereference_Id
         | N_Indexed_Component_Id
         | N_Selected_Component_Id;

   function Array_Aggregate (N : N_Enumeration_Representation_Clause_Id) return Node_Id with Inline;
   procedure Set_Array_Aggregate (N : N_Enumeration_Representation_Clause_Id; Val : Node_Id) with Inline;

   function Aspect_On_Partial_View (N : N_Aspect_Specification_Id) return Flag with Inline;
   procedure Set_Aspect_On_Partial_View (N : N_Aspect_Specification_Id; Val : Flag := True) with Inline;

   function Aspect_Rep_Item (N : N_Aspect_Specification_Id) return Node_Id with Inline;
   procedure Set_Aspect_Rep_Item (N : N_Aspect_Specification_Id; Val : Node_Id) with Inline;

   function Assignment_OK (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Subexpr_Id
         | N_Object_Declaration_Id;
   procedure Set_Assignment_OK (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Subexpr_Id
         | N_Object_Declaration_Id;

   function Attribute_Name (N : N_Attribute_Reference_Id) return Name_Id with Inline;
   procedure Set_Attribute_Name (N : N_Attribute_Reference_Id; Val : Name_Id) with Inline;

   function At_End_Proc (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Package_Body_Id
         | N_Subprogram_Body_Id
         | N_Task_Body_Id
         | N_Block_Statement_Id
         | N_Entry_Body_Id
         | N_Handled_Sequence_Of_Statements_Id;
   procedure Set_At_End_Proc (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Package_Body_Id
         | N_Subprogram_Body_Id
         | N_Task_Body_Id
         | N_Block_Statement_Id
         | N_Entry_Body_Id
         | N_Handled_Sequence_Of_Statements_Id;

   function Aux_Decls_Node (N : N_Compilation_Unit_Id) return Node_Id with Inline;
   procedure Set_Aux_Decls_Node (N : N_Compilation_Unit_Id; Val : Node_Id) with Inline;

   function Backwards_OK (N : N_Assignment_Statement_Id) return Flag with Inline;
   procedure Set_Backwards_OK (N : N_Assignment_Statement_Id; Val : Flag := True) with Inline;

   function Bad_Is_Detected (N : N_Subprogram_Body_Id) return Flag with Inline;
   procedure Set_Bad_Is_Detected (N : N_Subprogram_Body_Id; Val : Flag := True) with Inline;

   function Binding_Chars (N : N_Component_Association_Id) return Name_Id with Inline;
   procedure Set_Binding_Chars (N : N_Component_Association_Id; Val : Name_Id) with Inline;

   function Body_Required (N : N_Compilation_Unit_Id) return Flag with Inline;
   procedure Set_Body_Required (N : N_Compilation_Unit_Id; Val : Flag := True) with Inline;

   function Body_To_Inline (N : N_Subprogram_Declaration_Id) return Node_Id with Inline;
   procedure Set_Body_To_Inline (N : N_Subprogram_Declaration_Id; Val : Node_Id) with Inline;

   function Box_Present (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Formal_Abstract_Subprogram_Declaration_Id
         | N_Formal_Concrete_Subprogram_Declaration_Id
         | N_Component_Association_Id
         | N_Formal_Package_Declaration_Id
         | N_Generic_Association_Id
         | N_Iterated_Component_Association_Id
         | N_Iterated_Element_Association_Id;
   procedure Set_Box_Present (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Formal_Abstract_Subprogram_Declaration_Id
         | N_Formal_Concrete_Subprogram_Declaration_Id
         | N_Component_Association_Id
         | N_Formal_Package_Declaration_Id
         | N_Generic_Association_Id
         | N_Iterated_Component_Association_Id
         | N_Iterated_Element_Association_Id;

   function Char_Literal_Value (N : N_Character_Literal_Id) return Unat with Inline;
   procedure Set_Char_Literal_Value (N : N_Character_Literal_Id; Val : Unat) with Inline;

   function Chars (N : Node_Id) return Name_Id with Inline, Pre =>
      N in N_Attribute_Definition_Clause_Id
         | N_Empty_Id
         | N_Pragma_Argument_Association_Id
         | N_Error_Id
         | N_Defining_Character_Literal_Id
         | N_Defining_Identifier_Id
         | N_Defining_Operator_Symbol_Id
         | N_Expanded_Name_Id
         | N_Identifier_Id
         | N_Operator_Symbol_Id
         | N_Character_Literal_Id
         | N_Op_Add_Id
         | N_Op_Concat_Id
         | N_Op_Expon_Id
         | N_Op_Subtract_Id
         | N_Op_Divide_Id
         | N_Op_Mod_Id
         | N_Op_Multiply_Id
         | N_Op_Rem_Id
         | N_Op_And_Id
         | N_Op_Eq_Id
         | N_Op_Ge_Id
         | N_Op_Gt_Id
         | N_Op_Le_Id
         | N_Op_Lt_Id
         | N_Op_Ne_Id
         | N_Op_Or_Id
         | N_Op_Xor_Id
         | N_Op_Rotate_Left_Id
         | N_Op_Rotate_Right_Id
         | N_Op_Shift_Left_Id
         | N_Op_Shift_Right_Id
         | N_Op_Shift_Right_Arithmetic_Id
         | N_Op_Abs_Id
         | N_Op_Minus_Id
         | N_Op_Not_Id
         | N_Op_Plus_Id;
   procedure Set_Chars (N : Node_Id; Val : Name_Id) with Inline, Pre =>
      N in N_Attribute_Definition_Clause_Id
         | N_Empty_Id
         | N_Pragma_Argument_Association_Id
         | N_Error_Id
         | N_Defining_Character_Literal_Id
         | N_Defining_Identifier_Id
         | N_Defining_Operator_Symbol_Id
         | N_Expanded_Name_Id
         | N_Identifier_Id
         | N_Operator_Symbol_Id
         | N_Character_Literal_Id
         | N_Op_Add_Id
         | N_Op_Concat_Id
         | N_Op_Expon_Id
         | N_Op_Subtract_Id
         | N_Op_Divide_Id
         | N_Op_Mod_Id
         | N_Op_Multiply_Id
         | N_Op_Rem_Id
         | N_Op_And_Id
         | N_Op_Eq_Id
         | N_Op_Ge_Id
         | N_Op_Gt_Id
         | N_Op_Le_Id
         | N_Op_Lt_Id
         | N_Op_Ne_Id
         | N_Op_Or_Id
         | N_Op_Xor_Id
         | N_Op_Rotate_Left_Id
         | N_Op_Rotate_Right_Id
         | N_Op_Shift_Left_Id
         | N_Op_Shift_Right_Id
         | N_Op_Shift_Right_Arithmetic_Id
         | N_Op_Abs_Id
         | N_Op_Minus_Id
         | N_Op_Not_Id
         | N_Op_Plus_Id;

   function Check_Address_Alignment (N : N_Attribute_Definition_Clause_Id) return Flag with Inline;
   procedure Set_Check_Address_Alignment (N : N_Attribute_Definition_Clause_Id; Val : Flag := True) with Inline;

   function Choice_Parameter (N : N_Exception_Handler_Id) return Node_Id with Inline;
   procedure Set_Choice_Parameter (N : N_Exception_Handler_Id; Val : Node_Id) with Inline;

   function Choices (N : N_Component_Association_Id) return List_Id with Inline;
   procedure Set_Choices (N : N_Component_Association_Id; Val : List_Id) with Inline;

   function Class_Present (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Aspect_Specification_Id
         | N_Pragma_Id;
   procedure Set_Class_Present (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Aspect_Specification_Id
         | N_Pragma_Id;

   function Classifications (N : N_Contract_Id) return Node_Id with Inline;
   procedure Set_Classifications (N : N_Contract_Id; Val : Node_Id) with Inline;

   function Cleanup_Actions (N : N_Block_Statement_Id) return List_Id with Inline;
   procedure Set_Cleanup_Actions (N : N_Block_Statement_Id; Val : List_Id) with Inline;

   function Comes_From_Check_Or_Contract (N : N_If_Statement_Id) return Flag with Inline;
   procedure Set_Comes_From_Check_Or_Contract (N : N_If_Statement_Id; Val : Flag := True) with Inline;

   function Comes_From_Extended_Return_Statement (N : N_Simple_Return_Statement_Id) return Flag with Inline;
   procedure Set_Comes_From_Extended_Return_Statement (N : N_Simple_Return_Statement_Id; Val : Flag := True) with Inline;

   function Comes_From_Iterator (N : N_Object_Renaming_Declaration_Id) return Flag with Inline;
   procedure Set_Comes_From_Iterator (N : N_Object_Renaming_Declaration_Id; Val : Flag := True) with Inline;

   function Compile_Time_Known_Aggregate (N : N_Aggregate_Id) return Flag with Inline;
   procedure Set_Compile_Time_Known_Aggregate (N : N_Aggregate_Id; Val : Flag := True) with Inline;

   function Component_Associations (N : Node_Id) return List_Id with Inline, Pre =>
      N in N_Aggregate_Id
         | N_Delta_Aggregate_Id
         | N_Extension_Aggregate_Id;
   procedure Set_Component_Associations (N : Node_Id; Val : List_Id) with Inline, Pre =>
      N in N_Aggregate_Id
         | N_Delta_Aggregate_Id
         | N_Extension_Aggregate_Id;

   function Component_Clauses (N : N_Record_Representation_Clause_Id) return List_Id with Inline;
   procedure Set_Component_Clauses (N : N_Record_Representation_Clause_Id; Val : List_Id) with Inline;

   function Component_Definition (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Component_Declaration_Id
         | N_Constrained_Array_Definition_Id
         | N_Unconstrained_Array_Definition_Id;
   procedure Set_Component_Definition (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Component_Declaration_Id
         | N_Constrained_Array_Definition_Id
         | N_Unconstrained_Array_Definition_Id;

   function Component_Items (N : N_Component_List_Id) return List_Id with Inline;
   procedure Set_Component_Items (N : N_Component_List_Id; Val : List_Id) with Inline;

   function Component_List (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Record_Definition_Id
         | N_Variant_Id;
   procedure Set_Component_List (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Record_Definition_Id
         | N_Variant_Id;

   function Component_Name (N : N_Component_Clause_Id) return Node_Id with Inline;
   procedure Set_Component_Name (N : N_Component_Clause_Id; Val : Node_Id) with Inline;

   function Componentwise_Assignment (N : N_Assignment_Statement_Id) return Flag with Inline;
   procedure Set_Componentwise_Assignment (N : N_Assignment_Statement_Id; Val : Flag := True) with Inline;

   function Condition (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Raise_Constraint_Error_Id
         | N_Raise_Program_Error_Id
         | N_Raise_Storage_Error_Id
         | N_Quantified_Expression_Id
         | N_Goto_When_Statement_Id
         | N_Raise_When_Statement_Id
         | N_Return_When_Statement_Id
         | N_Exit_Statement_Id
         | N_If_Statement_Id
         | N_Accept_Alternative_Id
         | N_Delay_Alternative_Id
         | N_Elsif_Part_Id
         | N_Entry_Body_Formal_Part_Id
         | N_Iteration_Scheme_Id
         | N_Terminate_Alternative_Id;
   procedure Set_Condition (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Raise_Constraint_Error_Id
         | N_Raise_Program_Error_Id
         | N_Raise_Storage_Error_Id
         | N_Quantified_Expression_Id
         | N_Goto_When_Statement_Id
         | N_Raise_When_Statement_Id
         | N_Return_When_Statement_Id
         | N_Exit_Statement_Id
         | N_If_Statement_Id
         | N_Accept_Alternative_Id
         | N_Delay_Alternative_Id
         | N_Elsif_Part_Id
         | N_Entry_Body_Formal_Part_Id
         | N_Iteration_Scheme_Id
         | N_Terminate_Alternative_Id;

   function Condition_Actions (N : Node_Id) return List_Id with Inline, Pre =>
      N in N_Elsif_Part_Id
         | N_Iteration_Scheme_Id;
   procedure Set_Condition_Actions (N : Node_Id; Val : List_Id) with Inline, Pre =>
      N in N_Elsif_Part_Id
         | N_Iteration_Scheme_Id;

   function Config_Pragmas (N : N_Compilation_Unit_Aux_Id) return List_Id with Inline;
   procedure Set_Config_Pragmas (N : N_Compilation_Unit_Aux_Id; Val : List_Id) with Inline;

   function Constant_Present (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Object_Declaration_Id
         | N_Access_Definition_Id
         | N_Access_To_Object_Definition_Id;
   procedure Set_Constant_Present (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Object_Declaration_Id
         | N_Access_Definition_Id
         | N_Access_To_Object_Definition_Id;

   function Constraint (N : N_Subtype_Indication_Id) return Node_Id with Inline;
   procedure Set_Constraint (N : N_Subtype_Indication_Id; Val : Node_Id) with Inline;

   function Constraints (N : N_Index_Or_Discriminant_Constraint_Id) return List_Id with Inline;
   procedure Set_Constraints (N : N_Index_Or_Discriminant_Constraint_Id; Val : List_Id) with Inline;

   function Context_Installed (N : N_With_Clause_Id) return Flag with Inline;
   procedure Set_Context_Installed (N : N_With_Clause_Id; Val : Flag := True) with Inline;

   function Context_Items (N : N_Compilation_Unit_Id) return List_Id with Inline;
   procedure Set_Context_Items (N : N_Compilation_Unit_Id; Val : List_Id) with Inline;

   function Context_Pending (N : N_Compilation_Unit_Id) return Flag with Inline;
   procedure Set_Context_Pending (N : N_Compilation_Unit_Id; Val : Flag := True) with Inline;

   function Contract_Test_Cases (N : N_Contract_Id) return Node_Id with Inline;
   procedure Set_Contract_Test_Cases (N : N_Contract_Id; Val : Node_Id) with Inline;

   function Controlling_Argument (N : N_Subprogram_Call_Id) return Node_Id with Inline;
   procedure Set_Controlling_Argument (N : N_Subprogram_Call_Id; Val : Node_Id) with Inline;

   function Conversion_OK (N : N_Type_Conversion_Id) return Flag with Inline;
   procedure Set_Conversion_OK (N : N_Type_Conversion_Id; Val : Flag := True) with Inline;

   function Corresponding_Aspect (N : N_Pragma_Id) return Node_Id with Inline;
   procedure Set_Corresponding_Aspect (N : N_Pragma_Id; Val : Node_Id) with Inline;

   function Corresponding_Body (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Entry_Declaration_Id
         | N_Protected_Type_Declaration_Id
         | N_Task_Type_Declaration_Id
         | N_Body_Stub_Id
         | N_Package_Declaration_Id
         | N_Subprogram_Declaration_Id
         | N_Generic_Declaration_Id;
   procedure Set_Corresponding_Body (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Entry_Declaration_Id
         | N_Protected_Type_Declaration_Id
         | N_Task_Type_Declaration_Id
         | N_Body_Stub_Id
         | N_Package_Declaration_Id
         | N_Subprogram_Declaration_Id
         | N_Generic_Declaration_Id;

   function Corresponding_Entry_Body (N : N_Subprogram_Body_Id) return Node_Id with Inline;
   procedure Set_Corresponding_Entry_Body (N : N_Subprogram_Body_Id; Val : Node_Id) with Inline;

   function Corresponding_Formal_Spec (N : N_Subprogram_Renaming_Declaration_Id) return Node_Id with Inline;
   procedure Set_Corresponding_Formal_Spec (N : N_Subprogram_Renaming_Declaration_Id; Val : Node_Id) with Inline;

   function Corresponding_Generic_Association (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Object_Declaration_Id
         | N_Object_Renaming_Declaration_Id;
   procedure Set_Corresponding_Generic_Association (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Object_Declaration_Id
         | N_Object_Renaming_Declaration_Id;

   function Corresponding_Integer_Value (N : N_Real_Literal_Id) return Valid_Uint with Inline;
   procedure Set_Corresponding_Integer_Value (N : N_Real_Literal_Id; Val : Valid_Uint) with Inline;

   function Corresponding_Spec (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Expression_Function_Id
         | N_Proper_Body_Id
         | N_Subprogram_Renaming_Declaration_Id
         | N_With_Clause_Id;
   procedure Set_Corresponding_Spec (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Expression_Function_Id
         | N_Proper_Body_Id
         | N_Subprogram_Renaming_Declaration_Id
         | N_With_Clause_Id;

   function Corresponding_Spec_Of_Stub (N : N_Body_Stub_Id) return Node_Id with Inline;
   procedure Set_Corresponding_Spec_Of_Stub (N : N_Body_Stub_Id; Val : Node_Id) with Inline;

   function Corresponding_Stub (N : N_Subunit_Id) return Node_Id with Inline;
   procedure Set_Corresponding_Stub (N : N_Subunit_Id; Val : Node_Id) with Inline;

   function Dcheck_Function (N : N_Variant_Id) return Node_Id with Inline;
   procedure Set_Dcheck_Function (N : N_Variant_Id; Val : Node_Id) with Inline;

   function Declarations (N : Node_Id) return List_Id with Inline, Pre =>
      N in N_Package_Body_Id
         | N_Subprogram_Body_Id
         | N_Protected_Body_Id
         | N_Task_Body_Id
         | N_Accept_Statement_Id
         | N_Block_Statement_Id
         | N_Compilation_Unit_Aux_Id
         | N_Entry_Body_Id;
   procedure Set_Declarations (N : Node_Id; Val : List_Id) with Inline, Pre =>
      N in N_Package_Body_Id
         | N_Subprogram_Body_Id
         | N_Protected_Body_Id
         | N_Task_Body_Id
         | N_Accept_Statement_Id
         | N_Block_Statement_Id
         | N_Compilation_Unit_Aux_Id
         | N_Entry_Body_Id;

   function Default_Expression (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Formal_Object_Declaration_Id
         | N_Parameter_Specification_Id;
   procedure Set_Default_Expression (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Formal_Object_Declaration_Id
         | N_Parameter_Specification_Id;

   function Default_Storage_Pool (N : N_Compilation_Unit_Aux_Id) return Node_Id with Inline;
   procedure Set_Default_Storage_Pool (N : N_Compilation_Unit_Aux_Id; Val : Node_Id) with Inline;

   function Default_Name (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Formal_Abstract_Subprogram_Declaration_Id
         | N_Formal_Concrete_Subprogram_Declaration_Id;
   procedure Set_Default_Name (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Formal_Abstract_Subprogram_Declaration_Id
         | N_Formal_Concrete_Subprogram_Declaration_Id;

   function Default_Subtype_Mark (N : N_Formal_Type_Declaration_Id) return Node_Id with Inline;
   procedure Set_Default_Subtype_Mark (N : N_Formal_Type_Declaration_Id; Val : Node_Id) with Inline;

   function Defining_Identifier (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Component_Declaration_Id
         | N_Entry_Declaration_Id
         | N_Formal_Object_Declaration_Id
         | N_Formal_Type_Declaration_Id
         | N_Full_Type_Declaration_Id
         | N_Incomplete_Type_Declaration_Id
         | N_Iterator_Specification_Id
         | N_Loop_Parameter_Specification_Id
         | N_Object_Declaration_Id
         | N_Protected_Type_Declaration_Id
         | N_Private_Extension_Declaration_Id
         | N_Private_Type_Declaration_Id
         | N_Subtype_Declaration_Id
         | N_Task_Type_Declaration_Id
         | N_Package_Body_Stub_Id
         | N_Protected_Body_Stub_Id
         | N_Task_Body_Stub_Id
         | N_Protected_Body_Id
         | N_Task_Body_Id
         | N_Implicit_Label_Declaration_Id
         | N_Single_Task_Declaration_Id
         | N_Exception_Renaming_Declaration_Id
         | N_Object_Renaming_Declaration_Id
         | N_Defining_Program_Unit_Name_Id
         | N_Discriminant_Specification_Id
         | N_Entry_Body_Id
         | N_Entry_Index_Specification_Id
         | N_Exception_Declaration_Id
         | N_Formal_Package_Declaration_Id
         | N_Iterated_Component_Association_Id
         | N_Number_Declaration_Id
         | N_Parameter_Specification_Id
         | N_Single_Protected_Declaration_Id;
   procedure Set_Defining_Identifier (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Component_Declaration_Id
         | N_Entry_Declaration_Id
         | N_Formal_Object_Declaration_Id
         | N_Formal_Type_Declaration_Id
         | N_Full_Type_Declaration_Id
         | N_Incomplete_Type_Declaration_Id
         | N_Iterator_Specification_Id
         | N_Loop_Parameter_Specification_Id
         | N_Object_Declaration_Id
         | N_Protected_Type_Declaration_Id
         | N_Private_Extension_Declaration_Id
         | N_Private_Type_Declaration_Id
         | N_Subtype_Declaration_Id
         | N_Task_Type_Declaration_Id
         | N_Package_Body_Stub_Id
         | N_Protected_Body_Stub_Id
         | N_Task_Body_Stub_Id
         | N_Protected_Body_Id
         | N_Task_Body_Id
         | N_Implicit_Label_Declaration_Id
         | N_Single_Task_Declaration_Id
         | N_Exception_Renaming_Declaration_Id
         | N_Object_Renaming_Declaration_Id
         | N_Defining_Program_Unit_Name_Id
         | N_Discriminant_Specification_Id
         | N_Entry_Body_Id
         | N_Entry_Index_Specification_Id
         | N_Exception_Declaration_Id
         | N_Formal_Package_Declaration_Id
         | N_Iterated_Component_Association_Id
         | N_Number_Declaration_Id
         | N_Parameter_Specification_Id
         | N_Single_Protected_Declaration_Id;

   function Defining_Unit_Name (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Function_Specification_Id
         | N_Procedure_Specification_Id
         | N_Function_Instantiation_Id
         | N_Procedure_Instantiation_Id
         | N_Package_Instantiation_Id
         | N_Package_Body_Id
         | N_Package_Renaming_Declaration_Id
         | N_Generic_Function_Renaming_Declaration_Id
         | N_Generic_Package_Renaming_Declaration_Id
         | N_Generic_Procedure_Renaming_Declaration_Id
         | N_Package_Specification_Id;
   procedure Set_Defining_Unit_Name (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Function_Specification_Id
         | N_Procedure_Specification_Id
         | N_Function_Instantiation_Id
         | N_Procedure_Instantiation_Id
         | N_Package_Instantiation_Id
         | N_Package_Body_Id
         | N_Package_Renaming_Declaration_Id
         | N_Generic_Function_Renaming_Declaration_Id
         | N_Generic_Package_Renaming_Declaration_Id
         | N_Generic_Procedure_Renaming_Declaration_Id
         | N_Package_Specification_Id;

   function Delay_Alternative (N : N_Timed_Entry_Call_Id) return Node_Id with Inline;
   procedure Set_Delay_Alternative (N : N_Timed_Entry_Call_Id; Val : Node_Id) with Inline;

   function Delay_Statement (N : N_Delay_Alternative_Id) return Node_Id with Inline;
   procedure Set_Delay_Statement (N : N_Delay_Alternative_Id; Val : Node_Id) with Inline;

   function Delta_Expression (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Decimal_Fixed_Point_Definition_Id
         | N_Delta_Constraint_Id
         | N_Ordinary_Fixed_Point_Definition_Id;
   procedure Set_Delta_Expression (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Decimal_Fixed_Point_Definition_Id
         | N_Delta_Constraint_Id
         | N_Ordinary_Fixed_Point_Definition_Id;

   function Digits_Expression (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Decimal_Fixed_Point_Definition_Id
         | N_Digits_Constraint_Id
         | N_Floating_Point_Definition_Id;
   procedure Set_Digits_Expression (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Decimal_Fixed_Point_Definition_Id
         | N_Digits_Constraint_Id
         | N_Floating_Point_Definition_Id;

   function Discr_Check_Funcs_Built (N : N_Full_Type_Declaration_Id) return Flag with Inline;
   procedure Set_Discr_Check_Funcs_Built (N : N_Full_Type_Declaration_Id; Val : Flag := True) with Inline;

   function Discrete_Choices (N : Node_Id) return List_Id with Inline, Pre =>
      N in N_Case_Expression_Alternative_Id
         | N_Case_Statement_Alternative_Id
         | N_Iterated_Component_Association_Id
         | N_Variant_Id;
   procedure Set_Discrete_Choices (N : Node_Id; Val : List_Id) with Inline, Pre =>
      N in N_Case_Expression_Alternative_Id
         | N_Case_Statement_Alternative_Id
         | N_Iterated_Component_Association_Id
         | N_Variant_Id;

   function Discrete_Range (N : N_Slice_Id) return Node_Id with Inline;
   procedure Set_Discrete_Range (N : N_Slice_Id; Val : Node_Id) with Inline;

   function Discrete_Subtype_Definition (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Entry_Declaration_Id
         | N_Loop_Parameter_Specification_Id
         | N_Entry_Index_Specification_Id;
   procedure Set_Discrete_Subtype_Definition (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Entry_Declaration_Id
         | N_Loop_Parameter_Specification_Id
         | N_Entry_Index_Specification_Id;

   function Discrete_Subtype_Definitions (N : N_Constrained_Array_Definition_Id) return List_Id with Inline;
   procedure Set_Discrete_Subtype_Definitions (N : N_Constrained_Array_Definition_Id; Val : List_Id) with Inline;

   function Discriminant_Specifications (N : Node_Id) return List_Id with Inline, Pre =>
      N in N_Formal_Type_Declaration_Id
         | N_Full_Type_Declaration_Id
         | N_Incomplete_Type_Declaration_Id
         | N_Protected_Type_Declaration_Id
         | N_Private_Extension_Declaration_Id
         | N_Private_Type_Declaration_Id
         | N_Task_Type_Declaration_Id;
   procedure Set_Discriminant_Specifications (N : Node_Id; Val : List_Id) with Inline, Pre =>
      N in N_Formal_Type_Declaration_Id
         | N_Full_Type_Declaration_Id
         | N_Incomplete_Type_Declaration_Id
         | N_Protected_Type_Declaration_Id
         | N_Private_Extension_Declaration_Id
         | N_Private_Type_Declaration_Id
         | N_Task_Type_Declaration_Id;

   function Discriminant_Type (N : N_Discriminant_Specification_Id) return Node_Id with Inline;
   procedure Set_Discriminant_Type (N : N_Discriminant_Specification_Id; Val : Node_Id) with Inline;

   function Do_Discriminant_Check (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Selected_Component_Id
         | N_Type_Conversion_Id
         | N_Assignment_Statement_Id;
   procedure Set_Do_Discriminant_Check (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Selected_Component_Id
         | N_Type_Conversion_Id
         | N_Assignment_Statement_Id;

   function Do_Division_Check (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Op_Divide_Id
         | N_Op_Mod_Id
         | N_Op_Rem_Id;
   procedure Set_Do_Division_Check (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Op_Divide_Id
         | N_Op_Mod_Id
         | N_Op_Rem_Id;

   function Do_Length_Check (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Op_And_Id
         | N_Op_Or_Id
         | N_Op_Xor_Id
         | N_Type_Conversion_Id
         | N_Assignment_Statement_Id;
   procedure Set_Do_Length_Check (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Op_And_Id
         | N_Op_Or_Id
         | N_Op_Xor_Id
         | N_Type_Conversion_Id
         | N_Assignment_Statement_Id;

   function Do_Overflow_Check (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Op_Id
         | N_Attribute_Reference_Id
         | N_If_Expression_Id
         | N_Case_Expression_Id
         | N_Type_Conversion_Id;
   procedure Set_Do_Overflow_Check (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Op_Id
         | N_Attribute_Reference_Id
         | N_If_Expression_Id
         | N_Case_Expression_Id
         | N_Type_Conversion_Id;

   function Do_Range_Check (N : N_Subexpr_Id) return Flag with Inline;
   procedure Set_Do_Range_Check (N : N_Subexpr_Id; Val : Flag := True) with Inline;

   function Do_Storage_Check (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Allocator_Id
         | N_Subprogram_Body_Id;
   procedure Set_Do_Storage_Check (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Allocator_Id
         | N_Subprogram_Body_Id;

   function Elaborate_All_Desirable (N : N_With_Clause_Id) return Flag with Inline;
   procedure Set_Elaborate_All_Desirable (N : N_With_Clause_Id; Val : Flag := True) with Inline;

   function Elaborate_All_Present (N : N_With_Clause_Id) return Flag with Inline;
   procedure Set_Elaborate_All_Present (N : N_With_Clause_Id; Val : Flag := True) with Inline;

   function Elaborate_Desirable (N : N_With_Clause_Id) return Flag with Inline;
   procedure Set_Elaborate_Desirable (N : N_With_Clause_Id; Val : Flag := True) with Inline;

   function Elaborate_Present (N : N_With_Clause_Id) return Flag with Inline;
   procedure Set_Elaborate_Present (N : N_With_Clause_Id; Val : Flag := True) with Inline;

   function Else_Actions (N : N_If_Expression_Id) return List_Id with Inline;
   procedure Set_Else_Actions (N : N_If_Expression_Id; Val : List_Id) with Inline;

   function Else_Statements (N : Node_Id) return List_Id with Inline, Pre =>
      N in N_Conditional_Entry_Call_Id
         | N_Selective_Accept_Id
         | N_If_Statement_Id;
   procedure Set_Else_Statements (N : Node_Id; Val : List_Id) with Inline, Pre =>
      N in N_Conditional_Entry_Call_Id
         | N_Selective_Accept_Id
         | N_If_Statement_Id;

   function Elsif_Parts (N : N_If_Statement_Id) return List_Id with Inline;
   procedure Set_Elsif_Parts (N : N_If_Statement_Id; Val : List_Id) with Inline;

   function Enclosing_Variant (N : N_Variant_Id) return Node_Id with Inline;
   procedure Set_Enclosing_Variant (N : N_Variant_Id; Val : Node_Id) with Inline;

   function End_Label (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Protected_Body_Id
         | N_Loop_Statement_Id
         | N_Enumeration_Type_Definition_Id
         | N_Handled_Sequence_Of_Statements_Id
         | N_Package_Specification_Id
         | N_Protected_Definition_Id
         | N_Record_Definition_Id
         | N_Task_Definition_Id;
   procedure Set_End_Label (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Protected_Body_Id
         | N_Loop_Statement_Id
         | N_Enumeration_Type_Definition_Id
         | N_Handled_Sequence_Of_Statements_Id
         | N_Package_Specification_Id
         | N_Protected_Definition_Id
         | N_Record_Definition_Id
         | N_Task_Definition_Id;

   function End_Span (N : Node_Id) return Unat with Inline, Pre =>
      N in N_Case_Statement_Id
         | N_If_Statement_Id;
   procedure Set_End_Span (N : Node_Id; Val : Unat) with Inline, Pre =>
      N in N_Case_Statement_Id
         | N_If_Statement_Id;

   function Entity_Or_Associated_Node (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Attribute_Definition_Clause_Id
         | N_Has_Entity_Id
         | N_Aggregate_Id
         | N_Extension_Aggregate_Id
         | N_Selected_Component_Id
         | N_Use_Package_Clause_Id
         | N_Aspect_Specification_Id
         | N_Freeze_Entity_Id
         | N_Freeze_Generic_Entity_Id;
   procedure Set_Entity_Or_Associated_Node (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Attribute_Definition_Clause_Id
         | N_Has_Entity_Id
         | N_Aggregate_Id
         | N_Extension_Aggregate_Id
         | N_Selected_Component_Id
         | N_Use_Package_Clause_Id
         | N_Aspect_Specification_Id
         | N_Freeze_Entity_Id
         | N_Freeze_Generic_Entity_Id;

   function Entry_Body_Formal_Part (N : N_Entry_Body_Id) return Node_Id with Inline;
   procedure Set_Entry_Body_Formal_Part (N : N_Entry_Body_Id; Val : Node_Id) with Inline;

   function Entry_Call_Alternative (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Conditional_Entry_Call_Id
         | N_Timed_Entry_Call_Id;
   procedure Set_Entry_Call_Alternative (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Conditional_Entry_Call_Id
         | N_Timed_Entry_Call_Id;

   function Entry_Call_Statement (N : N_Entry_Call_Alternative_Id) return Node_Id with Inline;
   procedure Set_Entry_Call_Statement (N : N_Entry_Call_Alternative_Id; Val : Node_Id) with Inline;

   function Entry_Direct_Name (N : N_Accept_Statement_Id) return Node_Id with Inline;
   procedure Set_Entry_Direct_Name (N : N_Accept_Statement_Id; Val : Node_Id) with Inline;

   function Entry_Index (N : N_Accept_Statement_Id) return Node_Id with Inline;
   procedure Set_Entry_Index (N : N_Accept_Statement_Id; Val : Node_Id) with Inline;

   function Entry_Index_Specification (N : N_Entry_Body_Formal_Part_Id) return Node_Id with Inline;
   procedure Set_Entry_Index_Specification (N : N_Entry_Body_Formal_Part_Id; Val : Node_Id) with Inline;

   function Etype (N : N_Has_Etype_Id) return Node_Id with Inline;
   procedure Set_Etype (N : N_Has_Etype_Id; Val : Node_Id) with Inline;

   function Exception_Choices (N : N_Exception_Handler_Id) return List_Id with Inline;
   procedure Set_Exception_Choices (N : N_Exception_Handler_Id; Val : List_Id) with Inline;

   function Exception_Handlers (N : N_Handled_Sequence_Of_Statements_Id) return List_Id with Inline;
   procedure Set_Exception_Handlers (N : N_Handled_Sequence_Of_Statements_Id; Val : List_Id) with Inline;

   function Exception_Junk (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Object_Declaration_Id
         | N_Subtype_Declaration_Id
         | N_Block_Statement_Id
         | N_Goto_Statement_Id
         | N_Label_Id;
   procedure Set_Exception_Junk (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Object_Declaration_Id
         | N_Subtype_Declaration_Id
         | N_Block_Statement_Id
         | N_Goto_Statement_Id
         | N_Label_Id;

   function Exception_Label (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Push_xxx_Label_Id
         | N_Exception_Handler_Id;
   procedure Set_Exception_Label (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Push_xxx_Label_Id
         | N_Exception_Handler_Id;

   function Expansion_Delayed (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Aggregate_Id
         | N_Extension_Aggregate_Id;
   procedure Set_Expansion_Delayed (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Aggregate_Id
         | N_Extension_Aggregate_Id;

   function Explicit_Actual_Parameter (N : N_Parameter_Association_Id) return Node_Id with Inline;
   procedure Set_Explicit_Actual_Parameter (N : N_Parameter_Association_Id; Val : Node_Id) with Inline;

   function Explicit_Generic_Actual_Parameter (N : N_Generic_Association_Id) return Node_Id with Inline;
   procedure Set_Explicit_Generic_Actual_Parameter (N : N_Generic_Association_Id; Val : Node_Id) with Inline;

   function Expression (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_At_Clause_Id
         | N_Mod_Clause_Id
         | N_Attribute_Definition_Clause_Id
         | N_Pragma_Argument_Association_Id
         | N_Expression_With_Actions_Id
         | N_Qualified_Expression_Id
         | N_Allocator_Id
         | N_Case_Expression_Id
         | N_Delta_Aggregate_Id
         | N_Raise_Expression_Id
         | N_Type_Conversion_Id
         | N_Unchecked_Expression_Id
         | N_Unchecked_Type_Conversion_Id
         | N_Component_Declaration_Id
         | N_Expression_Function_Id
         | N_Object_Declaration_Id
         | N_Assignment_Statement_Id
         | N_Case_Statement_Id
         | N_Code_Statement_Id
         | N_Delay_Relative_Statement_Id
         | N_Delay_Until_Statement_Id
         | N_Free_Statement_Id
         | N_Raise_Statement_Id
         | N_Raise_When_Statement_Id
         | N_Simple_Return_Statement_Id
         | N_Return_When_Statement_Id
         | N_Formal_Abstract_Subprogram_Declaration_Id
         | N_Formal_Concrete_Subprogram_Declaration_Id
         | N_Aspect_Specification_Id
         | N_Case_Expression_Alternative_Id
         | N_Component_Association_Id
         | N_Discriminant_Association_Id
         | N_Discriminant_Specification_Id
         | N_Exception_Declaration_Id
         | N_Iterated_Component_Association_Id
         | N_Iterated_Element_Association_Id
         | N_Modular_Type_Definition_Id
         | N_Number_Declaration_Id
         | N_Parameter_Specification_Id;
   procedure Set_Expression (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_At_Clause_Id
         | N_Mod_Clause_Id
         | N_Attribute_Definition_Clause_Id
         | N_Pragma_Argument_Association_Id
         | N_Expression_With_Actions_Id
         | N_Qualified_Expression_Id
         | N_Allocator_Id
         | N_Case_Expression_Id
         | N_Delta_Aggregate_Id
         | N_Raise_Expression_Id
         | N_Type_Conversion_Id
         | N_Unchecked_Expression_Id
         | N_Unchecked_Type_Conversion_Id
         | N_Component_Declaration_Id
         | N_Expression_Function_Id
         | N_Object_Declaration_Id
         | N_Assignment_Statement_Id
         | N_Case_Statement_Id
         | N_Code_Statement_Id
         | N_Delay_Relative_Statement_Id
         | N_Delay_Until_Statement_Id
         | N_Free_Statement_Id
         | N_Raise_Statement_Id
         | N_Raise_When_Statement_Id
         | N_Simple_Return_Statement_Id
         | N_Return_When_Statement_Id
         | N_Formal_Abstract_Subprogram_Declaration_Id
         | N_Formal_Concrete_Subprogram_Declaration_Id
         | N_Aspect_Specification_Id
         | N_Case_Expression_Alternative_Id
         | N_Component_Association_Id
         | N_Discriminant_Association_Id
         | N_Discriminant_Specification_Id
         | N_Exception_Declaration_Id
         | N_Iterated_Component_Association_Id
         | N_Iterated_Element_Association_Id
         | N_Modular_Type_Definition_Id
         | N_Number_Declaration_Id
         | N_Parameter_Specification_Id;

   function Expression_Copy (N : N_Pragma_Argument_Association_Id) return Node_Id with Inline;
   procedure Set_Expression_Copy (N : N_Pragma_Argument_Association_Id; Val : Node_Id) with Inline;

   function Expressions (N : Node_Id) return List_Id with Inline, Pre =>
      N in N_Attribute_Reference_Id
         | N_Interpolated_String_Literal_Id
         | N_If_Expression_Id
         | N_Indexed_Component_Id
         | N_Aggregate_Id
         | N_Extension_Aggregate_Id;
   procedure Set_Expressions (N : Node_Id; Val : List_Id) with Inline, Pre =>
      N in N_Attribute_Reference_Id
         | N_Interpolated_String_Literal_Id
         | N_If_Expression_Id
         | N_Indexed_Component_Id
         | N_Aggregate_Id
         | N_Extension_Aggregate_Id;

   function First_Bit (N : N_Component_Clause_Id) return Node_Id with Inline;
   procedure Set_First_Bit (N : N_Component_Clause_Id; Val : Node_Id) with Inline;

   function First_Inlined_Subprogram (N : N_Compilation_Unit_Id) return Node_Id with Inline;
   procedure Set_First_Inlined_Subprogram (N : N_Compilation_Unit_Id; Val : Node_Id) with Inline;

   function First_Name (N : N_With_Clause_Id) return Flag with Inline;
   procedure Set_First_Name (N : N_With_Clause_Id; Val : Flag := True) with Inline;

   function First_Named_Actual (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Subprogram_Call_Id
         | N_Entry_Call_Statement_Id;
   procedure Set_First_Named_Actual (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Subprogram_Call_Id
         | N_Entry_Call_Statement_Id;

   function First_Subtype_Link (N : N_Freeze_Entity_Id) return Node_Id with Inline;
   procedure Set_First_Subtype_Link (N : N_Freeze_Entity_Id; Val : Node_Id) with Inline;

   function Float_Truncate (N : N_Type_Conversion_Id) return Flag with Inline;
   procedure Set_Float_Truncate (N : N_Type_Conversion_Id; Val : Flag := True) with Inline;

   function Formal_Type_Definition (N : N_Formal_Type_Declaration_Id) return Node_Id with Inline;
   procedure Set_Formal_Type_Definition (N : N_Formal_Type_Declaration_Id; Val : Node_Id) with Inline;

   function Forwards_OK (N : N_Assignment_Statement_Id) return Flag with Inline;
   procedure Set_Forwards_OK (N : N_Assignment_Statement_Id; Val : Flag := True) with Inline;

   function For_Special_Return_Object (N : N_Allocator_Id) return Flag with Inline;
   procedure Set_For_Special_Return_Object (N : N_Allocator_Id; Val : Flag := True) with Inline;

   function From_Aspect_Specification (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Attribute_Definition_Clause_Id
         | N_Pragma_Id;
   procedure Set_From_Aspect_Specification (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Attribute_Definition_Clause_Id
         | N_Pragma_Id;

   function From_At_Mod (N : N_Attribute_Definition_Clause_Id) return Flag with Inline;
   procedure Set_From_At_Mod (N : N_Attribute_Definition_Clause_Id; Val : Flag := True) with Inline;

   function From_Conditional_Expression (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Case_Statement_Id
         | N_If_Statement_Id;
   procedure Set_From_Conditional_Expression (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Case_Statement_Id
         | N_If_Statement_Id;

   function From_Default (N : N_Subprogram_Renaming_Declaration_Id) return Flag with Inline;
   procedure Set_From_Default (N : N_Subprogram_Renaming_Declaration_Id; Val : Flag := True) with Inline;

   function Generalized_Indexing (N : N_Indexed_Component_Id) return Node_Id with Inline;
   procedure Set_Generalized_Indexing (N : N_Indexed_Component_Id; Val : Node_Id) with Inline;

   function Generic_Associations (N : Node_Id) return List_Id with Inline, Pre =>
      N in N_Function_Instantiation_Id
         | N_Procedure_Instantiation_Id
         | N_Package_Instantiation_Id
         | N_Formal_Package_Declaration_Id;
   procedure Set_Generic_Associations (N : Node_Id; Val : List_Id) with Inline, Pre =>
      N in N_Function_Instantiation_Id
         | N_Procedure_Instantiation_Id
         | N_Package_Instantiation_Id
         | N_Formal_Package_Declaration_Id;

   function Generic_Formal_Declarations (N : Node_Id) return List_Id with Inline, Pre =>
      N in N_Generic_Package_Declaration_Id
         | N_Generic_Subprogram_Declaration_Id;
   procedure Set_Generic_Formal_Declarations (N : Node_Id; Val : List_Id) with Inline, Pre =>
      N in N_Generic_Package_Declaration_Id
         | N_Generic_Subprogram_Declaration_Id;

   function Generic_Parent (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Subprogram_Specification_Id
         | N_Package_Specification_Id;
   procedure Set_Generic_Parent (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Subprogram_Specification_Id
         | N_Package_Specification_Id;

   function Generic_Parent_Type (N : N_Subtype_Declaration_Id) return Node_Id with Inline;
   procedure Set_Generic_Parent_Type (N : N_Subtype_Declaration_Id; Val : Node_Id) with Inline;

   function Handled_Statement_Sequence (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Package_Body_Id
         | N_Subprogram_Body_Id
         | N_Task_Body_Id
         | N_Accept_Statement_Id
         | N_Block_Statement_Id
         | N_Extended_Return_Statement_Id
         | N_Entry_Body_Id;
   procedure Set_Handled_Statement_Sequence (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Package_Body_Id
         | N_Subprogram_Body_Id
         | N_Task_Body_Id
         | N_Accept_Statement_Id
         | N_Block_Statement_Id
         | N_Extended_Return_Statement_Id
         | N_Entry_Body_Id;

   function Handler_List_Entry (N : N_Object_Declaration_Id) return Node_Id with Inline;
   procedure Set_Handler_List_Entry (N : N_Object_Declaration_Id; Val : Node_Id) with Inline;

   function Has_Created_Identifier (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Block_Statement_Id
         | N_Loop_Statement_Id;
   procedure Set_Has_Created_Identifier (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Block_Statement_Id
         | N_Loop_Statement_Id;

   function Has_Dereference_Action (N : N_Explicit_Dereference_Id) return Flag with Inline;
   procedure Set_Has_Dereference_Action (N : N_Explicit_Dereference_Id; Val : Flag := True) with Inline;

   function Has_Dynamic_Length_Check (N : N_Subexpr_Id) return Flag with Inline;
   procedure Set_Has_Dynamic_Length_Check (N : N_Subexpr_Id; Val : Flag := True) with Inline;

   function Has_Init_Expression (N : N_Object_Declaration_Id) return Flag with Inline;
   procedure Set_Has_Init_Expression (N : N_Object_Declaration_Id; Val : Flag := True) with Inline;

   function Has_Local_Raise (N : N_Exception_Handler_Id) return Flag with Inline;
   procedure Set_Has_Local_Raise (N : N_Exception_Handler_Id; Val : Flag := True) with Inline;

   function Has_No_Elaboration_Code (N : N_Compilation_Unit_Id) return Flag with Inline;
   procedure Set_Has_No_Elaboration_Code (N : N_Compilation_Unit_Id; Val : Flag := True) with Inline;

   function Has_Pragma_Suppress_All (N : N_Compilation_Unit_Id) return Flag with Inline;
   procedure Set_Has_Pragma_Suppress_All (N : N_Compilation_Unit_Id; Val : Flag := True) with Inline;

   function Has_Private_View (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Expanded_Name_Id
         | N_Direct_Name_Id
         | N_Op_Id;
   procedure Set_Has_Private_View (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Expanded_Name_Id
         | N_Direct_Name_Id
         | N_Op_Id;

   function Has_Relative_Deadline_Pragma (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Subprogram_Body_Id
         | N_Task_Definition_Id;
   procedure Set_Has_Relative_Deadline_Pragma (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Subprogram_Body_Id
         | N_Task_Definition_Id;

   function Has_Self_Reference (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Aggregate_Id
         | N_Extension_Aggregate_Id;
   procedure Set_Has_Self_Reference (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Aggregate_Id
         | N_Extension_Aggregate_Id;

   function Has_SP_Choice (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Case_Expression_Alternative_Id
         | N_Case_Statement_Alternative_Id
         | N_Variant_Id;
   procedure Set_Has_SP_Choice (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Case_Expression_Alternative_Id
         | N_Case_Statement_Alternative_Id
         | N_Variant_Id;

   function Has_Storage_Size_Pragma (N : N_Task_Definition_Id) return Flag with Inline;
   procedure Set_Has_Storage_Size_Pragma (N : N_Task_Definition_Id; Val : Flag := True) with Inline;

   function Has_Target_Names (N : N_Assignment_Statement_Id) return Flag with Inline;
   procedure Set_Has_Target_Names (N : N_Assignment_Statement_Id; Val : Flag := True) with Inline;

   function Has_Wide_Character (N : N_String_Literal_Id) return Flag with Inline;
   procedure Set_Has_Wide_Character (N : N_String_Literal_Id; Val : Flag := True) with Inline;

   function Has_Wide_Wide_Character (N : N_String_Literal_Id) return Flag with Inline;
   procedure Set_Has_Wide_Wide_Character (N : N_String_Literal_Id; Val : Flag := True) with Inline;

   function Header_Size_Added (N : N_Attribute_Reference_Id) return Flag with Inline;
   procedure Set_Header_Size_Added (N : N_Attribute_Reference_Id; Val : Flag := True) with Inline;

   function Hidden_By_Use_Clause (N : Node_Id) return Elist_Id with Inline, Pre =>
      N in N_Use_Package_Clause_Id
         | N_Use_Type_Clause_Id;
   procedure Set_Hidden_By_Use_Clause (N : Node_Id; Val : Elist_Id) with Inline, Pre =>
      N in N_Use_Package_Clause_Id
         | N_Use_Type_Clause_Id;

   function High_Bound (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Range_Id
         | N_Real_Range_Specification_Id
         | N_Signed_Integer_Type_Definition_Id;
   procedure Set_High_Bound (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Range_Id
         | N_Real_Range_Specification_Id
         | N_Signed_Integer_Type_Definition_Id;

   function Identifier (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_At_Clause_Id
         | N_Enumeration_Representation_Clause_Id
         | N_Record_Representation_Clause_Id
         | N_Block_Statement_Id
         | N_Loop_Statement_Id
         | N_Aspect_Specification_Id
         | N_Designator_Id
         | N_Label_Id;
   procedure Set_Identifier (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_At_Clause_Id
         | N_Enumeration_Representation_Clause_Id
         | N_Record_Representation_Clause_Id
         | N_Block_Statement_Id
         | N_Loop_Statement_Id
         | N_Aspect_Specification_Id
         | N_Designator_Id
         | N_Label_Id;

   function Interface_List (N : Node_Id) return List_Id with Inline, Pre =>
      N in N_Protected_Type_Declaration_Id
         | N_Private_Extension_Declaration_Id
         | N_Task_Type_Declaration_Id
         | N_Single_Task_Declaration_Id
         | N_Derived_Type_Definition_Id
         | N_Formal_Derived_Type_Definition_Id
         | N_Record_Definition_Id
         | N_Single_Protected_Declaration_Id;
   procedure Set_Interface_List (N : Node_Id; Val : List_Id) with Inline, Pre =>
      N in N_Protected_Type_Declaration_Id
         | N_Private_Extension_Declaration_Id
         | N_Task_Type_Declaration_Id
         | N_Single_Task_Declaration_Id
         | N_Derived_Type_Definition_Id
         | N_Formal_Derived_Type_Definition_Id
         | N_Record_Definition_Id
         | N_Single_Protected_Declaration_Id;

   function Interface_Present (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Derived_Type_Definition_Id
         | N_Record_Definition_Id;
   procedure Set_Interface_Present (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Derived_Type_Definition_Id
         | N_Record_Definition_Id;

   function Implicit_With (N : N_With_Clause_Id) return Flag with Inline;
   procedure Set_Implicit_With (N : N_With_Clause_Id; Val : Flag := True) with Inline;

   function Import_Interface_Present (N : N_Pragma_Id) return Flag with Inline;
   procedure Set_Import_Interface_Present (N : N_Pragma_Id; Val : Flag := True) with Inline;

   function In_Present (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Formal_Object_Declaration_Id
         | N_Parameter_Specification_Id;
   procedure Set_In_Present (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Formal_Object_Declaration_Id
         | N_Parameter_Specification_Id;

   function Includes_Infinities (N : N_Range_Id) return Flag with Inline;
   procedure Set_Includes_Infinities (N : N_Range_Id; Val : Flag := True) with Inline;

   function Incomplete_View (N : N_Full_Type_Declaration_Id) return Node_Id with Inline;
   procedure Set_Incomplete_View (N : N_Full_Type_Declaration_Id; Val : Node_Id) with Inline;

   function Inherited_Discriminant (N : N_Component_Association_Id) return Flag with Inline;
   procedure Set_Inherited_Discriminant (N : N_Component_Association_Id; Val : Flag := True) with Inline;

   function Instance_Spec (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Generic_Instantiation_Id
         | N_Formal_Package_Declaration_Id;
   procedure Set_Instance_Spec (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Generic_Instantiation_Id
         | N_Formal_Package_Declaration_Id;

   function Intval (N : N_Integer_Literal_Id) return Valid_Uint with Inline;
   procedure Set_Intval (N : N_Integer_Literal_Id; Val : Valid_Uint) with Inline;

   function Is_Abort_Block (N : N_Block_Statement_Id) return Flag with Inline;
   procedure Set_Is_Abort_Block (N : N_Block_Statement_Id; Val : Flag := True) with Inline;

   function Is_Accessibility_Actual (N : N_Parameter_Association_Id) return Flag with Inline;
   procedure Set_Is_Accessibility_Actual (N : N_Parameter_Association_Id; Val : Flag := True) with Inline;

   function Is_Analyzed_Pragma (N : N_Pragma_Id) return Flag with Inline;
   procedure Set_Is_Analyzed_Pragma (N : N_Pragma_Id; Val : Flag := True) with Inline;

   function Is_Asynchronous_Call_Block (N : N_Block_Statement_Id) return Flag with Inline;
   procedure Set_Is_Asynchronous_Call_Block (N : N_Block_Statement_Id; Val : Flag := True) with Inline;

   function Is_Boolean_Aspect (N : N_Aspect_Specification_Id) return Flag with Inline;
   procedure Set_Is_Boolean_Aspect (N : N_Aspect_Specification_Id; Val : Flag := True) with Inline;

   function Is_Checked (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Aspect_Specification_Id
         | N_Pragma_Id;
   procedure Set_Is_Checked (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Aspect_Specification_Id
         | N_Pragma_Id;

   function Is_Checked_Ghost_Pragma (N : N_Pragma_Id) return Flag with Inline;
   procedure Set_Is_Checked_Ghost_Pragma (N : N_Pragma_Id; Val : Flag := True) with Inline;

   function Is_Component_Left_Opnd (N : N_Op_Concat_Id) return Flag with Inline;
   procedure Set_Is_Component_Left_Opnd (N : N_Op_Concat_Id; Val : Flag := True) with Inline;

   function Is_Component_Right_Opnd (N : N_Op_Concat_Id) return Flag with Inline;
   procedure Set_Is_Component_Right_Opnd (N : N_Op_Concat_Id; Val : Flag := True) with Inline;

   function Is_Controlling_Actual (N : N_Subexpr_Id) return Flag with Inline;
   procedure Set_Is_Controlling_Actual (N : N_Subexpr_Id; Val : Flag := True) with Inline;

   function Is_Declaration_Level_Node (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Generic_Instantiation_Id
         | N_Call_Marker_Id;
   procedure Set_Is_Declaration_Level_Node (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Generic_Instantiation_Id
         | N_Call_Marker_Id;

   function Is_Delayed_Aspect (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Attribute_Definition_Clause_Id
         | N_Aspect_Specification_Id
         | N_Pragma_Id;
   procedure Set_Is_Delayed_Aspect (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Attribute_Definition_Clause_Id
         | N_Aspect_Specification_Id
         | N_Pragma_Id;

   function Is_Disabled (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Aspect_Specification_Id
         | N_Pragma_Id;
   procedure Set_Is_Disabled (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Aspect_Specification_Id
         | N_Pragma_Id;

   function Is_Dispatching_Call (N : N_Call_Marker_Id) return Flag with Inline;
   procedure Set_Is_Dispatching_Call (N : N_Call_Marker_Id; Val : Flag := True) with Inline;

   function Is_Dynamic_Coextension (N : N_Allocator_Id) return Flag with Inline;
   procedure Set_Is_Dynamic_Coextension (N : N_Allocator_Id; Val : Flag := True) with Inline;

   function Is_Effective_Use_Clause (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Use_Package_Clause_Id
         | N_Use_Type_Clause_Id;
   procedure Set_Is_Effective_Use_Clause (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Use_Package_Clause_Id
         | N_Use_Type_Clause_Id;

   function Is_Elaboration_Checks_OK_Node (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Expanded_Name_Id
         | N_Identifier_Id
         | N_Attribute_Reference_Id
         | N_Subprogram_Call_Id
         | N_Generic_Instantiation_Id
         | N_Assignment_Statement_Id
         | N_Entry_Call_Statement_Id
         | N_Requeue_Statement_Id
         | N_Call_Marker_Id
         | N_Variable_Reference_Marker_Id;
   procedure Set_Is_Elaboration_Checks_OK_Node (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Expanded_Name_Id
         | N_Identifier_Id
         | N_Attribute_Reference_Id
         | N_Subprogram_Call_Id
         | N_Generic_Instantiation_Id
         | N_Assignment_Statement_Id
         | N_Entry_Call_Statement_Id
         | N_Requeue_Statement_Id
         | N_Call_Marker_Id
         | N_Variable_Reference_Marker_Id;

   function Is_Elaboration_Code (N : N_Assignment_Statement_Id) return Flag with Inline;
   procedure Set_Is_Elaboration_Code (N : N_Assignment_Statement_Id; Val : Flag := True) with Inline;

   function Is_Elaboration_Warnings_OK_Node (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Expanded_Name_Id
         | N_Identifier_Id
         | N_Attribute_Reference_Id
         | N_Subprogram_Call_Id
         | N_Generic_Instantiation_Id
         | N_Entry_Call_Statement_Id
         | N_Requeue_Statement_Id
         | N_Call_Marker_Id
         | N_Variable_Reference_Marker_Id;
   procedure Set_Is_Elaboration_Warnings_OK_Node (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Expanded_Name_Id
         | N_Identifier_Id
         | N_Attribute_Reference_Id
         | N_Subprogram_Call_Id
         | N_Generic_Instantiation_Id
         | N_Entry_Call_Statement_Id
         | N_Requeue_Statement_Id
         | N_Call_Marker_Id
         | N_Variable_Reference_Marker_Id;

   function Is_Elsif (N : N_If_Expression_Id) return Flag with Inline;
   procedure Set_Is_Elsif (N : N_If_Expression_Id; Val : Flag := True) with Inline;

   function Is_Entry_Barrier_Function (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Subprogram_Body_Id
         | N_Subprogram_Declaration_Id;
   procedure Set_Is_Entry_Barrier_Function (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Subprogram_Body_Id
         | N_Subprogram_Declaration_Id;

   function Is_Expanded_Build_In_Place_Call (N : N_Function_Call_Id) return Flag with Inline;
   procedure Set_Is_Expanded_Build_In_Place_Call (N : N_Function_Call_Id; Val : Flag := True) with Inline;

   function Is_Expanded_Contract (N : N_Contract_Id) return Flag with Inline;
   procedure Set_Is_Expanded_Contract (N : N_Contract_Id; Val : Flag := True) with Inline;

   function Is_Finalization_Wrapper (N : N_Block_Statement_Id) return Flag with Inline;
   procedure Set_Is_Finalization_Wrapper (N : N_Block_Statement_Id; Val : Flag := True) with Inline;

   function Is_Folded_In_Parser (N : N_String_Literal_Id) return Flag with Inline;
   procedure Set_Is_Folded_In_Parser (N : N_String_Literal_Id; Val : Flag := True) with Inline;

   function Is_Generic_Contract_Pragma (N : N_Pragma_Id) return Flag with Inline;
   procedure Set_Is_Generic_Contract_Pragma (N : N_Pragma_Id; Val : Flag := True) with Inline;

   function Is_Homogeneous_Aggregate (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Aggregate_Id
         | N_Delta_Aggregate_Id;
   procedure Set_Is_Homogeneous_Aggregate (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Aggregate_Id
         | N_Delta_Aggregate_Id;

   function Is_Parenthesis_Aggregate (N : N_Aggregate_Id) return Flag with Inline;
   procedure Set_Is_Parenthesis_Aggregate (N : N_Aggregate_Id; Val : Flag := True) with Inline;

   function Is_Enum_Array_Aggregate (N : N_Aggregate_Id) return Flag with Inline;
   procedure Set_Is_Enum_Array_Aggregate (N : N_Aggregate_Id; Val : Flag := True) with Inline;

   function Is_Ignored (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Aspect_Specification_Id
         | N_Pragma_Id;
   procedure Set_Is_Ignored (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Aspect_Specification_Id
         | N_Pragma_Id;

   function Is_Ignored_Ghost_Pragma (N : N_Pragma_Id) return Flag with Inline;
   procedure Set_Is_Ignored_Ghost_Pragma (N : N_Pragma_Id; Val : Flag := True) with Inline;

   function Is_In_Discriminant_Check (N : N_Selected_Component_Id) return Flag with Inline;
   procedure Set_Is_In_Discriminant_Check (N : N_Selected_Component_Id; Val : Flag := True) with Inline;

   function Is_Inherited_Pragma (N : N_Pragma_Id) return Flag with Inline;
   procedure Set_Is_Inherited_Pragma (N : N_Pragma_Id; Val : Flag := True) with Inline;

   function Is_Initialization_Block (N : N_Block_Statement_Id) return Flag with Inline;
   procedure Set_Is_Initialization_Block (N : N_Block_Statement_Id; Val : Flag := True) with Inline;

   function Is_Known_Guaranteed_ABE (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Subprogram_Call_Id
         | N_Generic_Instantiation_Id
         | N_Call_Marker_Id
         | N_Formal_Package_Declaration_Id;
   procedure Set_Is_Known_Guaranteed_ABE (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Subprogram_Call_Id
         | N_Generic_Instantiation_Id
         | N_Call_Marker_Id
         | N_Formal_Package_Declaration_Id;

   function Is_Machine_Number (N : N_Real_Literal_Id) return Flag with Inline;
   procedure Set_Is_Machine_Number (N : N_Real_Literal_Id; Val : Flag := True) with Inline;

   function Is_Null_Loop (N : N_Loop_Statement_Id) return Flag with Inline;
   procedure Set_Is_Null_Loop (N : N_Loop_Statement_Id; Val : Flag := True) with Inline;

   function Is_Overloaded (N : N_Subexpr_Id) return Flag with Inline;
   procedure Set_Is_Overloaded (N : N_Subexpr_Id; Val : Flag := True) with Inline;

   function Is_Power_Of_2_For_Shift (N : N_Op_Expon_Id) return Flag with Inline;
   procedure Set_Is_Power_Of_2_For_Shift (N : N_Op_Expon_Id; Val : Flag := True) with Inline;

   function Is_Preelaborable_Call (N : N_Call_Marker_Id) return Flag with Inline;
   procedure Set_Is_Preelaborable_Call (N : N_Call_Marker_Id; Val : Flag := True) with Inline;

   function Is_Prefixed_Call (N : N_Selected_Component_Id) return Flag with Inline;
   procedure Set_Is_Prefixed_Call (N : N_Selected_Component_Id; Val : Flag := True) with Inline;

   function Is_Protected_Subprogram_Body (N : N_Subprogram_Body_Id) return Flag with Inline;
   procedure Set_Is_Protected_Subprogram_Body (N : N_Subprogram_Body_Id; Val : Flag := True) with Inline;

   function Is_Qualified_Universal_Literal (N : N_Qualified_Expression_Id) return Flag with Inline;
   procedure Set_Is_Qualified_Universal_Literal (N : N_Qualified_Expression_Id; Val : Flag := True) with Inline;

   function Is_Read (N : N_Variable_Reference_Marker_Id) return Flag with Inline;
   procedure Set_Is_Read (N : N_Variable_Reference_Marker_Id; Val : Flag := True) with Inline;

   function Is_Source_Call (N : N_Call_Marker_Id) return Flag with Inline;
   procedure Set_Is_Source_Call (N : N_Call_Marker_Id; Val : Flag := True) with Inline;

   function Is_SPARK_Mode_On_Node (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Expanded_Name_Id
         | N_Identifier_Id
         | N_Attribute_Reference_Id
         | N_Subprogram_Call_Id
         | N_Generic_Instantiation_Id
         | N_Assignment_Statement_Id
         | N_Entry_Call_Statement_Id
         | N_Requeue_Statement_Id
         | N_Call_Marker_Id
         | N_Variable_Reference_Marker_Id;
   procedure Set_Is_SPARK_Mode_On_Node (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Expanded_Name_Id
         | N_Identifier_Id
         | N_Attribute_Reference_Id
         | N_Subprogram_Call_Id
         | N_Generic_Instantiation_Id
         | N_Assignment_Statement_Id
         | N_Entry_Call_Statement_Id
         | N_Requeue_Statement_Id
         | N_Call_Marker_Id
         | N_Variable_Reference_Marker_Id;

   function Is_Static_Coextension (N : N_Allocator_Id) return Flag with Inline;
   procedure Set_Is_Static_Coextension (N : N_Allocator_Id; Val : Flag := True) with Inline;

   function Is_Static_Expression (N : N_Subexpr_Id) return Flag with Inline;
   procedure Set_Is_Static_Expression (N : N_Subexpr_Id; Val : Flag := True) with Inline;

   function Is_Subprogram_Descriptor (N : N_Object_Declaration_Id) return Flag with Inline;
   procedure Set_Is_Subprogram_Descriptor (N : N_Object_Declaration_Id; Val : Flag := True) with Inline;

   function Is_Task_Allocation_Block (N : N_Block_Statement_Id) return Flag with Inline;
   procedure Set_Is_Task_Allocation_Block (N : N_Block_Statement_Id; Val : Flag := True) with Inline;

   function Is_Task_Body_Procedure (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Subprogram_Body_Id
         | N_Subprogram_Declaration_Id;
   procedure Set_Is_Task_Body_Procedure (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Subprogram_Body_Id
         | N_Subprogram_Declaration_Id;

   function Is_Task_Master (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Subprogram_Body_Id
         | N_Task_Body_Id
         | N_Block_Statement_Id;
   procedure Set_Is_Task_Master (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Subprogram_Body_Id
         | N_Task_Body_Id
         | N_Block_Statement_Id;

   function Is_Write (N : N_Variable_Reference_Marker_Id) return Flag with Inline;
   procedure Set_Is_Write (N : N_Variable_Reference_Marker_Id; Val : Flag := True) with Inline;

   function Iterator_Filter (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Iterator_Specification_Id
         | N_Loop_Parameter_Specification_Id;
   procedure Set_Iterator_Filter (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Iterator_Specification_Id
         | N_Loop_Parameter_Specification_Id;

   function Iteration_Scheme (N : N_Loop_Statement_Id) return Node_Id with Inline;
   procedure Set_Iteration_Scheme (N : N_Loop_Statement_Id; Val : Node_Id) with Inline;

   function Iterator_Specification (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Quantified_Expression_Id
         | N_Iteration_Scheme_Id
         | N_Iterated_Component_Association_Id
         | N_Iterated_Element_Association_Id;
   procedure Set_Iterator_Specification (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Quantified_Expression_Id
         | N_Iteration_Scheme_Id
         | N_Iterated_Component_Association_Id
         | N_Iterated_Element_Association_Id;

   function Itype (N : N_Itype_Reference_Id) return Node_Id with Inline;
   procedure Set_Itype (N : N_Itype_Reference_Id; Val : Node_Id) with Inline;

   function Key_Expression (N : N_Iterated_Element_Association_Id) return Node_Id with Inline;
   procedure Set_Key_Expression (N : N_Iterated_Element_Association_Id; Val : Node_Id) with Inline;

   function Kill_Range_Check (N : N_Unchecked_Type_Conversion_Id) return Flag with Inline;
   procedure Set_Kill_Range_Check (N : N_Unchecked_Type_Conversion_Id; Val : Flag := True) with Inline;

   function Last_Bit (N : N_Component_Clause_Id) return Node_Id with Inline;
   procedure Set_Last_Bit (N : N_Component_Clause_Id; Val : Node_Id) with Inline;

   function Last_Name (N : N_With_Clause_Id) return Flag with Inline;
   procedure Set_Last_Name (N : N_With_Clause_Id; Val : Flag := True) with Inline;

   function Library_Unit (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Body_Stub_Id
         | N_Compilation_Unit_Id
         | N_With_Clause_Id;
   procedure Set_Library_Unit (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Body_Stub_Id
         | N_Compilation_Unit_Id
         | N_With_Clause_Id;

   function Label_Construct (N : N_Implicit_Label_Declaration_Id) return Node_Id with Inline;
   procedure Set_Label_Construct (N : N_Implicit_Label_Declaration_Id; Val : Node_Id) with Inline;

   function Left_Opnd (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Op_Add_Id
         | N_Op_Concat_Id
         | N_Op_Expon_Id
         | N_Op_Subtract_Id
         | N_Op_Divide_Id
         | N_Op_Mod_Id
         | N_Op_Multiply_Id
         | N_Op_Rem_Id
         | N_Op_And_Id
         | N_Op_Eq_Id
         | N_Op_Ge_Id
         | N_Op_Gt_Id
         | N_Op_Le_Id
         | N_Op_Lt_Id
         | N_Op_Ne_Id
         | N_Op_Or_Id
         | N_Op_Xor_Id
         | N_Op_Rotate_Left_Id
         | N_Op_Rotate_Right_Id
         | N_Op_Shift_Left_Id
         | N_Op_Shift_Right_Id
         | N_Op_Shift_Right_Arithmetic_Id
         | N_In_Id
         | N_Not_In_Id
         | N_And_Then_Id
         | N_Or_Else_Id;
   procedure Set_Left_Opnd (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Op_Add_Id
         | N_Op_Concat_Id
         | N_Op_Expon_Id
         | N_Op_Subtract_Id
         | N_Op_Divide_Id
         | N_Op_Mod_Id
         | N_Op_Multiply_Id
         | N_Op_Rem_Id
         | N_Op_And_Id
         | N_Op_Eq_Id
         | N_Op_Ge_Id
         | N_Op_Gt_Id
         | N_Op_Le_Id
         | N_Op_Lt_Id
         | N_Op_Ne_Id
         | N_Op_Or_Id
         | N_Op_Xor_Id
         | N_Op_Rotate_Left_Id
         | N_Op_Rotate_Right_Id
         | N_Op_Shift_Left_Id
         | N_Op_Shift_Right_Id
         | N_Op_Shift_Right_Arithmetic_Id
         | N_In_Id
         | N_Not_In_Id
         | N_And_Then_Id
         | N_Or_Else_Id;

   function Limited_View_Installed (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Package_Specification_Id
         | N_With_Clause_Id;
   procedure Set_Limited_View_Installed (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Package_Specification_Id
         | N_With_Clause_Id;

   function Limited_Present (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Private_Extension_Declaration_Id
         | N_Private_Type_Declaration_Id
         | N_Derived_Type_Definition_Id
         | N_Formal_Derived_Type_Definition_Id
         | N_Formal_Private_Type_Definition_Id
         | N_Record_Definition_Id
         | N_With_Clause_Id;
   procedure Set_Limited_Present (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Private_Extension_Declaration_Id
         | N_Private_Type_Declaration_Id
         | N_Derived_Type_Definition_Id
         | N_Formal_Derived_Type_Definition_Id
         | N_Formal_Private_Type_Definition_Id
         | N_Record_Definition_Id
         | N_With_Clause_Id;

   function Literals (N : N_Enumeration_Type_Definition_Id) return List_Id with Inline;
   procedure Set_Literals (N : N_Enumeration_Type_Definition_Id; Val : List_Id) with Inline;

   function Local_Raise_Not_OK (N : N_Exception_Handler_Id) return Flag with Inline;
   procedure Set_Local_Raise_Not_OK (N : N_Exception_Handler_Id; Val : Flag := True) with Inline;

   function Local_Raise_Statements (N : N_Exception_Handler_Id) return Elist_Id with Inline;
   procedure Set_Local_Raise_Statements (N : N_Exception_Handler_Id; Val : Elist_Id) with Inline;

   function Loop_Actions (N : Node_Id) return List_Id with Inline, Pre =>
      N in N_Component_Association_Id
         | N_Iterated_Component_Association_Id
         | N_Iterated_Element_Association_Id;
   procedure Set_Loop_Actions (N : Node_Id; Val : List_Id) with Inline, Pre =>
      N in N_Component_Association_Id
         | N_Iterated_Component_Association_Id
         | N_Iterated_Element_Association_Id;

   function Loop_Parameter_Specification (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Quantified_Expression_Id
         | N_Iteration_Scheme_Id
         | N_Iterated_Element_Association_Id;
   procedure Set_Loop_Parameter_Specification (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Quantified_Expression_Id
         | N_Iteration_Scheme_Id
         | N_Iterated_Element_Association_Id;

   function Low_Bound (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Range_Id
         | N_Real_Range_Specification_Id
         | N_Signed_Integer_Type_Definition_Id;
   procedure Set_Low_Bound (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Range_Id
         | N_Real_Range_Specification_Id
         | N_Signed_Integer_Type_Definition_Id;

   function Mod_Clause (N : N_Record_Representation_Clause_Id) return Node_Id with Inline;
   procedure Set_Mod_Clause (N : N_Record_Representation_Clause_Id; Val : Node_Id) with Inline;

   function More_Ids (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Component_Declaration_Id
         | N_Formal_Object_Declaration_Id
         | N_Object_Declaration_Id
         | N_Use_Package_Clause_Id
         | N_Discriminant_Specification_Id
         | N_Exception_Declaration_Id
         | N_Number_Declaration_Id
         | N_Parameter_Specification_Id
         | N_Use_Type_Clause_Id;
   procedure Set_More_Ids (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Component_Declaration_Id
         | N_Formal_Object_Declaration_Id
         | N_Object_Declaration_Id
         | N_Use_Package_Clause_Id
         | N_Discriminant_Specification_Id
         | N_Exception_Declaration_Id
         | N_Number_Declaration_Id
         | N_Parameter_Specification_Id
         | N_Use_Type_Clause_Id;

   function Multidefined_Bindings (N : N_Case_Statement_Alternative_Id) return Flag with Inline;
   procedure Set_Multidefined_Bindings (N : N_Case_Statement_Alternative_Id; Val : Flag := True) with Inline;

   function Must_Be_Byte_Aligned (N : N_Attribute_Reference_Id) return Flag with Inline;
   procedure Set_Must_Be_Byte_Aligned (N : N_Attribute_Reference_Id; Val : Flag := True) with Inline;

   function Must_Not_Freeze (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Subexpr_Id
         | N_Subtype_Indication_Id;
   procedure Set_Must_Not_Freeze (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Subexpr_Id
         | N_Subtype_Indication_Id;

   function Must_Not_Override (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Entry_Declaration_Id
         | N_Function_Specification_Id
         | N_Procedure_Specification_Id
         | N_Function_Instantiation_Id
         | N_Procedure_Instantiation_Id;
   procedure Set_Must_Not_Override (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Entry_Declaration_Id
         | N_Function_Specification_Id
         | N_Procedure_Specification_Id
         | N_Function_Instantiation_Id
         | N_Procedure_Instantiation_Id;

   function Must_Override (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Entry_Declaration_Id
         | N_Function_Specification_Id
         | N_Procedure_Specification_Id
         | N_Function_Instantiation_Id
         | N_Procedure_Instantiation_Id;
   procedure Set_Must_Override (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Entry_Declaration_Id
         | N_Function_Specification_Id
         | N_Procedure_Specification_Id
         | N_Function_Instantiation_Id
         | N_Procedure_Instantiation_Id;

   function Name (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Attribute_Definition_Clause_Id
         | N_Function_Call_Id
         | N_Procedure_Call_Statement_Id
         | N_Raise_Expression_Id
         | N_Iterator_Specification_Id
         | N_Function_Instantiation_Id
         | N_Procedure_Instantiation_Id
         | N_Package_Instantiation_Id
         | N_Use_Package_Clause_Id
         | N_Exception_Renaming_Declaration_Id
         | N_Object_Renaming_Declaration_Id
         | N_Package_Renaming_Declaration_Id
         | N_Subprogram_Renaming_Declaration_Id
         | N_Generic_Function_Renaming_Declaration_Id
         | N_Generic_Package_Renaming_Declaration_Id
         | N_Generic_Procedure_Renaming_Declaration_Id
         | N_Assignment_Statement_Id
         | N_Entry_Call_Statement_Id
         | N_Goto_Statement_Id
         | N_Goto_When_Statement_Id
         | N_Raise_Statement_Id
         | N_Raise_When_Statement_Id
         | N_Requeue_Statement_Id
         | N_Exit_Statement_Id
         | N_Defining_Program_Unit_Name_Id
         | N_Designator_Id
         | N_Formal_Package_Declaration_Id
         | N_Subunit_Id
         | N_Variant_Part_Id
         | N_With_Clause_Id;
   procedure Set_Name (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Attribute_Definition_Clause_Id
         | N_Function_Call_Id
         | N_Procedure_Call_Statement_Id
         | N_Raise_Expression_Id
         | N_Iterator_Specification_Id
         | N_Function_Instantiation_Id
         | N_Procedure_Instantiation_Id
         | N_Package_Instantiation_Id
         | N_Use_Package_Clause_Id
         | N_Exception_Renaming_Declaration_Id
         | N_Object_Renaming_Declaration_Id
         | N_Package_Renaming_Declaration_Id
         | N_Subprogram_Renaming_Declaration_Id
         | N_Generic_Function_Renaming_Declaration_Id
         | N_Generic_Package_Renaming_Declaration_Id
         | N_Generic_Procedure_Renaming_Declaration_Id
         | N_Assignment_Statement_Id
         | N_Entry_Call_Statement_Id
         | N_Goto_Statement_Id
         | N_Goto_When_Statement_Id
         | N_Raise_Statement_Id
         | N_Raise_When_Statement_Id
         | N_Requeue_Statement_Id
         | N_Exit_Statement_Id
         | N_Defining_Program_Unit_Name_Id
         | N_Designator_Id
         | N_Formal_Package_Declaration_Id
         | N_Subunit_Id
         | N_Variant_Part_Id
         | N_With_Clause_Id;

   function Names (N : N_Abort_Statement_Id) return List_Id with Inline;
   procedure Set_Names (N : N_Abort_Statement_Id; Val : List_Id) with Inline;

   function Next_Entity (N : N_Entity_Id) return Node_Id with Inline;
   procedure Set_Next_Entity (N : N_Entity_Id; Val : Node_Id) with Inline;

   function Next_Exit_Statement (N : N_Exit_Statement_Id) return Node_Id with Inline;
   procedure Set_Next_Exit_Statement (N : N_Exit_Statement_Id; Val : Node_Id) with Inline;

   function Next_Implicit_With (N : N_With_Clause_Id) return Node_Id with Inline;
   procedure Set_Next_Implicit_With (N : N_With_Clause_Id; Val : Node_Id) with Inline;

   function Next_Named_Actual (N : N_Parameter_Association_Id) return Node_Id with Inline;
   procedure Set_Next_Named_Actual (N : N_Parameter_Association_Id; Val : Node_Id) with Inline;

   function Next_Pragma (N : N_Pragma_Id) return Node_Id with Inline;
   procedure Set_Next_Pragma (N : N_Pragma_Id; Val : Node_Id) with Inline;

   function Next_Rep_Item (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Enumeration_Representation_Clause_Id
         | N_Record_Representation_Clause_Id
         | N_Attribute_Definition_Clause_Id
         | N_Null_Statement_Id
         | N_Aspect_Specification_Id
         | N_Pragma_Id;
   procedure Set_Next_Rep_Item (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Enumeration_Representation_Clause_Id
         | N_Record_Representation_Clause_Id
         | N_Attribute_Definition_Clause_Id
         | N_Null_Statement_Id
         | N_Aspect_Specification_Id
         | N_Pragma_Id;

   function Next_Use_Clause (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Use_Package_Clause_Id
         | N_Use_Type_Clause_Id;
   procedure Set_Next_Use_Clause (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Use_Package_Clause_Id
         | N_Use_Type_Clause_Id;

   function No_Ctrl_Actions (N : N_Assignment_Statement_Id) return Flag with Inline;
   procedure Set_No_Ctrl_Actions (N : N_Assignment_Statement_Id; Val : Flag := True) with Inline;

   function No_Elaboration_Check (N : N_Subprogram_Call_Id) return Flag with Inline;
   procedure Set_No_Elaboration_Check (N : N_Subprogram_Call_Id; Val : Flag := True) with Inline;

   function No_Entities_Ref_In_Spec (N : N_With_Clause_Id) return Flag with Inline;
   procedure Set_No_Entities_Ref_In_Spec (N : N_With_Clause_Id; Val : Flag := True) with Inline;

   function No_Initialization (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Allocator_Id
         | N_Object_Declaration_Id;
   procedure Set_No_Initialization (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Allocator_Id
         | N_Object_Declaration_Id;

   function No_Minimize_Eliminate (N : Node_Id) return Flag with Inline, Pre =>
      N in N_In_Id
         | N_Not_In_Id;
   procedure Set_No_Minimize_Eliminate (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_In_Id
         | N_Not_In_Id;

   function No_Side_Effect_Removal (N : N_Function_Call_Id) return Flag with Inline;
   procedure Set_No_Side_Effect_Removal (N : N_Function_Call_Id; Val : Flag := True) with Inline;

   function No_Truncation (N : N_Unchecked_Type_Conversion_Id) return Flag with Inline;
   procedure Set_No_Truncation (N : N_Unchecked_Type_Conversion_Id; Val : Flag := True) with Inline;

   function Null_Excluding_Subtype (N : N_Access_To_Object_Definition_Id) return Flag with Inline;
   procedure Set_Null_Excluding_Subtype (N : N_Access_To_Object_Definition_Id; Val : Flag := True) with Inline;

   function Null_Exclusion_Present (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Allocator_Id
         | N_Formal_Object_Declaration_Id
         | N_Object_Declaration_Id
         | N_Subtype_Declaration_Id
         | N_Function_Specification_Id
         | N_Access_Function_Definition_Id
         | N_Access_Procedure_Definition_Id
         | N_Object_Renaming_Declaration_Id
         | N_Access_Definition_Id
         | N_Access_To_Object_Definition_Id
         | N_Component_Definition_Id
         | N_Derived_Type_Definition_Id
         | N_Discriminant_Specification_Id
         | N_Parameter_Specification_Id;
   procedure Set_Null_Exclusion_Present (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Allocator_Id
         | N_Formal_Object_Declaration_Id
         | N_Object_Declaration_Id
         | N_Subtype_Declaration_Id
         | N_Function_Specification_Id
         | N_Access_Function_Definition_Id
         | N_Access_Procedure_Definition_Id
         | N_Object_Renaming_Declaration_Id
         | N_Access_Definition_Id
         | N_Access_To_Object_Definition_Id
         | N_Component_Definition_Id
         | N_Derived_Type_Definition_Id
         | N_Discriminant_Specification_Id
         | N_Parameter_Specification_Id;

   function Null_Exclusion_In_Return_Present (N : N_Access_Function_Definition_Id) return Flag with Inline;
   procedure Set_Null_Exclusion_In_Return_Present (N : N_Access_Function_Definition_Id; Val : Flag := True) with Inline;

   function Null_Present (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Procedure_Specification_Id
         | N_Component_List_Id
         | N_Record_Definition_Id;
   procedure Set_Null_Present (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Procedure_Specification_Id
         | N_Component_List_Id
         | N_Record_Definition_Id;

   function Null_Record_Present (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Aggregate_Id
         | N_Extension_Aggregate_Id;
   procedure Set_Null_Record_Present (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Aggregate_Id
         | N_Extension_Aggregate_Id;

   function Null_Statement (N : N_Procedure_Specification_Id) return Node_Id with Inline;
   procedure Set_Null_Statement (N : N_Procedure_Specification_Id; Val : Node_Id) with Inline;

   function Object_Definition (N : N_Object_Declaration_Id) return Node_Id with Inline;
   procedure Set_Object_Definition (N : N_Object_Declaration_Id; Val : Node_Id) with Inline;

   function Of_Present (N : N_Iterator_Specification_Id) return Flag with Inline;
   procedure Set_Of_Present (N : N_Iterator_Specification_Id; Val : Flag := True) with Inline;

   function Original_Discriminant (N : N_Identifier_Id) return Node_Id with Inline;
   procedure Set_Original_Discriminant (N : N_Identifier_Id; Val : Node_Id) with Inline;

   function Original_Entity (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Integer_Literal_Id
         | N_Real_Literal_Id;
   procedure Set_Original_Entity (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Integer_Literal_Id
         | N_Real_Literal_Id;

   function Others_Discrete_Choices (N : N_Others_Choice_Id) return List_Id with Inline;
   procedure Set_Others_Discrete_Choices (N : N_Others_Choice_Id; Val : List_Id) with Inline;

   function Out_Present (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Formal_Object_Declaration_Id
         | N_Parameter_Specification_Id;
   procedure Set_Out_Present (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Formal_Object_Declaration_Id
         | N_Parameter_Specification_Id;

   function Parameter_Associations (N : Node_Id) return List_Id with Inline, Pre =>
      N in N_Function_Call_Id
         | N_Procedure_Call_Statement_Id
         | N_Entry_Call_Statement_Id;
   procedure Set_Parameter_Associations (N : Node_Id; Val : List_Id) with Inline, Pre =>
      N in N_Function_Call_Id
         | N_Procedure_Call_Statement_Id
         | N_Entry_Call_Statement_Id;

   function Parameter_Specifications (N : Node_Id) return List_Id with Inline, Pre =>
      N in N_Entry_Declaration_Id
         | N_Function_Specification_Id
         | N_Procedure_Specification_Id
         | N_Access_Function_Definition_Id
         | N_Access_Procedure_Definition_Id
         | N_Accept_Statement_Id
         | N_Entry_Body_Formal_Part_Id;
   procedure Set_Parameter_Specifications (N : Node_Id; Val : List_Id) with Inline, Pre =>
      N in N_Entry_Declaration_Id
         | N_Function_Specification_Id
         | N_Procedure_Specification_Id
         | N_Access_Function_Definition_Id
         | N_Access_Procedure_Definition_Id
         | N_Accept_Statement_Id
         | N_Entry_Body_Formal_Part_Id;

   function Parameter_Type (N : N_Parameter_Specification_Id) return Node_Id with Inline;
   procedure Set_Parameter_Type (N : N_Parameter_Specification_Id; Val : Node_Id) with Inline;

   function Parent_Spec (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Generic_Instantiation_Id
         | N_Package_Declaration_Id
         | N_Subprogram_Declaration_Id
         | N_Generic_Declaration_Id
         | N_Package_Renaming_Declaration_Id
         | N_Subprogram_Renaming_Declaration_Id
         | N_Generic_Renaming_Declaration_Id;
   procedure Set_Parent_Spec (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Generic_Instantiation_Id
         | N_Package_Declaration_Id
         | N_Subprogram_Declaration_Id
         | N_Generic_Declaration_Id
         | N_Package_Renaming_Declaration_Id
         | N_Subprogram_Renaming_Declaration_Id
         | N_Generic_Renaming_Declaration_Id;

   function Parent_With (N : N_With_Clause_Id) return Flag with Inline;
   procedure Set_Parent_With (N : N_With_Clause_Id; Val : Flag := True) with Inline;

   function Position (N : N_Component_Clause_Id) return Node_Id with Inline;
   procedure Set_Position (N : N_Component_Clause_Id; Val : Node_Id) with Inline;

   function Pragma_Argument_Associations (N : N_Pragma_Id) return List_Id with Inline;
   procedure Set_Pragma_Argument_Associations (N : N_Pragma_Id; Val : List_Id) with Inline;

   function Pragma_Identifier (N : N_Pragma_Id) return Node_Id with Inline;
   procedure Set_Pragma_Identifier (N : N_Pragma_Id; Val : Node_Id) with Inline;

   function Pragmas_After (N : Node_Id) return List_Id with Inline, Pre =>
      N in N_Terminate_Alternative_Id
         | N_Compilation_Unit_Aux_Id;
   procedure Set_Pragmas_After (N : Node_Id; Val : List_Id) with Inline, Pre =>
      N in N_Terminate_Alternative_Id
         | N_Compilation_Unit_Aux_Id;

   function Pragmas_Before (N : Node_Id) return List_Id with Inline, Pre =>
      N in N_Mod_Clause_Id
         | N_Accept_Alternative_Id
         | N_Delay_Alternative_Id
         | N_Terminate_Alternative_Id
         | N_Entry_Call_Alternative_Id
         | N_Triggering_Alternative_Id;
   procedure Set_Pragmas_Before (N : Node_Id; Val : List_Id) with Inline, Pre =>
      N in N_Mod_Clause_Id
         | N_Accept_Alternative_Id
         | N_Delay_Alternative_Id
         | N_Terminate_Alternative_Id
         | N_Entry_Call_Alternative_Id
         | N_Triggering_Alternative_Id;

   function Pre_Post_Conditions (N : N_Contract_Id) return Node_Id with Inline;
   procedure Set_Pre_Post_Conditions (N : N_Contract_Id; Val : Node_Id) with Inline;

   function Prefix (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Expanded_Name_Id
         | N_Attribute_Reference_Id
         | N_Explicit_Dereference_Id
         | N_Indexed_Component_Id
         | N_Reference_Id
         | N_Selected_Component_Id
         | N_Slice_Id;
   procedure Set_Prefix (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Expanded_Name_Id
         | N_Attribute_Reference_Id
         | N_Explicit_Dereference_Id
         | N_Indexed_Component_Id
         | N_Reference_Id
         | N_Selected_Component_Id
         | N_Slice_Id;

   function Premature_Use (N : N_Incomplete_Type_Declaration_Id) return Node_Id with Inline;
   procedure Set_Premature_Use (N : N_Incomplete_Type_Declaration_Id; Val : Node_Id) with Inline;

   function Present_Expr (N : N_Variant_Id) return Valid_Uint with Inline;
   procedure Set_Present_Expr (N : N_Variant_Id; Val : Valid_Uint) with Inline;

   function Prev_Ids (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Component_Declaration_Id
         | N_Formal_Object_Declaration_Id
         | N_Object_Declaration_Id
         | N_Use_Package_Clause_Id
         | N_Discriminant_Specification_Id
         | N_Exception_Declaration_Id
         | N_Number_Declaration_Id
         | N_Parameter_Specification_Id
         | N_Use_Type_Clause_Id;
   procedure Set_Prev_Ids (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Component_Declaration_Id
         | N_Formal_Object_Declaration_Id
         | N_Object_Declaration_Id
         | N_Use_Package_Clause_Id
         | N_Discriminant_Specification_Id
         | N_Exception_Declaration_Id
         | N_Number_Declaration_Id
         | N_Parameter_Specification_Id
         | N_Use_Type_Clause_Id;

   function Prev_Use_Clause (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Use_Package_Clause_Id
         | N_Use_Type_Clause_Id;
   procedure Set_Prev_Use_Clause (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Use_Package_Clause_Id
         | N_Use_Type_Clause_Id;

   function Print_In_Hex (N : N_Integer_Literal_Id) return Flag with Inline;
   procedure Set_Print_In_Hex (N : N_Integer_Literal_Id; Val : Flag := True) with Inline;

   function Private_Declarations (N : Node_Id) return List_Id with Inline, Pre =>
      N in N_Package_Specification_Id
         | N_Protected_Definition_Id
         | N_Task_Definition_Id;
   procedure Set_Private_Declarations (N : Node_Id; Val : List_Id) with Inline, Pre =>
      N in N_Package_Specification_Id
         | N_Protected_Definition_Id
         | N_Task_Definition_Id;

   function Private_Present (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Compilation_Unit_Id
         | N_Formal_Derived_Type_Definition_Id
         | N_With_Clause_Id;
   procedure Set_Private_Present (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Compilation_Unit_Id
         | N_Formal_Derived_Type_Definition_Id
         | N_With_Clause_Id;

   function Procedure_To_Call (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Allocator_Id
         | N_Free_Statement_Id
         | N_Simple_Return_Statement_Id
         | N_Extended_Return_Statement_Id;
   procedure Set_Procedure_To_Call (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Allocator_Id
         | N_Free_Statement_Id
         | N_Simple_Return_Statement_Id
         | N_Extended_Return_Statement_Id;

   function Proper_Body (N : N_Subunit_Id) return Node_Id with Inline;
   procedure Set_Proper_Body (N : N_Subunit_Id; Val : Node_Id) with Inline;

   function Protected_Definition (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Protected_Type_Declaration_Id
         | N_Single_Protected_Declaration_Id;
   procedure Set_Protected_Definition (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Protected_Type_Declaration_Id
         | N_Single_Protected_Declaration_Id;

   function Protected_Present (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Access_Function_Definition_Id
         | N_Access_Procedure_Definition_Id
         | N_Derived_Type_Definition_Id
         | N_Record_Definition_Id;
   procedure Set_Protected_Present (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Access_Function_Definition_Id
         | N_Access_Procedure_Definition_Id
         | N_Derived_Type_Definition_Id
         | N_Record_Definition_Id;

   function Raises_Constraint_Error (N : N_Subexpr_Id) return Flag with Inline;
   procedure Set_Raises_Constraint_Error (N : N_Subexpr_Id; Val : Flag := True) with Inline;

   function Range_Constraint (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Delta_Constraint_Id
         | N_Digits_Constraint_Id;
   procedure Set_Range_Constraint (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Delta_Constraint_Id
         | N_Digits_Constraint_Id;

   function Range_Expression (N : N_Range_Constraint_Id) return Node_Id with Inline;
   procedure Set_Range_Expression (N : N_Range_Constraint_Id; Val : Node_Id) with Inline;

   function Real_Range_Specification (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Decimal_Fixed_Point_Definition_Id
         | N_Floating_Point_Definition_Id
         | N_Ordinary_Fixed_Point_Definition_Id;
   procedure Set_Real_Range_Specification (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Decimal_Fixed_Point_Definition_Id
         | N_Floating_Point_Definition_Id
         | N_Ordinary_Fixed_Point_Definition_Id;

   function Realval (N : N_Real_Literal_Id) return Ureal with Inline;
   procedure Set_Realval (N : N_Real_Literal_Id; Val : Ureal) with Inline;

   function Reason (N : Node_Id) return Unat with Inline, Pre =>
      N in N_Raise_Constraint_Error_Id
         | N_Raise_Program_Error_Id
         | N_Raise_Storage_Error_Id;
   procedure Set_Reason (N : Node_Id; Val : Unat) with Inline, Pre =>
      N in N_Raise_Constraint_Error_Id
         | N_Raise_Program_Error_Id
         | N_Raise_Storage_Error_Id;

   function Record_Extension_Part (N : N_Derived_Type_Definition_Id) return Node_Id with Inline;
   procedure Set_Record_Extension_Part (N : N_Derived_Type_Definition_Id; Val : Node_Id) with Inline;

   function Redundant_Use (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Expanded_Name_Id
         | N_Identifier_Id
         | N_Attribute_Reference_Id;
   procedure Set_Redundant_Use (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Expanded_Name_Id
         | N_Identifier_Id
         | N_Attribute_Reference_Id;

   function Renaming_Exception (N : N_Exception_Declaration_Id) return Node_Id with Inline;
   procedure Set_Renaming_Exception (N : N_Exception_Declaration_Id; Val : Node_Id) with Inline;

   function Result_Definition (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Function_Specification_Id
         | N_Access_Function_Definition_Id;
   procedure Set_Result_Definition (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Function_Specification_Id
         | N_Access_Function_Definition_Id;

   function Return_Object_Declarations (N : N_Extended_Return_Statement_Id) return List_Id with Inline;
   procedure Set_Return_Object_Declarations (N : N_Extended_Return_Statement_Id; Val : List_Id) with Inline;

   function Return_Statement_Entity (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Simple_Return_Statement_Id
         | N_Extended_Return_Statement_Id;
   procedure Set_Return_Statement_Entity (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Simple_Return_Statement_Id
         | N_Extended_Return_Statement_Id;

   function Reverse_Present (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Iterator_Specification_Id
         | N_Loop_Parameter_Specification_Id;
   procedure Set_Reverse_Present (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Iterator_Specification_Id
         | N_Loop_Parameter_Specification_Id;

   function Right_Opnd (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Op_Add_Id
         | N_Op_Concat_Id
         | N_Op_Expon_Id
         | N_Op_Subtract_Id
         | N_Op_Divide_Id
         | N_Op_Mod_Id
         | N_Op_Multiply_Id
         | N_Op_Rem_Id
         | N_Op_And_Id
         | N_Op_Eq_Id
         | N_Op_Ge_Id
         | N_Op_Gt_Id
         | N_Op_Le_Id
         | N_Op_Lt_Id
         | N_Op_Ne_Id
         | N_Op_Or_Id
         | N_Op_Xor_Id
         | N_Op_Rotate_Left_Id
         | N_Op_Rotate_Right_Id
         | N_Op_Shift_Left_Id
         | N_Op_Shift_Right_Id
         | N_Op_Shift_Right_Arithmetic_Id
         | N_Op_Abs_Id
         | N_Op_Minus_Id
         | N_Op_Not_Id
         | N_Op_Plus_Id
         | N_In_Id
         | N_Not_In_Id
         | N_And_Then_Id
         | N_Or_Else_Id;
   procedure Set_Right_Opnd (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Op_Add_Id
         | N_Op_Concat_Id
         | N_Op_Expon_Id
         | N_Op_Subtract_Id
         | N_Op_Divide_Id
         | N_Op_Mod_Id
         | N_Op_Multiply_Id
         | N_Op_Rem_Id
         | N_Op_And_Id
         | N_Op_Eq_Id
         | N_Op_Ge_Id
         | N_Op_Gt_Id
         | N_Op_Le_Id
         | N_Op_Lt_Id
         | N_Op_Ne_Id
         | N_Op_Or_Id
         | N_Op_Xor_Id
         | N_Op_Rotate_Left_Id
         | N_Op_Rotate_Right_Id
         | N_Op_Shift_Left_Id
         | N_Op_Shift_Right_Id
         | N_Op_Shift_Right_Arithmetic_Id
         | N_Op_Abs_Id
         | N_Op_Minus_Id
         | N_Op_Not_Id
         | N_Op_Plus_Id
         | N_In_Id
         | N_Not_In_Id
         | N_And_Then_Id
         | N_Or_Else_Id;

   function Rounded_Result (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Op_Divide_Id
         | N_Op_Multiply_Id
         | N_Type_Conversion_Id;
   procedure Set_Rounded_Result (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Op_Divide_Id
         | N_Op_Multiply_Id
         | N_Type_Conversion_Id;

   function Save_Invocation_Graph_Of_Body (N : N_Compilation_Unit_Id) return Flag with Inline;
   procedure Set_Save_Invocation_Graph_Of_Body (N : N_Compilation_Unit_Id; Val : Flag := True) with Inline;

   function SCIL_Controlling_Tag (N : N_SCIL_Dispatching_Call_Id) return Node_Id with Inline;
   procedure Set_SCIL_Controlling_Tag (N : N_SCIL_Dispatching_Call_Id; Val : Node_Id) with Inline;

   function SCIL_Entity (N : N_SCIL_Node_Id) return Node_Id with Inline;
   procedure Set_SCIL_Entity (N : N_SCIL_Node_Id; Val : Node_Id) with Inline;

   function SCIL_Tag_Value (N : N_SCIL_Membership_Test_Id) return Node_Id with Inline;
   procedure Set_SCIL_Tag_Value (N : N_SCIL_Membership_Test_Id; Val : Node_Id) with Inline;

   function SCIL_Target_Prim (N : N_SCIL_Dispatching_Call_Id) return Node_Id with Inline;
   procedure Set_SCIL_Target_Prim (N : N_SCIL_Dispatching_Call_Id; Val : Node_Id) with Inline;

   function Scope (N : N_Entity_Id) return Node_Id with Inline;
   procedure Set_Scope (N : N_Entity_Id; Val : Node_Id) with Inline;

   function Select_Alternatives (N : N_Selective_Accept_Id) return List_Id with Inline;
   procedure Set_Select_Alternatives (N : N_Selective_Accept_Id; Val : List_Id) with Inline;

   function Selector_Name (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Expanded_Name_Id
         | N_Selected_Component_Id
         | N_Generic_Association_Id
         | N_Parameter_Association_Id;
   procedure Set_Selector_Name (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Expanded_Name_Id
         | N_Selected_Component_Id
         | N_Generic_Association_Id
         | N_Parameter_Association_Id;

   function Selector_Names (N : N_Discriminant_Association_Id) return List_Id with Inline;
   procedure Set_Selector_Names (N : N_Discriminant_Association_Id; Val : List_Id) with Inline;

   function Shift_Count_OK (N : N_Op_Shift_Id) return Flag with Inline;
   procedure Set_Shift_Count_OK (N : N_Op_Shift_Id; Val : Flag := True) with Inline;

   function Source_Type (N : N_Validate_Unchecked_Conversion_Id) return Node_Id with Inline;
   procedure Set_Source_Type (N : N_Validate_Unchecked_Conversion_Id; Val : Node_Id) with Inline;

   function Specification (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Expression_Function_Id
         | N_Subprogram_Body_Stub_Id
         | N_Subprogram_Body_Id
         | N_Package_Declaration_Id
         | N_Subprogram_Declaration_Id
         | N_Generic_Package_Declaration_Id
         | N_Generic_Subprogram_Declaration_Id
         | N_Subprogram_Renaming_Declaration_Id
         | N_Formal_Abstract_Subprogram_Declaration_Id
         | N_Formal_Concrete_Subprogram_Declaration_Id
         | N_Abstract_Subprogram_Declaration_Id;
   procedure Set_Specification (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Expression_Function_Id
         | N_Subprogram_Body_Stub_Id
         | N_Subprogram_Body_Id
         | N_Package_Declaration_Id
         | N_Subprogram_Declaration_Id
         | N_Generic_Package_Declaration_Id
         | N_Generic_Subprogram_Declaration_Id
         | N_Subprogram_Renaming_Declaration_Id
         | N_Formal_Abstract_Subprogram_Declaration_Id
         | N_Formal_Concrete_Subprogram_Declaration_Id
         | N_Abstract_Subprogram_Declaration_Id;

   function Split_PPC (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Aspect_Specification_Id
         | N_Pragma_Id;
   procedure Set_Split_PPC (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Aspect_Specification_Id
         | N_Pragma_Id;

   function Statements (N : Node_Id) return List_Id with Inline, Pre =>
      N in N_Loop_Statement_Id
         | N_Accept_Alternative_Id
         | N_Delay_Alternative_Id
         | N_Abortable_Part_Id
         | N_Case_Statement_Alternative_Id
         | N_Entry_Call_Alternative_Id
         | N_Exception_Handler_Id
         | N_Handled_Sequence_Of_Statements_Id
         | N_Triggering_Alternative_Id;
   procedure Set_Statements (N : Node_Id; Val : List_Id) with Inline, Pre =>
      N in N_Loop_Statement_Id
         | N_Accept_Alternative_Id
         | N_Delay_Alternative_Id
         | N_Abortable_Part_Id
         | N_Case_Statement_Alternative_Id
         | N_Entry_Call_Alternative_Id
         | N_Exception_Handler_Id
         | N_Handled_Sequence_Of_Statements_Id
         | N_Triggering_Alternative_Id;

   function Storage_Pool (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Allocator_Id
         | N_Free_Statement_Id
         | N_Simple_Return_Statement_Id
         | N_Extended_Return_Statement_Id;
   procedure Set_Storage_Pool (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Allocator_Id
         | N_Free_Statement_Id
         | N_Simple_Return_Statement_Id
         | N_Extended_Return_Statement_Id;

   function Subpool_Handle_Name (N : N_Allocator_Id) return Node_Id with Inline;
   procedure Set_Subpool_Handle_Name (N : N_Allocator_Id; Val : Node_Id) with Inline;

   function Strval (N : Node_Id) return String_Id with Inline, Pre =>
      N in N_Operator_Symbol_Id
         | N_String_Literal_Id;
   procedure Set_Strval (N : Node_Id; Val : String_Id) with Inline, Pre =>
      N in N_Operator_Symbol_Id
         | N_String_Literal_Id;

   function Subtype_Indication (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Iterator_Specification_Id
         | N_Private_Extension_Declaration_Id
         | N_Subtype_Declaration_Id
         | N_Access_To_Object_Definition_Id
         | N_Component_Definition_Id
         | N_Derived_Type_Definition_Id;
   procedure Set_Subtype_Indication (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Iterator_Specification_Id
         | N_Private_Extension_Declaration_Id
         | N_Subtype_Declaration_Id
         | N_Access_To_Object_Definition_Id
         | N_Component_Definition_Id
         | N_Derived_Type_Definition_Id;

   function Subtype_Mark (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Qualified_Expression_Id
         | N_Type_Conversion_Id
         | N_Unchecked_Type_Conversion_Id
         | N_Subtype_Indication_Id
         | N_Formal_Object_Declaration_Id
         | N_Object_Renaming_Declaration_Id
         | N_Access_Definition_Id
         | N_Formal_Derived_Type_Definition_Id
         | N_Use_Type_Clause_Id;
   procedure Set_Subtype_Mark (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Qualified_Expression_Id
         | N_Type_Conversion_Id
         | N_Unchecked_Type_Conversion_Id
         | N_Subtype_Indication_Id
         | N_Formal_Object_Declaration_Id
         | N_Object_Renaming_Declaration_Id
         | N_Access_Definition_Id
         | N_Formal_Derived_Type_Definition_Id
         | N_Use_Type_Clause_Id;

   function Subtype_Marks (N : N_Unconstrained_Array_Definition_Id) return List_Id with Inline;
   procedure Set_Subtype_Marks (N : N_Unconstrained_Array_Definition_Id; Val : List_Id) with Inline;

   function Suppress_Assignment_Checks (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Object_Declaration_Id
         | N_Assignment_Statement_Id;
   procedure Set_Suppress_Assignment_Checks (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Object_Declaration_Id
         | N_Assignment_Statement_Id;

   function Suppress_Loop_Warnings (N : N_Loop_Statement_Id) return Flag with Inline;
   procedure Set_Suppress_Loop_Warnings (N : N_Loop_Statement_Id; Val : Flag := True) with Inline;

   function Synchronized_Present (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Private_Extension_Declaration_Id
         | N_Derived_Type_Definition_Id
         | N_Formal_Derived_Type_Definition_Id
         | N_Record_Definition_Id;
   procedure Set_Synchronized_Present (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Private_Extension_Declaration_Id
         | N_Derived_Type_Definition_Id
         | N_Formal_Derived_Type_Definition_Id
         | N_Record_Definition_Id;

   function Tagged_Present (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Incomplete_Type_Declaration_Id
         | N_Private_Type_Declaration_Id
         | N_Formal_Private_Type_Definition_Id
         | N_Formal_Incomplete_Type_Definition_Id
         | N_Record_Definition_Id;
   procedure Set_Tagged_Present (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Incomplete_Type_Declaration_Id
         | N_Private_Type_Declaration_Id
         | N_Formal_Private_Type_Definition_Id
         | N_Formal_Incomplete_Type_Definition_Id
         | N_Record_Definition_Id;

   function Target (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Call_Marker_Id
         | N_Variable_Reference_Marker_Id;
   procedure Set_Target (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Call_Marker_Id
         | N_Variable_Reference_Marker_Id;

   function Target_Type (N : N_Validate_Unchecked_Conversion_Id) return Node_Id with Inline;
   procedure Set_Target_Type (N : N_Validate_Unchecked_Conversion_Id; Val : Node_Id) with Inline;

   function Task_Definition (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Task_Type_Declaration_Id
         | N_Single_Task_Declaration_Id;
   procedure Set_Task_Definition (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Task_Type_Declaration_Id
         | N_Single_Task_Declaration_Id;

   function Task_Present (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Derived_Type_Definition_Id
         | N_Record_Definition_Id;
   procedure Set_Task_Present (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Derived_Type_Definition_Id
         | N_Record_Definition_Id;

   function Then_Actions (N : N_If_Expression_Id) return List_Id with Inline;
   procedure Set_Then_Actions (N : N_If_Expression_Id; Val : List_Id) with Inline;

   function Then_Statements (N : Node_Id) return List_Id with Inline, Pre =>
      N in N_If_Statement_Id
         | N_Elsif_Part_Id;
   procedure Set_Then_Statements (N : Node_Id; Val : List_Id) with Inline, Pre =>
      N in N_If_Statement_Id
         | N_Elsif_Part_Id;

   function Triggering_Alternative (N : N_Asynchronous_Select_Id) return Node_Id with Inline;
   procedure Set_Triggering_Alternative (N : N_Asynchronous_Select_Id; Val : Node_Id) with Inline;

   function Triggering_Statement (N : N_Triggering_Alternative_Id) return Node_Id with Inline;
   procedure Set_Triggering_Statement (N : N_Triggering_Alternative_Id; Val : Node_Id) with Inline;

   function TSS_Elist (N : N_Freeze_Entity_Id) return Elist_Id with Inline;
   procedure Set_TSS_Elist (N : N_Freeze_Entity_Id; Val : Elist_Id) with Inline;

   function Type_Definition (N : N_Full_Type_Declaration_Id) return Node_Id with Inline;
   procedure Set_Type_Definition (N : N_Full_Type_Declaration_Id; Val : Node_Id) with Inline;

   function Uneval_Old_Accept (N : N_Pragma_Id) return Flag with Inline;
   procedure Set_Uneval_Old_Accept (N : N_Pragma_Id; Val : Flag := True) with Inline;

   function Uneval_Old_Warn (N : N_Pragma_Id) return Flag with Inline;
   procedure Set_Uneval_Old_Warn (N : N_Pragma_Id; Val : Flag := True) with Inline;

   function Unit (N : N_Compilation_Unit_Id) return Node_Id with Inline;
   procedure Set_Unit (N : N_Compilation_Unit_Id; Val : Node_Id) with Inline;

   function Unknown_Discriminants_Present (N : Node_Id) return Flag with Inline, Pre =>
      N in N_Formal_Type_Declaration_Id
         | N_Incomplete_Type_Declaration_Id
         | N_Private_Extension_Declaration_Id
         | N_Private_Type_Declaration_Id;
   procedure Set_Unknown_Discriminants_Present (N : Node_Id; Val : Flag := True) with Inline, Pre =>
      N in N_Formal_Type_Declaration_Id
         | N_Incomplete_Type_Declaration_Id
         | N_Private_Extension_Declaration_Id
         | N_Private_Type_Declaration_Id;

   function Unreferenced_In_Spec (N : N_With_Clause_Id) return Flag with Inline;
   procedure Set_Unreferenced_In_Spec (N : N_With_Clause_Id; Val : Flag := True) with Inline;

   function Variant_Part (N : N_Component_List_Id) return Node_Id with Inline;
   procedure Set_Variant_Part (N : N_Component_List_Id; Val : Node_Id) with Inline;

   function Variants (N : N_Variant_Part_Id) return List_Id with Inline;
   procedure Set_Variants (N : N_Variant_Part_Id; Val : List_Id) with Inline;

   function Visible_Declarations (N : Node_Id) return List_Id with Inline, Pre =>
      N in N_Package_Specification_Id
         | N_Protected_Definition_Id
         | N_Task_Definition_Id;
   procedure Set_Visible_Declarations (N : Node_Id; Val : List_Id) with Inline, Pre =>
      N in N_Package_Specification_Id
         | N_Protected_Definition_Id
         | N_Task_Definition_Id;

   function Uninitialized_Variable (N : Node_Id) return Node_Id with Inline, Pre =>
      N in N_Private_Extension_Declaration_Id
         | N_Formal_Private_Type_Definition_Id;
   procedure Set_Uninitialized_Variable (N : Node_Id; Val : Node_Id) with Inline, Pre =>
      N in N_Private_Extension_Declaration_Id
         | N_Formal_Private_Type_Definition_Id;

   function Used_Operations (N : N_Use_Type_Clause_Id) return Elist_Id with Inline;
   procedure Set_Used_Operations (N : N_Use_Type_Clause_Id; Val : Elist_Id) with Inline;

   function Was_Attribute_Reference (N : N_Subprogram_Body_Id) return Flag with Inline;
   procedure Set_Was_Attribute_Reference (N : N_Subprogram_Body_Id; Val : Flag := True) with Inline;

   function Was_Default_Init_Box_Association (N : N_Component_Association_Id) return Flag with Inline;
   procedure Set_Was_Default_Init_Box_Association (N : N_Component_Association_Id; Val : Flag := True) with Inline;

   function Was_Expression_Function (N : N_Subprogram_Body_Id) return Flag with Inline;
   procedure Set_Was_Expression_Function (N : N_Subprogram_Body_Id; Val : Flag := True) with Inline;

   function Was_Originally_Stub (N : N_Proper_Body_Id) return Flag with Inline;
   procedure Set_Was_Originally_Stub (N : N_Proper_Body_Id; Val : Flag := True) with Inline;

   --  Table of fields that should be traversed by Traverse subprograms.
   --  Each entry is an array of offsets in slots of fields to be
   --  traversed, terminated by a sentinel equal to No_Field_Offset.

   subtype Traversed_Offset_Array is Offset_Array (0 .. 4 + 1);
   Traversed_Fields : constant array (Node_Kind) of Traversed_Offset_Array :=
     (N_Unused_At_Start => (others => No_Field_Offset),
      N_At_Clause => (6, 2, others => No_Field_Offset),
      N_Component_Clause => (1, 6, 2, 5, others => No_Field_Offset),
      N_Enumeration_Representation_Clause => (6, 1, others => No_Field_Offset),
      N_Mod_Clause => (2, 5, others => No_Field_Offset),
      N_Record_Representation_Clause => (6, 2, 1, others => No_Field_Offset),
      N_Attribute_Definition_Clause => (7, 2, others => No_Field_Offset),
      N_Empty => (others => No_Field_Offset),
      N_Pragma_Argument_Association => (2, others => No_Field_Offset),
      N_Error => (others => No_Field_Offset),
      N_Defining_Character_Literal => (others => No_Field_Offset),
      N_Defining_Identifier => (others => No_Field_Offset),
      N_Defining_Operator_Symbol => (others => No_Field_Offset),
      N_Expanded_Name => (2, 7, others => No_Field_Offset),
      N_Identifier => (others => No_Field_Offset),
      N_Operator_Symbol => (others => No_Field_Offset),
      N_Character_Literal => (others => No_Field_Offset),
      N_Op_Add => (2, 7, others => No_Field_Offset),
      N_Op_Concat => (2, 7, others => No_Field_Offset),
      N_Op_Expon => (2, 7, others => No_Field_Offset),
      N_Op_Subtract => (2, 7, others => No_Field_Offset),
      N_Op_Divide => (2, 7, others => No_Field_Offset),
      N_Op_Mod => (2, 7, others => No_Field_Offset),
      N_Op_Multiply => (2, 7, others => No_Field_Offset),
      N_Op_Rem => (2, 7, others => No_Field_Offset),
      N_Op_And => (2, 7, others => No_Field_Offset),
      N_Op_Eq => (2, 7, others => No_Field_Offset),
      N_Op_Ge => (2, 7, others => No_Field_Offset),
      N_Op_Gt => (2, 7, others => No_Field_Offset),
      N_Op_Le => (2, 7, others => No_Field_Offset),
      N_Op_Lt => (2, 7, others => No_Field_Offset),
      N_Op_Ne => (2, 7, others => No_Field_Offset),
      N_Op_Or => (2, 7, others => No_Field_Offset),
      N_Op_Xor => (2, 7, others => No_Field_Offset),
      N_Op_Rotate_Left => (2, 7, others => No_Field_Offset),
      N_Op_Rotate_Right => (2, 7, others => No_Field_Offset),
      N_Op_Shift_Left => (2, 7, others => No_Field_Offset),
      N_Op_Shift_Right => (2, 7, others => No_Field_Offset),
      N_Op_Shift_Right_Arithmetic => (2, 7, others => No_Field_Offset),
      N_Op_Abs => (2, others => No_Field_Offset),
      N_Op_Minus => (2, others => No_Field_Offset),
      N_Op_Not => (2, others => No_Field_Offset),
      N_Op_Plus => (2, others => No_Field_Offset),
      N_Attribute_Reference => (2, 6, others => No_Field_Offset),
      N_In => (2, 6, 7, others => No_Field_Offset),
      N_Not_In => (2, 6, 7, others => No_Field_Offset),
      N_And_Then => (2, 7, others => No_Field_Offset),
      N_Or_Else => (2, 7, others => No_Field_Offset),
      N_Function_Call => (7, 2, others => No_Field_Offset),
      N_Procedure_Call_Statement => (7, 2, others => No_Field_Offset),
      N_Raise_Constraint_Error => (6, others => No_Field_Offset),
      N_Raise_Program_Error => (6, others => No_Field_Offset),
      N_Raise_Storage_Error => (6, others => No_Field_Offset),
      N_Integer_Literal => (others => No_Field_Offset),
      N_Real_Literal => (others => No_Field_Offset),
      N_String_Literal => (others => No_Field_Offset),
      N_Interpolated_String_Literal => (6, others => No_Field_Offset),
      N_Explicit_Dereference => (2, others => No_Field_Offset),
      N_Expression_With_Actions => (6, 2, others => No_Field_Offset),
      N_If_Expression => (6, others => No_Field_Offset),
      N_Indexed_Component => (2, 6, others => No_Field_Offset),
      N_Null => (others => No_Field_Offset),
      N_Qualified_Expression => (6, 2, others => No_Field_Offset),
      N_Quantified_Expression => (8, 7, 6, others => No_Field_Offset),
      N_Aggregate => (6, 7, others => No_Field_Offset),
      N_Allocator => (2, 1, others => No_Field_Offset),
      N_Case_Expression => (2, 6, others => No_Field_Offset),
      N_Delta_Aggregate => (2, 7, others => No_Field_Offset),
      N_Extension_Aggregate => (2, 6, 7, others => No_Field_Offset),
      N_Raise_Expression => (7, 2, others => No_Field_Offset),
      N_Range => (2, 1, others => No_Field_Offset),
      N_Reference => (2, others => No_Field_Offset),
      N_Selected_Component => (2, 7, others => No_Field_Offset),
      N_Slice => (2, 1, others => No_Field_Offset),
      N_Target_Name => (others => No_Field_Offset),
      N_Type_Conversion => (6, 2, others => No_Field_Offset),
      N_Unchecked_Expression => (2, others => No_Field_Offset),
      N_Unchecked_Type_Conversion => (6, 2, others => No_Field_Offset),
      N_Subtype_Indication => (6, 1, others => No_Field_Offset),
      N_Component_Declaration => (1, 5, 2, others => No_Field_Offset),
      N_Entry_Declaration => (1, 2, 5, others => No_Field_Offset),
      N_Expression_Function => (1, 2, others => No_Field_Offset),
      N_Formal_Object_Declaration => (1, 6, 8, 5, others => No_Field_Offset),
      N_Formal_Type_Declaration => (1, 6, 5, 2, others => No_Field_Offset),
      N_Full_Type_Declaration => (1, 5, 6, others => No_Field_Offset),
      N_Incomplete_Type_Declaration => (1, 5, others => No_Field_Offset),
      N_Iterator_Specification => (1, 7, 5, 2, others => No_Field_Offset),
      N_Loop_Parameter_Specification => (1, 5, 2, others => No_Field_Offset),
      N_Object_Declaration => (1, 7, 2, others => No_Field_Offset),
      N_Protected_Type_Declaration => (1, 5, 7, 2, others => No_Field_Offset),
      N_Private_Extension_Declaration => (1, 5, 2, 7, others => No_Field_Offset),
      N_Private_Type_Declaration => (1, 5, others => No_Field_Offset),
      N_Subtype_Declaration => (1, 2, others => No_Field_Offset),
      N_Function_Specification => (1, 5, 6, others => No_Field_Offset),
      N_Procedure_Specification => (1, 5, others => No_Field_Offset),
      N_Exception_Declaration => (1, others => No_Field_Offset),
      N_Formal_Package_Declaration => (1, 7, 5, others => No_Field_Offset),
      N_Access_Function_Definition => (5, 6, others => No_Field_Offset),
      N_Access_Procedure_Definition => (5, others => No_Field_Offset),
      N_Task_Type_Declaration => (1, 5, 7, 2, others => No_Field_Offset),
      N_Package_Body_Stub => (1, others => No_Field_Offset),
      N_Protected_Body_Stub => (1, others => No_Field_Offset),
      N_Subprogram_Body_Stub => (1, others => No_Field_Offset),
      N_Task_Body_Stub => (1, others => No_Field_Offset),
      N_Function_Instantiation => (1, 7, 5, others => No_Field_Offset),
      N_Procedure_Instantiation => (1, 7, 5, others => No_Field_Offset),
      N_Package_Instantiation => (1, 7, 5, others => No_Field_Offset),
      N_Package_Body => (1, 7, 8, 2, others => No_Field_Offset),
      N_Subprogram_Body => (1, 7, 8, 2, others => No_Field_Offset),
      N_Protected_Body => (1, 7, 5, others => No_Field_Offset),
      N_Task_Body => (1, 7, 8, 2, others => No_Field_Offset),
      N_Implicit_Label_Declaration => (1, others => No_Field_Offset),
      N_Package_Declaration => (1, others => No_Field_Offset),
      N_Single_Task_Declaration => (1, 7, 2, others => No_Field_Offset),
      N_Subprogram_Declaration => (1, others => No_Field_Offset),
      N_Use_Package_Clause => (7, others => No_Field_Offset),
      N_Generic_Package_Declaration => (1, 7, others => No_Field_Offset),
      N_Generic_Subprogram_Declaration => (1, 7, others => No_Field_Offset),
      N_Constrained_Array_Definition => (1, 5, others => No_Field_Offset),
      N_Unconstrained_Array_Definition => (1, 5, others => No_Field_Offset),
      N_Exception_Renaming_Declaration => (1, 7, others => No_Field_Offset),
      N_Object_Renaming_Declaration => (1, 6, 8, 7, others => No_Field_Offset),
      N_Package_Renaming_Declaration => (1, 7, others => No_Field_Offset),
      N_Subprogram_Renaming_Declaration => (1, 7, others => No_Field_Offset),
      N_Generic_Function_Renaming_Declaration => (1, 7, others => No_Field_Offset),
      N_Generic_Package_Renaming_Declaration => (1, 7, others => No_Field_Offset),
      N_Generic_Procedure_Renaming_Declaration => (1, 7, others => No_Field_Offset),
      N_Abort_Statement => (1, others => No_Field_Offset),
      N_Accept_Statement => (1, 2, 5, 8, 7, others => No_Field_Offset),
      N_Assignment_Statement => (7, 2, others => No_Field_Offset),
      N_Asynchronous_Select => (2, 1, others => No_Field_Offset),
      N_Block_Statement => (6, 7, 8, 2, others => No_Field_Offset),
      N_Case_Statement => (2, 6, others => No_Field_Offset),
      N_Code_Statement => (2, others => No_Field_Offset),
      N_Compound_Statement => (6, others => No_Field_Offset),
      N_Conditional_Entry_Call => (1, 5, others => No_Field_Offset),
      N_Delay_Relative_Statement => (2, others => No_Field_Offset),
      N_Delay_Until_Statement => (2, others => No_Field_Offset),
      N_Entry_Call_Statement => (7, 2, others => No_Field_Offset),
      N_Free_Statement => (2, others => No_Field_Offset),
      N_Goto_Statement => (7, others => No_Field_Offset),
      N_Goto_When_Statement => (7, 6, others => No_Field_Offset),
      N_Loop_Statement => (6, 2, 1, 5, others => No_Field_Offset),
      N_Null_Statement => (others => No_Field_Offset),
      N_Raise_Statement => (7, 2, others => No_Field_Offset),
      N_Raise_When_Statement => (7, 2, 6, others => No_Field_Offset),
      N_Requeue_Statement => (7, others => No_Field_Offset),
      N_Simple_Return_Statement => (2, others => No_Field_Offset),
      N_Extended_Return_Statement => (2, 8, others => No_Field_Offset),
      N_Return_When_Statement => (2, 6, others => No_Field_Offset),
      N_Selective_Accept => (1, 5, others => No_Field_Offset),
      N_Timed_Entry_Call => (1, 2, others => No_Field_Offset),
      N_Exit_Statement => (7, 6, others => No_Field_Offset),
      N_If_Statement => (6, 2, 7, 5, others => No_Field_Offset),
      N_Accept_Alternative => (7, 6, 1, 5, others => No_Field_Offset),
      N_Delay_Alternative => (2, 6, 1, 5, others => No_Field_Offset),
      N_Elsif_Part => (6, 2, others => No_Field_Offset),
      N_Entry_Body_Formal_Part => (1, 5, 6, others => No_Field_Offset),
      N_Iteration_Scheme => (6, 8, 7, others => No_Field_Offset),
      N_Terminate_Alternative => (6, 5, 1, others => No_Field_Offset),
      N_Formal_Abstract_Subprogram_Declaration => (1, 5, 2, others => No_Field_Offset),
      N_Formal_Concrete_Subprogram_Declaration => (1, 5, 2, others => No_Field_Offset),
      N_Push_Constraint_Error_Label => (others => No_Field_Offset),
      N_Push_Program_Error_Label => (others => No_Field_Offset),
      N_Push_Storage_Error_Label => (others => No_Field_Offset),
      N_Pop_Constraint_Error_Label => (others => No_Field_Offset),
      N_Pop_Program_Error_Label => (others => No_Field_Offset),
      N_Pop_Storage_Error_Label => (others => No_Field_Offset),
      N_SCIL_Dispatch_Table_Tag_Init => (others => No_Field_Offset),
      N_SCIL_Dispatching_Call => (others => No_Field_Offset),
      N_SCIL_Membership_Test => (others => No_Field_Offset),
      N_Abortable_Part => (1, others => No_Field_Offset),
      N_Abstract_Subprogram_Declaration => (1, others => No_Field_Offset),
      N_Access_Definition => (6, 1, others => No_Field_Offset),
      N_Access_To_Object_Definition => (2, others => No_Field_Offset),
      N_Aspect_Specification => (6, 2, others => No_Field_Offset),
      N_Call_Marker => (others => No_Field_Offset),
      N_Case_Expression_Alternative => (7, 2, others => No_Field_Offset),
      N_Case_Statement_Alternative => (7, 1, others => No_Field_Offset),
      N_Compilation_Unit => (5, 7, 1, others => No_Field_Offset),
      N_Compilation_Unit_Aux => (7, 6, 1, 2, others => No_Field_Offset),
      N_Component_Association => (6, 2, others => No_Field_Offset),
      N_Component_Definition => (2, 8, others => No_Field_Offset),
      N_Component_List => (1, 2, others => No_Field_Offset),
      N_Contract => (others => No_Field_Offset),
      N_Derived_Type_Definition => (2, 1, 7, others => No_Field_Offset),
      N_Decimal_Fixed_Point_Definition => (5, 1, 2, others => No_Field_Offset),
      N_Defining_Program_Unit_Name => (7, 1, others => No_Field_Offset),
      N_Delta_Constraint => (5, 2, others => No_Field_Offset),
      N_Designator => (7, 6, others => No_Field_Offset),
      N_Digits_Constraint => (1, 2, others => No_Field_Offset),
      N_Discriminant_Association => (1, 2, others => No_Field_Offset),
      N_Discriminant_Specification => (1, 5, 2, others => No_Field_Offset),
      N_Enumeration_Type_Definition => (1, 5, others => No_Field_Offset),
      N_Entry_Body => (1, 6, 7, 8, 2, others => No_Field_Offset),
      N_Entry_Call_Alternative => (2, 1, 5, others => No_Field_Offset),
      N_Entry_Index_Specification => (1, 2, others => No_Field_Offset),
      N_Exception_Handler => (5, 6, 1, others => No_Field_Offset),
      N_Floating_Point_Definition => (1, 2, others => No_Field_Offset),
      N_Formal_Decimal_Fixed_Point_Definition => (others => No_Field_Offset),
      N_Formal_Derived_Type_Definition => (6, 7, others => No_Field_Offset),
      N_Formal_Discrete_Type_Definition => (others => No_Field_Offset),
      N_Formal_Floating_Point_Definition => (others => No_Field_Offset),
      N_Formal_Modular_Type_Definition => (others => No_Field_Offset),
      N_Formal_Ordinary_Fixed_Point_Definition => (others => No_Field_Offset),
      N_Formal_Private_Type_Definition => (others => No_Field_Offset),
      N_Formal_Incomplete_Type_Definition => (others => No_Field_Offset),
      N_Formal_Signed_Integer_Type_Definition => (others => No_Field_Offset),
      N_Freeze_Entity => (6, others => No_Field_Offset),
      N_Freeze_Generic_Entity => (others => No_Field_Offset),
      N_Generic_Association => (7, 1, others => No_Field_Offset),
      N_Handled_Sequence_Of_Statements => (1, 5, 6, 2, others => No_Field_Offset),
      N_Index_Or_Discriminant_Constraint => (1, others => No_Field_Offset),
      N_Iterated_Component_Association => (1, 8, 2, 7, others => No_Field_Offset),
      N_Iterated_Element_Association => (1, 8, 2, 7, others => No_Field_Offset),
      N_Itype_Reference => (others => No_Field_Offset),
      N_Label => (6, others => No_Field_Offset),
      N_Modular_Type_Definition => (2, others => No_Field_Offset),
      N_Number_Declaration => (1, 2, others => No_Field_Offset),
      N_Ordinary_Fixed_Point_Definition => (5, 2, others => No_Field_Offset),
      N_Others_Choice => (others => No_Field_Offset),
      N_Package_Specification => (1, 7, 6, 5, others => No_Field_Offset),
      N_Parameter_Association => (7, 1, others => No_Field_Offset),
      N_Parameter_Specification => (1, 6, 2, others => No_Field_Offset),
      N_Pragma => (6, 7, others => No_Field_Offset),
      N_Protected_Definition => (7, 6, 5, others => No_Field_Offset),
      N_Range_Constraint => (1, others => No_Field_Offset),
      N_Real_Range_Specification => (2, 1, others => No_Field_Offset),
      N_Record_Definition => (5, 1, 7, others => No_Field_Offset),
      N_Signed_Integer_Type_Definition => (2, 1, others => No_Field_Offset),
      N_Single_Protected_Declaration => (1, 7, 2, others => No_Field_Offset),
      N_Subunit => (7, 2, others => No_Field_Offset),
      N_Task_Definition => (7, 6, 5, others => No_Field_Offset),
      N_Triggering_Alternative => (2, 1, 5, others => No_Field_Offset),
      N_Use_Type_Clause => (6, others => No_Field_Offset),
      N_Validate_Unchecked_Conversion => (others => No_Field_Offset),
      N_Variable_Reference_Marker => (others => No_Field_Offset),
      N_Variant => (7, 1, others => No_Field_Offset),
      N_Variant_Part => (7, 1, others => No_Field_Offset),
      N_With_Clause => (7, others => No_Field_Offset),
      N_Unused_At_End => (others => No_Field_Offset));

   --  Table of sizes in 32-bit slots for given Node_Kind, for use by Atree:

   Min_Node_Size : constant Field_Offset := 5;
   Max_Node_Size : constant Field_Offset := 10;

   Size : constant array (Node_Kind) of Field_Offset :=
     (N_Unused_At_Start => 5,
      N_At_Clause => 7,
      N_Component_Clause => 7,
      N_Enumeration_Representation_Clause => 7,
      N_Mod_Clause => 6,
      N_Record_Representation_Clause => 7,
      N_Attribute_Definition_Clause => 8,
      N_Empty => 7,
      N_Pragma_Argument_Association => 7,
      N_Error => 7,
      N_Defining_Character_Literal => 8,
      N_Defining_Identifier => 8,
      N_Defining_Operator_Symbol => 8,
      N_Expanded_Name => 8,
      N_Identifier => 7,
      N_Operator_Symbol => 7,
      N_Character_Literal => 7,
      N_Op_Add => 8,
      N_Op_Concat => 8,
      N_Op_Expon => 8,
      N_Op_Subtract => 8,
      N_Op_Divide => 8,
      N_Op_Mod => 8,
      N_Op_Multiply => 8,
      N_Op_Rem => 8,
      N_Op_And => 8,
      N_Op_Eq => 8,
      N_Op_Ge => 8,
      N_Op_Gt => 8,
      N_Op_Le => 8,
      N_Op_Lt => 8,
      N_Op_Ne => 8,
      N_Op_Or => 8,
      N_Op_Xor => 8,
      N_Op_Rotate_Left => 8,
      N_Op_Rotate_Right => 8,
      N_Op_Shift_Left => 8,
      N_Op_Shift_Right => 8,
      N_Op_Shift_Right_Arithmetic => 8,
      N_Op_Abs => 7,
      N_Op_Minus => 7,
      N_Op_Not => 7,
      N_Op_Plus => 7,
      N_Attribute_Reference => 9,
      N_In => 8,
      N_Not_In => 8,
      N_And_Then => 8,
      N_Or_Else => 8,
      N_Function_Call => 9,
      N_Procedure_Call_Statement => 8,
      N_Raise_Constraint_Error => 7,
      N_Raise_Program_Error => 7,
      N_Raise_Storage_Error => 7,
      N_Integer_Literal => 6,
      N_Real_Literal => 7,
      N_String_Literal => 6,
      N_Interpolated_String_Literal => 7,
      N_Explicit_Dereference => 6,
      N_Expression_With_Actions => 7,
      N_If_Expression => 7,
      N_Indexed_Component => 7,
      N_Null => 6,
      N_Qualified_Expression => 7,
      N_Quantified_Expression => 9,
      N_Aggregate => 9,
      N_Allocator => 8,
      N_Case_Expression => 7,
      N_Delta_Aggregate => 8,
      N_Extension_Aggregate => 8,
      N_Raise_Expression => 8,
      N_Range => 6,
      N_Reference => 6,
      N_Selected_Component => 8,
      N_Slice => 6,
      N_Target_Name => 6,
      N_Type_Conversion => 7,
      N_Unchecked_Expression => 6,
      N_Unchecked_Type_Conversion => 7,
      N_Subtype_Indication => 7,
      N_Component_Declaration => 6,
      N_Entry_Declaration => 7,
      N_Expression_Function => 7,
      N_Formal_Object_Declaration => 9,
      N_Formal_Type_Declaration => 7,
      N_Full_Type_Declaration => 7,
      N_Incomplete_Type_Declaration => 6,
      N_Iterator_Specification => 8,
      N_Loop_Parameter_Specification => 6,
      N_Object_Declaration => 8,
      N_Protected_Type_Declaration => 8,
      N_Private_Extension_Declaration => 8,
      N_Private_Type_Declaration => 6,
      N_Subtype_Declaration => 6,
      N_Function_Specification => 7,
      N_Procedure_Specification => 7,
      N_Exception_Declaration => 6,
      N_Formal_Package_Declaration => 8,
      N_Access_Function_Definition => 7,
      N_Access_Procedure_Definition => 6,
      N_Task_Type_Declaration => 8,
      N_Package_Body_Stub => 7,
      N_Protected_Body_Stub => 7,
      N_Subprogram_Body_Stub => 7,
      N_Task_Body_Stub => 7,
      N_Function_Instantiation => 8,
      N_Procedure_Instantiation => 8,
      N_Package_Instantiation => 8,
      N_Package_Body => 9,
      N_Subprogram_Body => 10,
      N_Protected_Body => 8,
      N_Task_Body => 9,
      N_Implicit_Label_Declaration => 5,
      N_Package_Declaration => 7,
      N_Single_Task_Declaration => 8,
      N_Subprogram_Declaration => 7,
      N_Use_Package_Clause => 9,
      N_Generic_Package_Declaration => 8,
      N_Generic_Subprogram_Declaration => 8,
      N_Constrained_Array_Definition => 6,
      N_Unconstrained_Array_Definition => 6,
      N_Exception_Renaming_Declaration => 8,
      N_Object_Renaming_Declaration => 9,
      N_Package_Renaming_Declaration => 8,
      N_Subprogram_Renaming_Declaration => 8,
      N_Generic_Function_Renaming_Declaration => 8,
      N_Generic_Package_Renaming_Declaration => 8,
      N_Generic_Procedure_Renaming_Declaration => 8,
      N_Abort_Statement => 5,
      N_Accept_Statement => 9,
      N_Assignment_Statement => 8,
      N_Asynchronous_Select => 5,
      N_Block_Statement => 9,
      N_Case_Statement => 7,
      N_Code_Statement => 5,
      N_Compound_Statement => 7,
      N_Conditional_Entry_Call => 6,
      N_Delay_Relative_Statement => 5,
      N_Delay_Until_Statement => 5,
      N_Entry_Call_Statement => 8,
      N_Free_Statement => 8,
      N_Goto_Statement => 8,
      N_Goto_When_Statement => 8,
      N_Loop_Statement => 7,
      N_Null_Statement => 6,
      N_Raise_Statement => 8,
      N_Raise_When_Statement => 8,
      N_Requeue_Statement => 8,
      N_Simple_Return_Statement => 8,
      N_Extended_Return_Statement => 9,
      N_Return_When_Statement => 7,
      N_Selective_Accept => 6,
      N_Timed_Entry_Call => 5,
      N_Exit_Statement => 8,
      N_If_Statement => 8,
      N_Accept_Alternative => 8,
      N_Delay_Alternative => 7,
      N_Elsif_Part => 7,
      N_Entry_Body_Formal_Part => 7,
      N_Iteration_Scheme => 9,
      N_Terminate_Alternative => 7,
      N_Formal_Abstract_Subprogram_Declaration => 6,
      N_Formal_Concrete_Subprogram_Declaration => 6,
      N_Push_Constraint_Error_Label => 5,
      N_Push_Program_Error_Label => 5,
      N_Push_Storage_Error_Label => 5,
      N_Pop_Constraint_Error_Label => 5,
      N_Pop_Program_Error_Label => 5,
      N_Pop_Storage_Error_Label => 5,
      N_SCIL_Dispatch_Table_Tag_Init => 5,
      N_SCIL_Dispatching_Call => 6,
      N_SCIL_Membership_Test => 5,
      N_Abortable_Part => 5,
      N_Abstract_Subprogram_Declaration => 5,
      N_Access_Definition => 7,
      N_Access_To_Object_Definition => 5,
      N_Aspect_Specification => 8,
      N_Call_Marker => 5,
      N_Case_Expression_Alternative => 8,
      N_Case_Statement_Alternative => 8,
      N_Compilation_Unit => 8,
      N_Compilation_Unit_Aux => 8,
      N_Component_Association => 7,
      N_Component_Definition => 9,
      N_Component_List => 5,
      N_Contract => 6,
      N_Derived_Type_Definition => 8,
      N_Decimal_Fixed_Point_Definition => 6,
      N_Defining_Program_Unit_Name => 8,
      N_Delta_Constraint => 6,
      N_Designator => 8,
      N_Digits_Constraint => 5,
      N_Discriminant_Association => 5,
      N_Discriminant_Specification => 6,
      N_Enumeration_Type_Definition => 6,
      N_Entry_Body => 9,
      N_Entry_Call_Alternative => 6,
      N_Entry_Index_Specification => 5,
      N_Exception_Handler => 8,
      N_Floating_Point_Definition => 5,
      N_Formal_Decimal_Fixed_Point_Definition => 5,
      N_Formal_Derived_Type_Definition => 8,
      N_Formal_Discrete_Type_Definition => 5,
      N_Formal_Floating_Point_Definition => 5,
      N_Formal_Modular_Type_Definition => 5,
      N_Formal_Ordinary_Fixed_Point_Definition => 5,
      N_Formal_Private_Type_Definition => 7,
      N_Formal_Incomplete_Type_Definition => 5,
      N_Formal_Signed_Integer_Type_Definition => 5,
      N_Freeze_Entity => 8,
      N_Freeze_Generic_Entity => 5,
      N_Generic_Association => 8,
      N_Handled_Sequence_Of_Statements => 7,
      N_Index_Or_Discriminant_Constraint => 5,
      N_Iterated_Component_Association => 9,
      N_Iterated_Element_Association => 9,
      N_Itype_Reference => 5,
      N_Label => 7,
      N_Modular_Type_Definition => 5,
      N_Number_Declaration => 5,
      N_Ordinary_Fixed_Point_Definition => 6,
      N_Others_Choice => 5,
      N_Package_Specification => 8,
      N_Parameter_Association => 8,
      N_Parameter_Specification => 7,
      N_Pragma => 9,
      N_Protected_Definition => 8,
      N_Range_Constraint => 5,
      N_Real_Range_Specification => 5,
      N_Record_Definition => 8,
      N_Signed_Integer_Type_Definition => 5,
      N_Single_Protected_Declaration => 8,
      N_Subunit => 8,
      N_Task_Definition => 8,
      N_Triggering_Alternative => 6,
      N_Use_Type_Clause => 9,
      N_Validate_Unchecked_Conversion => 5,
      N_Variable_Reference_Marker => 5,
      N_Variant => 8,
      N_Variant_Part => 8,
      N_With_Clause => 8,
      N_Unused_At_End => 5); -- Size

   --  Enumeration of all 884 fields:

   type Node_Or_Entity_Field is
     (F_Nkind,
      F_Sloc,
      F_In_List,
      F_Rewrite_Ins,
      F_Comes_From_Source,
      F_Analyzed,
      F_Error_Posted,
      F_Small_Paren_Count,
      F_Check_Actuals,
      F_Has_Aspects,
      F_Is_Ignored_Ghost_Node,
      F_Link,
      F_Abort_Present,
      F_Abortable_Part,
      F_Abstract_Present,
      F_Accept_Handler_Records,
      F_Accept_Statement,
      F_Access_Definition,
      F_Access_To_Subprogram_Definition,
      F_Access_Types_To_Process,
      F_Actions,
      F_Activation_Chain_Entity,
      F_Acts_As_Spec,
      F_Actual_Designated_Subtype,
      F_Address_Warning_Posted,
      F_Aggregate_Bounds,
      F_Aliased_Present,
      F_All_Others,
      F_All_Present,
      F_Alternatives,
      F_Ancestor_Part,
      F_Atomic_Sync_Required,
      F_Array_Aggregate,
      F_Aspect_On_Partial_View,
      F_Aspect_Rep_Item,
      F_Assignment_OK,
      F_Attribute_Name,
      F_At_End_Proc,
      F_Aux_Decls_Node,
      F_Backwards_OK,
      F_Bad_Is_Detected,
      F_Binding_Chars,
      F_Body_Required,
      F_Body_To_Inline,
      F_Box_Present,
      F_Char_Literal_Value,
      F_Chars,
      F_Check_Address_Alignment,
      F_Choice_Parameter,
      F_Choices,
      F_Class_Present,
      F_Classifications,
      F_Cleanup_Actions,
      F_Comes_From_Check_Or_Contract,
      F_Comes_From_Extended_Return_Statement,
      F_Comes_From_Iterator,
      F_Compile_Time_Known_Aggregate,
      F_Component_Associations,
      F_Component_Clauses,
      F_Component_Definition,
      F_Component_Items,
      F_Component_List,
      F_Component_Name,
      F_Componentwise_Assignment,
      F_Condition,
      F_Condition_Actions,
      F_Config_Pragmas,
      F_Constant_Present,
      F_Constraint,
      F_Constraints,
      F_Context_Installed,
      F_Context_Items,
      F_Context_Pending,
      F_Contract_Test_Cases,
      F_Controlling_Argument,
      F_Conversion_OK,
      F_Corresponding_Aspect,
      F_Corresponding_Body,
      F_Corresponding_Entry_Body,
      F_Corresponding_Formal_Spec,
      F_Corresponding_Generic_Association,
      F_Corresponding_Integer_Value,
      F_Corresponding_Spec,
      F_Corresponding_Spec_Of_Stub,
      F_Corresponding_Stub,
      F_Dcheck_Function,
      F_Declarations,
      F_Default_Expression,
      F_Default_Storage_Pool,
      F_Default_Name,
      F_Default_Subtype_Mark,
      F_Defining_Identifier,
      F_Defining_Unit_Name,
      F_Delay_Alternative,
      F_Delay_Statement,
      F_Delta_Expression,
      F_Digits_Expression,
      F_Discr_Check_Funcs_Built,
      F_Discrete_Choices,
      F_Discrete_Range,
      F_Discrete_Subtype_Definition,
      F_Discrete_Subtype_Definitions,
      F_Discriminant_Specifications,
      F_Discriminant_Type,
      F_Do_Discriminant_Check,
      F_Do_Division_Check,
      F_Do_Length_Check,
      F_Do_Overflow_Check,
      F_Do_Range_Check,
      F_Do_Storage_Check,
      F_Elaborate_All_Desirable,
      F_Elaborate_All_Present,
      F_Elaborate_Desirable,
      F_Elaborate_Present,
      F_Else_Actions,
      F_Else_Statements,
      F_Elsif_Parts,
      F_Enclosing_Variant,
      F_End_Label,
      F_End_Span,
      F_Entity_Or_Associated_Node,
      F_Entry_Body_Formal_Part,
      F_Entry_Call_Alternative,
      F_Entry_Call_Statement,
      F_Entry_Direct_Name,
      F_Entry_Index,
      F_Entry_Index_Specification,
      F_Etype,
      F_Exception_Choices,
      F_Exception_Handlers,
      F_Exception_Junk,
      F_Exception_Label,
      F_Expansion_Delayed,
      F_Explicit_Actual_Parameter,
      F_Explicit_Generic_Actual_Parameter,
      F_Expression,
      F_Expression_Copy,
      F_Expressions,
      F_First_Bit,
      F_First_Inlined_Subprogram,
      F_First_Name,
      F_First_Named_Actual,
      F_First_Subtype_Link,
      F_Float_Truncate,
      F_Formal_Type_Definition,
      F_Forwards_OK,
      F_For_Special_Return_Object,
      F_From_Aspect_Specification,
      F_From_At_Mod,
      F_From_Conditional_Expression,
      F_From_Default,
      F_Generalized_Indexing,
      F_Generic_Associations,
      F_Generic_Formal_Declarations,
      F_Generic_Parent,
      F_Generic_Parent_Type,
      F_Handled_Statement_Sequence,
      F_Handler_List_Entry,
      F_Has_Created_Identifier,
      F_Has_Dereference_Action,
      F_Has_Dynamic_Length_Check,
      F_Has_Init_Expression,
      F_Has_Local_Raise,
      F_Has_No_Elaboration_Code,
      F_Has_Pragma_Suppress_All,
      F_Has_Private_View,
      F_Has_Relative_Deadline_Pragma,
      F_Has_Self_Reference,
      F_Has_SP_Choice,
      F_Has_Storage_Size_Pragma,
      F_Has_Target_Names,
      F_Has_Wide_Character,
      F_Has_Wide_Wide_Character,
      F_Header_Size_Added,
      F_Hidden_By_Use_Clause,
      F_High_Bound,
      F_Identifier,
      F_Interface_List,
      F_Interface_Present,
      F_Implicit_With,
      F_Import_Interface_Present,
      F_In_Present,
      F_Includes_Infinities,
      F_Incomplete_View,
      F_Inherited_Discriminant,
      F_Instance_Spec,
      F_Intval,
      F_Is_Abort_Block,
      F_Is_Accessibility_Actual,
      F_Is_Analyzed_Pragma,
      F_Is_Asynchronous_Call_Block,
      F_Is_Boolean_Aspect,
      F_Is_Checked,
      F_Is_Checked_Ghost_Pragma,
      F_Is_Component_Left_Opnd,
      F_Is_Component_Right_Opnd,
      F_Is_Controlling_Actual,
      F_Is_Declaration_Level_Node,
      F_Is_Delayed_Aspect,
      F_Is_Disabled,
      F_Is_Dispatching_Call,
      F_Is_Dynamic_Coextension,
      F_Is_Effective_Use_Clause,
      F_Is_Elaboration_Checks_OK_Node,
      F_Is_Elaboration_Code,
      F_Is_Elaboration_Warnings_OK_Node,
      F_Is_Elsif,
      F_Is_Entry_Barrier_Function,
      F_Is_Expanded_Build_In_Place_Call,
      F_Is_Expanded_Contract,
      F_Is_Finalization_Wrapper,
      F_Is_Folded_In_Parser,
      F_Is_Generic_Contract_Pragma,
      F_Is_Homogeneous_Aggregate,
      F_Is_Parenthesis_Aggregate,
      F_Is_Enum_Array_Aggregate,
      F_Is_Ignored,
      F_Is_Ignored_Ghost_Pragma,
      F_Is_In_Discriminant_Check,
      F_Is_Inherited_Pragma,
      F_Is_Initialization_Block,
      F_Is_Known_Guaranteed_ABE,
      F_Is_Machine_Number,
      F_Is_Null_Loop,
      F_Is_Overloaded,
      F_Is_Power_Of_2_For_Shift,
      F_Is_Preelaborable_Call,
      F_Is_Prefixed_Call,
      F_Is_Protected_Subprogram_Body,
      F_Is_Qualified_Universal_Literal,
      F_Is_Read,
      F_Is_Source_Call,
      F_Is_SPARK_Mode_On_Node,
      F_Is_Static_Coextension,
      F_Is_Static_Expression,
      F_Is_Subprogram_Descriptor,
      F_Is_Task_Allocation_Block,
      F_Is_Task_Body_Procedure,
      F_Is_Task_Master,
      F_Is_Write,
      F_Iterator_Filter,
      F_Iteration_Scheme,
      F_Iterator_Specification,
      F_Itype,
      F_Key_Expression,
      F_Kill_Range_Check,
      F_Last_Bit,
      F_Last_Name,
      F_Library_Unit,
      F_Label_Construct,
      F_Left_Opnd,
      F_Limited_View_Installed,
      F_Limited_Present,
      F_Literals,
      F_Local_Raise_Not_OK,
      F_Local_Raise_Statements,
      F_Loop_Actions,
      F_Loop_Parameter_Specification,
      F_Low_Bound,
      F_Mod_Clause,
      F_More_Ids,
      F_Multidefined_Bindings,
      F_Must_Be_Byte_Aligned,
      F_Must_Not_Freeze,
      F_Must_Not_Override,
      F_Must_Override,
      F_Name,
      F_Names,
      F_Next_Entity,
      F_Next_Exit_Statement,
      F_Next_Implicit_With,
      F_Next_Named_Actual,
      F_Next_Pragma,
      F_Next_Rep_Item,
      F_Next_Use_Clause,
      F_No_Ctrl_Actions,
      F_No_Elaboration_Check,
      F_No_Entities_Ref_In_Spec,
      F_No_Initialization,
      F_No_Minimize_Eliminate,
      F_No_Side_Effect_Removal,
      F_No_Truncation,
      F_Null_Excluding_Subtype,
      F_Null_Exclusion_Present,
      F_Null_Exclusion_In_Return_Present,
      F_Null_Present,
      F_Null_Record_Present,
      F_Null_Statement,
      F_Object_Definition,
      F_Of_Present,
      F_Original_Discriminant,
      F_Original_Entity,
      F_Others_Discrete_Choices,
      F_Out_Present,
      F_Parameter_Associations,
      F_Parameter_Specifications,
      F_Parameter_Type,
      F_Parent_Spec,
      F_Parent_With,
      F_Position,
      F_Pragma_Argument_Associations,
      F_Pragma_Identifier,
      F_Pragmas_After,
      F_Pragmas_Before,
      F_Pre_Post_Conditions,
      F_Prefix,
      F_Premature_Use,
      F_Present_Expr,
      F_Prev_Ids,
      F_Prev_Use_Clause,
      F_Print_In_Hex,
      F_Private_Declarations,
      F_Private_Present,
      F_Procedure_To_Call,
      F_Proper_Body,
      F_Protected_Definition,
      F_Protected_Present,
      F_Raises_Constraint_Error,
      F_Range_Constraint,
      F_Range_Expression,
      F_Real_Range_Specification,
      F_Realval,
      F_Reason,
      F_Record_Extension_Part,
      F_Redundant_Use,
      F_Renaming_Exception,
      F_Result_Definition,
      F_Return_Object_Declarations,
      F_Return_Statement_Entity,
      F_Reverse_Present,
      F_Right_Opnd,
      F_Rounded_Result,
      F_Save_Invocation_Graph_Of_Body,
      F_SCIL_Controlling_Tag,
      F_SCIL_Entity,
      F_SCIL_Tag_Value,
      F_SCIL_Target_Prim,
      F_Scope,
      F_Select_Alternatives,
      F_Selector_Name,
      F_Selector_Names,
      F_Shift_Count_OK,
      F_Source_Type,
      F_Specification,
      F_Split_PPC,
      F_Statements,
      F_Storage_Pool,
      F_Subpool_Handle_Name,
      F_Strval,
      F_Subtype_Indication,
      F_Subtype_Mark,
      F_Subtype_Marks,
      F_Suppress_Assignment_Checks,
      F_Suppress_Loop_Warnings,
      F_Synchronized_Present,
      F_Tagged_Present,
      F_Target,
      F_Target_Type,
      F_Task_Definition,
      F_Task_Present,
      F_Then_Actions,
      F_Then_Statements,
      F_Triggering_Alternative,
      F_Triggering_Statement,
      F_TSS_Elist,
      F_Type_Definition,
      F_Uneval_Old_Accept,
      F_Uneval_Old_Warn,
      F_Unit,
      F_Unknown_Discriminants_Present,
      F_Unreferenced_In_Spec,
      F_Variant_Part,
      F_Variants,
      F_Visible_Declarations,
      F_Uninitialized_Variable,
      F_Used_Operations,
      F_Was_Attribute_Reference,
      F_Was_Default_Init_Box_Association,
      F_Was_Expression_Function,
      F_Was_Originally_Stub,
      F_Ekind,
      F_Basic_Convention,
      F_Abstract_States,
      F_Accept_Address,
      F_Access_Disp_Table,
      F_Access_Disp_Table_Elab_Flag,
      F_Access_Subprogram_Wrapper,
      F_Activation_Record_Component,
      F_Actual_Subtype,
      F_Address_Taken,
      F_Alignment,
      F_Anonymous_Designated_Type,
      F_Anonymous_Masters,
      F_Anonymous_Object,
      F_Associated_Entity,
      F_Associated_Formal_Package,
      F_Associated_Node_For_Itype,
      F_Associated_Storage_Pool,
      F_Barrier_Function,
      F_BIP_Initialization_Call,
      F_Block_Node,
      F_Body_Entity,
      F_Body_Needed_For_Inlining,
      F_Body_Needed_For_SAL,
      F_Body_References,
      F_C_Pass_By_Copy,
      F_Can_Never_Be_Null,
      F_Can_Use_Internal_Rep,
      F_Checks_May_Be_Suppressed,
      F_Class_Postconditions,
      F_Class_Preconditions,
      F_Class_Preconditions_Subprogram,
      F_Class_Wide_Type,
      F_Cloned_Subtype,
      F_Component_Alignment,
      F_Component_Bit_Offset,
      F_Component_Clause,
      F_Component_Size,
      F_Component_Type,
      F_Contract,
      F_Contract_Wrapper,
      F_Corresponding_Concurrent_Type,
      F_Corresponding_Discriminant,
      F_Corresponding_Equality,
      F_Corresponding_Function,
      F_Corresponding_Procedure,
      F_Corresponding_Record_Component,
      F_Corresponding_Record_Type,
      F_Corresponding_Remote_Type,
      F_CR_Discriminant,
      F_Current_Use_Clause,
      F_Current_Value,
      F_Debug_Info_Off,
      F_Debug_Renaming_Link,
      F_Default_Aspect_Component_Value,
      F_Default_Aspect_Value,
      F_Default_Expr_Function,
      F_Default_Expressions_Processed,
      F_Default_Value,
      F_Delay_Cleanups,
      F_Delay_Subprogram_Descriptors,
      F_Delta_Value,
      F_Dependent_Instances,
      F_Depends_On_Private,
      F_Derived_Type_Link,
      F_Digits_Value,
      F_Predicated_Parent,
      F_Predicates_Ignored,
      F_Direct_Primitive_Operations,
      F_Directly_Designated_Type,
      F_Disable_Controlled,
      F_Discard_Names,
      F_Discriminal,
      F_Discriminal_Link,
      F_Discriminant_Checking_Func,
      F_Discriminant_Constraint,
      F_Discriminant_Default_Value,
      F_Discriminant_Number,
      F_Dispatch_Table_Wrappers,
      F_Dynamic_Call_Helper,
      F_DT_Entry_Count,
      F_DT_Offset_To_Top_Func,
      F_DT_Position,
      F_DTC_Entity,
      F_Elaborate_Body_Desirable,
      F_Elaboration_Entity,
      F_Elaboration_Entity_Required,
      F_Encapsulating_State,
      F_Enclosing_Scope,
      F_Entry_Accepted,
      F_Entry_Bodies_Array,
      F_Entry_Cancel_Parameter,
      F_Entry_Component,
      F_Entry_Formal,
      F_Entry_Index_Constant,
      F_Entry_Max_Queue_Lengths_Array,
      F_Entry_Parameters_Type,
      F_Enum_Pos_To_Rep,
      F_Enumeration_Pos,
      F_Enumeration_Rep,
      F_Enumeration_Rep_Expr,
      F_Equivalent_Type,
      F_Esize,
      F_Extra_Accessibility,
      F_Extra_Accessibility_Of_Result,
      F_Extra_Constrained,
      F_Extra_Formal,
      F_Extra_Formals,
      F_Finalization_Master,
      F_Finalize_Storage_Only,
      F_Finalizer,
      F_First_Entity,
      F_First_Exit_Statement,
      F_First_Index,
      F_First_Literal,
      F_First_Private_Entity,
      F_First_Rep_Item,
      F_Freeze_Node,
      F_From_Limited_With,
      F_Full_View,
      F_Generic_Homonym,
      F_Generic_Renamings,
      F_Handler_Records,
      F_Has_Aliased_Components,
      F_Has_Alignment_Clause,
      F_Has_All_Calls_Remote,
      F_Has_Atomic_Components,
      F_Has_Biased_Representation,
      F_Has_Completion,
      F_Has_Completion_In_Body,
      F_Has_Complex_Representation,
      F_Has_Component_Size_Clause,
      F_Has_Constrained_Partial_View,
      F_Has_Contiguous_Rep,
      F_Has_Controlled_Component,
      F_Has_Controlling_Result,
      F_Has_Convention_Pragma,
      F_Has_Default_Aspect,
      F_Has_Delayed_Aspects,
      F_Has_Delayed_Freeze,
      F_Has_Delayed_Rep_Aspects,
      F_Has_Discriminants,
      F_Has_Dispatch_Table,
      F_Has_Dynamic_Predicate_Aspect,
      F_Has_Enumeration_Rep_Clause,
      F_Has_Exit,
      F_Has_Expanded_Contract,
      F_Has_Forward_Instantiation,
      F_Has_Fully_Qualified_Name,
      F_Has_Gigi_Rep_Item,
      F_Has_Homonym,
      F_Has_Implicit_Dereference,
      F_Has_Independent_Components,
      F_Has_Inheritable_Invariants,
      F_Has_Inherited_DIC,
      F_Has_Inherited_Invariants,
      F_Has_Initial_Value,
      F_Has_Loop_Entry_Attributes,
      F_Has_Machine_Radix_Clause,
      F_Has_Master_Entity,
      F_Has_Missing_Return,
      F_Has_Nested_Block_With_Handler,
      F_Has_Nested_Subprogram,
      F_Has_Non_Standard_Rep,
      F_Has_Object_Size_Clause,
      F_Has_Out_Or_In_Out_Parameter,
      F_Has_Own_DIC,
      F_Has_Own_Invariants,
      F_Has_Partial_Visible_Refinement,
      F_Has_Per_Object_Constraint,
      F_Has_Pragma_Controlled,
      F_Has_Pragma_Elaborate_Body,
      F_Has_Pragma_Inline,
      F_Has_Pragma_Inline_Always,
      F_Has_Pragma_No_Inline,
      F_Has_Pragma_Ordered,
      F_Has_Pragma_Pack,
      F_Has_Pragma_Preelab_Init,
      F_Has_Pragma_Pure,
      F_Has_Pragma_Pure_Function,
      F_Has_Pragma_Thread_Local_Storage,
      F_Has_Pragma_Unmodified,
      F_Has_Pragma_Unreferenced,
      F_Has_Pragma_Unreferenced_Objects,
      F_Has_Pragma_Unused,
      F_Has_Predicates,
      F_Has_Primitive_Operations,
      F_Has_Private_Ancestor,
      F_Has_Private_Declaration,
      F_Has_Private_Extension,
      F_Has_Protected,
      F_Has_Qualified_Name,
      F_Has_RACW,
      F_Has_Record_Rep_Clause,
      F_Has_Recursive_Call,
      F_Has_Shift_Operator,
      F_Has_Size_Clause,
      F_Has_Small_Clause,
      F_Has_Specified_Layout,
      F_Has_Specified_Stream_Input,
      F_Has_Specified_Stream_Output,
      F_Has_Specified_Stream_Read,
      F_Has_Specified_Stream_Write,
      F_Has_Static_Discriminants,
      F_Has_Static_Predicate,
      F_Has_Static_Predicate_Aspect,
      F_Has_Storage_Size_Clause,
      F_Has_Stream_Size_Clause,
      F_Has_Task,
      F_Has_Timing_Event,
      F_Has_Thunks,
      F_Has_Unchecked_Union,
      F_Has_Unknown_Discriminants,
      F_Has_Visible_Refinement,
      F_Has_Volatile_Components,
      F_Has_Xref_Entry,
      F_Has_Yield_Aspect,
      F_Hiding_Loop_Variable,
      F_Hidden_In_Formal_Instance,
      F_Homonym,
      F_Ignored_Class_Postconditions,
      F_Ignored_Class_Preconditions,
      F_Ignore_SPARK_Mode_Pragmas,
      F_Import_Pragma,
      F_Incomplete_Actuals,
      F_Indirect_Call_Wrapper,
      F_In_Package_Body,
      F_In_Private_Part,
      F_In_Use,
      F_Initialization_Statements,
      F_Inner_Instances,
      F_Interface_Alias,
      F_Interface_Name,
      F_Interfaces,
      F_Is_Abstract_Subprogram,
      F_Is_Abstract_Type,
      F_Is_Access_Constant,
      F_Is_Activation_Record,
      F_Is_Actual_Subtype,
      F_Is_Ada_2005_Only,
      F_Is_Ada_2012_Only,
      F_Is_Ada_2022_Only,
      F_Is_Aliased,
      F_Is_Asynchronous,
      F_Is_Atomic,
      F_Is_Bit_Packed_Array,
      F_Is_Called,
      F_Is_Character_Type,
      F_Is_Checked_Ghost_Entity,
      F_Is_Child_Unit,
      F_Is_Class_Wide_Equivalent_Type,
      F_Is_Class_Wide_Wrapper,
      F_Is_Compilation_Unit,
      F_Is_Completely_Hidden,
      F_Is_Concurrent_Record_Type,
      F_Is_Constr_Subt_For_U_Nominal,
      F_Is_Constr_Subt_For_UN_Aliased,
      F_Is_Constrained,
      F_Is_Constructor,
      F_Is_Controlled_Active,
      F_Is_Controlling_Formal,
      F_Is_CPP_Class,
      F_Is_CUDA_Kernel,
      F_Is_Descendant_Of_Address,
      F_Is_DIC_Procedure,
      F_Is_Discrim_SO_Function,
      F_Is_Discriminant_Check_Function,
      F_Is_Dispatch_Table_Entity,
      F_Is_Dispatch_Table_Wrapper,
      F_Is_Dispatching_Operation,
      F_Is_Elaboration_Checks_OK_Id,
      F_Is_Elaboration_Warnings_OK_Id,
      F_Is_Eliminated,
      F_Is_Entry_Formal,
      F_Is_Entry_Wrapper,
      F_Is_Exception_Handler,
      F_Is_Exported,
      F_Is_Finalized_Transient,
      F_Is_First_Subtype,
      F_Is_Fixed_Lower_Bound_Array_Subtype,
      F_Is_Fixed_Lower_Bound_Index_Subtype,
      F_Is_Formal_Subprogram,
      F_Is_Frozen,
      F_Is_Generic_Actual_Subprogram,
      F_Is_Generic_Actual_Type,
      F_Is_Generic_Instance,
      F_Is_Generic_Type,
      F_Is_Hidden,
      F_Is_Hidden_Non_Overridden_Subpgm,
      F_Is_Hidden_Open_Scope,
      F_Is_Ignored_Ghost_Entity,
      F_Is_Ignored_Transient,
      F_Is_Immediately_Visible,
      F_Is_Implementation_Defined,
      F_Is_Imported,
      F_Is_Independent,
      F_Is_Initial_Condition_Procedure,
      F_Is_Inlined,
      F_Is_Inlined_Always,
      F_Is_Instantiated,
      F_Is_Interface,
      F_Is_Internal,
      F_Is_Interrupt_Handler,
      F_Is_Intrinsic_Subprogram,
      F_Is_Invariant_Procedure,
      F_Is_Itype,
      F_Is_Known_Non_Null,
      F_Is_Known_Null,
      F_Is_Known_Valid,
      F_Is_Limited_Composite,
      F_Is_Limited_Interface,
      F_Is_Limited_Record,
      F_Is_Local_Anonymous_Access,
      F_Is_Loop_Parameter,
      F_Is_Machine_Code_Subprogram,
      F_Is_Non_Static_Subtype,
      F_Is_Null_Init_Proc,
      F_Is_Obsolescent,
      F_Is_Only_Out_Parameter,
      F_Is_Package_Body_Entity,
      F_Is_Packed,
      F_Is_Packed_Array_Impl_Type,
      F_Is_Param_Block_Component_Type,
      F_Is_Partial_Invariant_Procedure,
      F_Is_Potentially_Use_Visible,
      F_Is_Predicate_Function,
      F_Is_Preelaborated,
      F_Is_Primitive,
      F_Is_Primitive_Wrapper,
      F_Is_Private_Composite,
      F_Is_Private_Descendant,
      F_Is_Private_Primitive,
      F_Is_Public,
      F_Is_Pure,
      F_Is_Pure_Unit_Access_Type,
      F_Is_RACW_Stub_Type,
      F_Is_Raised,
      F_Is_Remote_Call_Interface,
      F_Is_Remote_Types,
      F_Is_Renaming_Of_Object,
      F_Is_Return_Object,
      F_Is_Safe_To_Reevaluate,
      F_Is_Shared_Passive,
      F_Is_Static_Type,
      F_Is_Statically_Allocated,
      F_Is_Tag,
      F_Is_Tagged_Type,
      F_Is_Thunk,
      F_Is_Trivial_Subprogram,
      F_Is_True_Constant,
      F_Is_Unchecked_Union,
      F_Is_Underlying_Full_View,
      F_Is_Underlying_Record_View,
      F_Is_Unimplemented,
      F_Is_Unsigned_Type,
      F_Is_Uplevel_Referenced_Entity,
      F_Is_Valued_Procedure,
      F_Is_Visible_Formal,
      F_Is_Visible_Lib_Unit,
      F_Is_Volatile_Type,
      F_Is_Volatile_Object,
      F_Is_Volatile_Full_Access,
      F_Is_Wrapper,
      F_Itype_Printed,
      F_Kill_Elaboration_Checks,
      F_Kill_Range_Checks,
      F_Known_To_Have_Preelab_Init,
      F_Last_Aggregate_Assignment,
      F_Last_Assignment,
      F_Last_Entity,
      F_Limited_View,
      F_Linker_Section_Pragma,
      F_Lit_Hash,
      F_Lit_Indexes,
      F_Lit_Strings,
      F_Low_Bound_Tested,
      F_LSP_Subprogram,
      F_Machine_Radix_10,
      F_Master_Id,
      F_Materialize_Entity,
      F_May_Inherit_Delayed_Rep_Aspects,
      F_Mechanism,
      F_Minimum_Accessibility,
      F_Modulus,
      F_Must_Be_On_Byte_Boundary,
      F_Must_Have_Preelab_Init,
      F_Needs_Activation_Record,
      F_Needs_Debug_Info,
      F_Needs_No_Actuals,
      F_Never_Set_In_Source,
      F_Next_Inlined_Subprogram,
      F_No_Dynamic_Predicate_On_Actual,
      F_No_Pool_Assigned,
      F_No_Predicate_On_Actual,
      F_No_Reordering,
      F_No_Return,
      F_No_Strict_Aliasing,
      F_No_Tagged_Streams_Pragma,
      F_Non_Binary_Modulus,
      F_Non_Limited_View,
      F_Nonzero_Is_True,
      F_Normalized_First_Bit,
      F_Normalized_Position,
      F_OK_To_Rename,
      F_Optimize_Alignment_Space,
      F_Optimize_Alignment_Time,
      F_Original_Access_Type,
      F_Original_Array_Type,
      F_Original_Protected_Subprogram,
      F_Original_Record_Component,
      F_Overlays_Constant,
      F_Overridden_Operation,
      F_Package_Instantiation,
      F_Packed_Array_Impl_Type,
      F_Parent_Subtype,
      F_Part_Of_Constituents,
      F_Part_Of_References,
      F_Partial_View_Has_Unknown_Discr,
      F_Pending_Access_Types,
      F_Postconditions_Proc,
      F_Predicate_Expression,
      F_Prev_Entity,
      F_Prival,
      F_Prival_Link,
      F_Private_Dependents,
      F_Protected_Body_Subprogram,
      F_Protected_Formal,
      F_Protected_Subprogram,
      F_Protection_Object,
      F_Reachable,
      F_Receiving_Entry,
      F_Referenced,
      F_Referenced_As_LHS,
      F_Referenced_As_Out_Parameter,
      F_Refinement_Constituents,
      F_Register_Exception_Call,
      F_Related_Array_Object,
      F_Related_Expression,
      F_Related_Instance,
      F_Related_Type,
      F_Relative_Deadline_Variable,
      F_Renamed_In_Spec,
      F_Renamed_Or_Alias,
      F_Requires_Overriding,
      F_Return_Applies_To,
      F_Return_Present,
      F_Return_Statement,
      F_Returns_By_Ref,
      F_Reverse_Bit_Order,
      F_Reverse_Storage_Order,
      F_Rewritten_For_C,
      F_RM_Size,
      F_Scalar_Range,
      F_Scale_Value,
      F_Scope_Depth_Value,
      F_Sec_Stack_Needed_For_Return,
      F_Shared_Var_Procs_Instance,
      F_Size_Check_Code,
      F_Size_Depends_On_Discriminant,
      F_Size_Known_At_Compile_Time,
      F_Small_Value,
      F_SPARK_Aux_Pragma,
      F_SPARK_Aux_Pragma_Inherited,
      F_SPARK_Pragma,
      F_SPARK_Pragma_Inherited,
      F_Spec_Entity,
      F_SSO_Set_High_By_Default,
      F_SSO_Set_Low_By_Default,
      F_Static_Call_Helper,
      F_Static_Discrete_Predicate,
      F_Static_Elaboration_Desired,
      F_Static_Initialization,
      F_Static_Real_Or_String_Predicate,
      F_Status_Flag_Or_Transient_Decl,
      F_Storage_Size_Variable,
      F_Stored_Constraint,
      F_Stores_Attribute_Old_Prefix,
      F_Strict_Alignment,
      F_String_Literal_Length,
      F_String_Literal_Low_Bound,
      F_Subprograms_For_Type,
      F_Subps_Index,
      F_Suppress_Elaboration_Warnings,
      F_Suppress_Initialization,
      F_Suppress_Style_Checks,
      F_Suppress_Value_Tracking_On_Call,
      F_Task_Body_Procedure,
      F_Thunk_Entity,
      F_Treat_As_Volatile,
      F_Underlying_Full_View,
      F_Underlying_Record_View,
      F_Universal_Aliasing,
      F_Unset_Reference,
      F_Used_As_Generic_Actual,
      F_Uses_Lock_Free,
      F_Uses_Sec_Stack,
      F_Validated_Object,
      F_Warnings_Off,
      F_Warnings_Off_Used,
      F_Warnings_Off_Used_Unmodified,
      F_Warnings_Off_Used_Unreferenced,
      F_Was_Hidden,
      F_Wrapped_Entity,
      F_Wrapped_Statements); -- Node_Or_Entity_Field

   subtype Node_Field is
     Node_Or_Entity_Field range F_Nkind .. F_Was_Originally_Stub;

   type Node_Field_Index is new Pos;
   type Node_Field_Array is array (Node_Field_Index range <>) of Node_Field;
   type Node_Field_Array_Ref is access constant Node_Field_Array;
   subtype A is Node_Field_Array;

   --  Table mapping Node_Kinds to the sequence of fields that exist in that Node_Kind:

   Node_Field_Table : constant array (Node_Kind) of Node_Field_Array_Ref :=
     (N_Unused_At_Start =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link),
      N_At_Clause =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Expression,
               F_Identifier),
      N_Component_Clause =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Component_Name,
               F_First_Bit,
               F_Last_Bit,
               F_Position),
      N_Enumeration_Representation_Clause =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Array_Aggregate,
               F_Identifier,
               F_Next_Rep_Item),
      N_Mod_Clause =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Expression,
               F_Pragmas_Before),
      N_Record_Representation_Clause =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Component_Clauses,
               F_Identifier,
               F_Mod_Clause,
               F_Next_Rep_Item),
      N_Attribute_Definition_Clause =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Address_Warning_Posted,
               F_Chars,
               F_Check_Address_Alignment,
               F_Entity_Or_Associated_Node,
               F_Expression,
               F_From_Aspect_Specification,
               F_From_At_Mod,
               F_Is_Delayed_Aspect,
               F_Name,
               F_Next_Rep_Item),
      N_Empty =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Chars),
      N_Pragma_Argument_Association =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Chars,
               F_Expression,
               F_Expression_Copy),
      N_Error =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Chars,
               F_Etype),
      N_Defining_Character_Literal =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Chars,
               F_Etype,
               F_Next_Entity,
               F_Scope),
      N_Defining_Identifier =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Chars,
               F_Etype,
               F_Next_Entity,
               F_Scope),
      N_Defining_Operator_Symbol =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Chars,
               F_Etype,
               F_Next_Entity,
               F_Scope),
      N_Expanded_Name =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Atomic_Sync_Required,
               F_Assignment_OK,
               F_Chars,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Elaboration_Checks_OK_Node,
               F_Is_Elaboration_Warnings_OK_Node,
               F_Is_Overloaded,
               F_Is_SPARK_Mode_On_Node,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Prefix,
               F_Raises_Constraint_Error,
               F_Redundant_Use,
               F_Selector_Name),
      N_Identifier =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Atomic_Sync_Required,
               F_Assignment_OK,
               F_Chars,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Elaboration_Checks_OK_Node,
               F_Is_Elaboration_Warnings_OK_Node,
               F_Is_Overloaded,
               F_Is_SPARK_Mode_On_Node,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Original_Discriminant,
               F_Raises_Constraint_Error,
               F_Redundant_Use),
      N_Operator_Symbol =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Chars,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Strval),
      N_Character_Literal =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Char_Literal_Value,
               F_Chars,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error),
      N_Op_Add =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Chars,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Left_Opnd,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd),
      N_Op_Concat =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Chars,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Component_Left_Opnd,
               F_Is_Component_Right_Opnd,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Left_Opnd,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd),
      N_Op_Expon =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Chars,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Power_Of_2_For_Shift,
               F_Is_Static_Expression,
               F_Left_Opnd,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd),
      N_Op_Subtract =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Chars,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Left_Opnd,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd),
      N_Op_Divide =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Chars,
               F_Do_Division_Check,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Left_Opnd,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd,
               F_Rounded_Result),
      N_Op_Mod =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Chars,
               F_Do_Division_Check,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Left_Opnd,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd),
      N_Op_Multiply =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Chars,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Left_Opnd,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd,
               F_Rounded_Result),
      N_Op_Rem =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Chars,
               F_Do_Division_Check,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Left_Opnd,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd),
      N_Op_And =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Chars,
               F_Do_Length_Check,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Left_Opnd,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd),
      N_Op_Eq =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Chars,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Left_Opnd,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd),
      N_Op_Ge =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Chars,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Left_Opnd,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd),
      N_Op_Gt =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Chars,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Left_Opnd,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd),
      N_Op_Le =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Chars,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Left_Opnd,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd),
      N_Op_Lt =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Chars,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Left_Opnd,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd),
      N_Op_Ne =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Chars,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Left_Opnd,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd),
      N_Op_Or =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Chars,
               F_Do_Length_Check,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Left_Opnd,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd),
      N_Op_Xor =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Chars,
               F_Do_Length_Check,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Left_Opnd,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd),
      N_Op_Rotate_Left =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Chars,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Left_Opnd,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd,
               F_Shift_Count_OK),
      N_Op_Rotate_Right =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Chars,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Left_Opnd,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd,
               F_Shift_Count_OK),
      N_Op_Shift_Left =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Chars,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Left_Opnd,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd,
               F_Shift_Count_OK),
      N_Op_Shift_Right =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Chars,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Left_Opnd,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd,
               F_Shift_Count_OK),
      N_Op_Shift_Right_Arithmetic =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Chars,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Left_Opnd,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd,
               F_Shift_Count_OK),
      N_Op_Abs =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Chars,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd),
      N_Op_Minus =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Chars,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd),
      N_Op_Not =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Chars,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd),
      N_Op_Plus =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Chars,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Private_View,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd),
      N_Attribute_Reference =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Attribute_Name,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Expressions,
               F_Has_Dynamic_Length_Check,
               F_Header_Size_Added,
               F_Is_Controlling_Actual,
               F_Is_Elaboration_Checks_OK_Node,
               F_Is_Elaboration_Warnings_OK_Node,
               F_Is_Overloaded,
               F_Is_SPARK_Mode_On_Node,
               F_Is_Static_Expression,
               F_Must_Be_Byte_Aligned,
               F_Must_Not_Freeze,
               F_Prefix,
               F_Raises_Constraint_Error,
               F_Redundant_Use),
      N_In =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Alternatives,
               F_Assignment_OK,
               F_Do_Range_Check,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Left_Opnd,
               F_Must_Not_Freeze,
               F_No_Minimize_Eliminate,
               F_Raises_Constraint_Error,
               F_Right_Opnd),
      N_Not_In =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Alternatives,
               F_Assignment_OK,
               F_Do_Range_Check,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Left_Opnd,
               F_Must_Not_Freeze,
               F_No_Minimize_Eliminate,
               F_Raises_Constraint_Error,
               F_Right_Opnd),
      N_And_Then =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Actions,
               F_Assignment_OK,
               F_Do_Range_Check,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Left_Opnd,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd),
      N_Or_Else =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Actions,
               F_Assignment_OK,
               F_Do_Range_Check,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Left_Opnd,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Right_Opnd),
      N_Function_Call =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Controlling_Argument,
               F_Do_Range_Check,
               F_Etype,
               F_First_Named_Actual,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Elaboration_Checks_OK_Node,
               F_Is_Elaboration_Warnings_OK_Node,
               F_Is_Expanded_Build_In_Place_Call,
               F_Is_Known_Guaranteed_ABE,
               F_Is_Overloaded,
               F_Is_SPARK_Mode_On_Node,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Name,
               F_No_Elaboration_Check,
               F_No_Side_Effect_Removal,
               F_Parameter_Associations,
               F_Raises_Constraint_Error),
      N_Procedure_Call_Statement =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Controlling_Argument,
               F_Do_Range_Check,
               F_Etype,
               F_First_Named_Actual,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Elaboration_Checks_OK_Node,
               F_Is_Elaboration_Warnings_OK_Node,
               F_Is_Known_Guaranteed_ABE,
               F_Is_Overloaded,
               F_Is_SPARK_Mode_On_Node,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Name,
               F_No_Elaboration_Check,
               F_Parameter_Associations,
               F_Raises_Constraint_Error),
      N_Raise_Constraint_Error =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Condition,
               F_Do_Range_Check,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Reason),
      N_Raise_Program_Error =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Condition,
               F_Do_Range_Check,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Reason),
      N_Raise_Storage_Error =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Condition,
               F_Do_Range_Check,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Reason),
      N_Integer_Literal =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Do_Range_Check,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Intval,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Original_Entity,
               F_Print_In_Hex,
               F_Raises_Constraint_Error),
      N_Real_Literal =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Corresponding_Integer_Value,
               F_Do_Range_Check,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Machine_Number,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Original_Entity,
               F_Raises_Constraint_Error,
               F_Realval),
      N_String_Literal =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Do_Range_Check,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Has_Wide_Character,
               F_Has_Wide_Wide_Character,
               F_Is_Controlling_Actual,
               F_Is_Folded_In_Parser,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Strval),
      N_Interpolated_String_Literal =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Do_Range_Check,
               F_Etype,
               F_Expressions,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error),
      N_Explicit_Dereference =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Actual_Designated_Subtype,
               F_Atomic_Sync_Required,
               F_Assignment_OK,
               F_Do_Range_Check,
               F_Etype,
               F_Has_Dereference_Action,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Prefix,
               F_Raises_Constraint_Error),
      N_Expression_With_Actions =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Actions,
               F_Assignment_OK,
               F_Do_Range_Check,
               F_Etype,
               F_Expression,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error),
      N_If_Expression =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Else_Actions,
               F_Etype,
               F_Expressions,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Elsif,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Then_Actions),
      N_Indexed_Component =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Atomic_Sync_Required,
               F_Assignment_OK,
               F_Do_Range_Check,
               F_Etype,
               F_Expressions,
               F_Generalized_Indexing,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Prefix,
               F_Raises_Constraint_Error),
      N_Null =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Do_Range_Check,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error),
      N_Qualified_Expression =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Do_Range_Check,
               F_Etype,
               F_Expression,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Qualified_Universal_Literal,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Subtype_Mark),
      N_Quantified_Expression =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_All_Present,
               F_Assignment_OK,
               F_Condition,
               F_Do_Range_Check,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Iterator_Specification,
               F_Loop_Parameter_Specification,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error),
      N_Aggregate =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Aggregate_Bounds,
               F_Assignment_OK,
               F_Compile_Time_Known_Aggregate,
               F_Component_Associations,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Expansion_Delayed,
               F_Expressions,
               F_Has_Dynamic_Length_Check,
               F_Has_Self_Reference,
               F_Is_Controlling_Actual,
               F_Is_Homogeneous_Aggregate,
               F_Is_Parenthesis_Aggregate,
               F_Is_Enum_Array_Aggregate,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Null_Record_Present,
               F_Raises_Constraint_Error),
      N_Allocator =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Do_Range_Check,
               F_Do_Storage_Check,
               F_Etype,
               F_Expression,
               F_For_Special_Return_Object,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Dynamic_Coextension,
               F_Is_Overloaded,
               F_Is_Static_Coextension,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_No_Initialization,
               F_Null_Exclusion_Present,
               F_Procedure_To_Call,
               F_Raises_Constraint_Error,
               F_Storage_Pool,
               F_Subpool_Handle_Name),
      N_Case_Expression =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Alternatives,
               F_Assignment_OK,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Etype,
               F_Expression,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error),
      N_Delta_Aggregate =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Component_Associations,
               F_Do_Range_Check,
               F_Etype,
               F_Expression,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Homogeneous_Aggregate,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error),
      N_Extension_Aggregate =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Ancestor_Part,
               F_Assignment_OK,
               F_Component_Associations,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Expansion_Delayed,
               F_Expressions,
               F_Has_Dynamic_Length_Check,
               F_Has_Self_Reference,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Null_Record_Present,
               F_Raises_Constraint_Error),
      N_Raise_Expression =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Do_Range_Check,
               F_Etype,
               F_Expression,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Name,
               F_Raises_Constraint_Error),
      N_Range =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Do_Range_Check,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_High_Bound,
               F_Includes_Infinities,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Low_Bound,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error),
      N_Reference =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Do_Range_Check,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Prefix,
               F_Raises_Constraint_Error),
      N_Selected_Component =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Atomic_Sync_Required,
               F_Assignment_OK,
               F_Do_Discriminant_Check,
               F_Do_Range_Check,
               F_Entity_Or_Associated_Node,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_In_Discriminant_Check,
               F_Is_Overloaded,
               F_Is_Prefixed_Call,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Prefix,
               F_Raises_Constraint_Error,
               F_Selector_Name),
      N_Slice =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Discrete_Range,
               F_Do_Range_Check,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Prefix,
               F_Raises_Constraint_Error),
      N_Target_Name =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Do_Range_Check,
               F_Etype,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error),
      N_Type_Conversion =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Conversion_OK,
               F_Do_Discriminant_Check,
               F_Do_Length_Check,
               F_Do_Overflow_Check,
               F_Do_Range_Check,
               F_Etype,
               F_Expression,
               F_Float_Truncate,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error,
               F_Rounded_Result,
               F_Subtype_Mark),
      N_Unchecked_Expression =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Do_Range_Check,
               F_Etype,
               F_Expression,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Must_Not_Freeze,
               F_Raises_Constraint_Error),
      N_Unchecked_Type_Conversion =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Assignment_OK,
               F_Do_Range_Check,
               F_Etype,
               F_Expression,
               F_Has_Dynamic_Length_Check,
               F_Is_Controlling_Actual,
               F_Is_Overloaded,
               F_Is_Static_Expression,
               F_Kill_Range_Check,
               F_Must_Not_Freeze,
               F_No_Truncation,
               F_Raises_Constraint_Error,
               F_Subtype_Mark),
      N_Subtype_Indication =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Constraint,
               F_Etype,
               F_Must_Not_Freeze,
               F_Subtype_Mark),
      N_Component_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Component_Definition,
               F_Defining_Identifier,
               F_Expression,
               F_More_Ids,
               F_Prev_Ids),
      N_Entry_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Corresponding_Body,
               F_Defining_Identifier,
               F_Discrete_Subtype_Definition,
               F_Must_Not_Override,
               F_Must_Override,
               F_Parameter_Specifications),
      N_Expression_Function =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Corresponding_Spec,
               F_Expression,
               F_Specification),
      N_Formal_Object_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Access_Definition,
               F_Default_Expression,
               F_Defining_Identifier,
               F_In_Present,
               F_More_Ids,
               F_Null_Exclusion_Present,
               F_Out_Present,
               F_Prev_Ids,
               F_Subtype_Mark),
      N_Formal_Type_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Default_Subtype_Mark,
               F_Defining_Identifier,
               F_Discriminant_Specifications,
               F_Formal_Type_Definition,
               F_Unknown_Discriminants_Present),
      N_Full_Type_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Defining_Identifier,
               F_Discr_Check_Funcs_Built,
               F_Discriminant_Specifications,
               F_Incomplete_View,
               F_Type_Definition),
      N_Incomplete_Type_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Defining_Identifier,
               F_Discriminant_Specifications,
               F_Premature_Use,
               F_Tagged_Present,
               F_Unknown_Discriminants_Present),
      N_Iterator_Specification =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Defining_Identifier,
               F_Iterator_Filter,
               F_Name,
               F_Of_Present,
               F_Reverse_Present,
               F_Subtype_Indication),
      N_Loop_Parameter_Specification =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Defining_Identifier,
               F_Discrete_Subtype_Definition,
               F_Iterator_Filter,
               F_Reverse_Present),
      N_Object_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Aliased_Present,
               F_Assignment_OK,
               F_Constant_Present,
               F_Corresponding_Generic_Association,
               F_Defining_Identifier,
               F_Exception_Junk,
               F_Expression,
               F_Handler_List_Entry,
               F_Has_Init_Expression,
               F_Is_Subprogram_Descriptor,
               F_More_Ids,
               F_No_Initialization,
               F_Null_Exclusion_Present,
               F_Object_Definition,
               F_Prev_Ids,
               F_Suppress_Assignment_Checks),
      N_Protected_Type_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Corresponding_Body,
               F_Defining_Identifier,
               F_Discriminant_Specifications,
               F_Interface_List,
               F_Protected_Definition),
      N_Private_Extension_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Abstract_Present,
               F_Defining_Identifier,
               F_Discriminant_Specifications,
               F_Interface_List,
               F_Limited_Present,
               F_Subtype_Indication,
               F_Synchronized_Present,
               F_Unknown_Discriminants_Present,
               F_Uninitialized_Variable),
      N_Private_Type_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Abstract_Present,
               F_Defining_Identifier,
               F_Discriminant_Specifications,
               F_Limited_Present,
               F_Tagged_Present,
               F_Unknown_Discriminants_Present),
      N_Subtype_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Defining_Identifier,
               F_Exception_Junk,
               F_Generic_Parent_Type,
               F_Null_Exclusion_Present,
               F_Subtype_Indication),
      N_Function_Specification =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Defining_Unit_Name,
               F_Generic_Parent,
               F_Must_Not_Override,
               F_Must_Override,
               F_Null_Exclusion_Present,
               F_Parameter_Specifications,
               F_Result_Definition),
      N_Procedure_Specification =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Defining_Unit_Name,
               F_Generic_Parent,
               F_Must_Not_Override,
               F_Must_Override,
               F_Null_Present,
               F_Null_Statement,
               F_Parameter_Specifications),
      N_Exception_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Defining_Identifier,
               F_Expression,
               F_More_Ids,
               F_Prev_Ids,
               F_Renaming_Exception),
      N_Formal_Package_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Box_Present,
               F_Defining_Identifier,
               F_Generic_Associations,
               F_Instance_Spec,
               F_Is_Known_Guaranteed_ABE,
               F_Name),
      N_Access_Function_Definition =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Null_Exclusion_Present,
               F_Null_Exclusion_In_Return_Present,
               F_Parameter_Specifications,
               F_Protected_Present,
               F_Result_Definition),
      N_Access_Procedure_Definition =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Null_Exclusion_Present,
               F_Parameter_Specifications,
               F_Protected_Present),
      N_Task_Type_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Corresponding_Body,
               F_Defining_Identifier,
               F_Discriminant_Specifications,
               F_Interface_List,
               F_Task_Definition),
      N_Package_Body_Stub =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Corresponding_Body,
               F_Corresponding_Spec_Of_Stub,
               F_Defining_Identifier,
               F_Library_Unit),
      N_Protected_Body_Stub =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Corresponding_Body,
               F_Corresponding_Spec_Of_Stub,
               F_Defining_Identifier,
               F_Library_Unit),
      N_Subprogram_Body_Stub =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Corresponding_Body,
               F_Corresponding_Spec_Of_Stub,
               F_Library_Unit,
               F_Specification),
      N_Task_Body_Stub =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Corresponding_Body,
               F_Corresponding_Spec_Of_Stub,
               F_Defining_Identifier,
               F_Library_Unit),
      N_Function_Instantiation =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Defining_Unit_Name,
               F_Generic_Associations,
               F_Instance_Spec,
               F_Is_Declaration_Level_Node,
               F_Is_Elaboration_Checks_OK_Node,
               F_Is_Elaboration_Warnings_OK_Node,
               F_Is_Known_Guaranteed_ABE,
               F_Is_SPARK_Mode_On_Node,
               F_Must_Not_Override,
               F_Must_Override,
               F_Name,
               F_Parent_Spec),
      N_Procedure_Instantiation =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Defining_Unit_Name,
               F_Generic_Associations,
               F_Instance_Spec,
               F_Is_Declaration_Level_Node,
               F_Is_Elaboration_Checks_OK_Node,
               F_Is_Elaboration_Warnings_OK_Node,
               F_Is_Known_Guaranteed_ABE,
               F_Is_SPARK_Mode_On_Node,
               F_Must_Not_Override,
               F_Must_Override,
               F_Name,
               F_Parent_Spec),
      N_Package_Instantiation =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Defining_Unit_Name,
               F_Generic_Associations,
               F_Instance_Spec,
               F_Is_Declaration_Level_Node,
               F_Is_Elaboration_Checks_OK_Node,
               F_Is_Elaboration_Warnings_OK_Node,
               F_Is_Known_Guaranteed_ABE,
               F_Is_SPARK_Mode_On_Node,
               F_Name,
               F_Parent_Spec),
      N_Package_Body =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_At_End_Proc,
               F_Corresponding_Spec,
               F_Declarations,
               F_Defining_Unit_Name,
               F_Handled_Statement_Sequence,
               F_Was_Originally_Stub),
      N_Subprogram_Body =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Activation_Chain_Entity,
               F_Acts_As_Spec,
               F_At_End_Proc,
               F_Bad_Is_Detected,
               F_Corresponding_Entry_Body,
               F_Corresponding_Spec,
               F_Declarations,
               F_Do_Storage_Check,
               F_Handled_Statement_Sequence,
               F_Has_Relative_Deadline_Pragma,
               F_Is_Entry_Barrier_Function,
               F_Is_Protected_Subprogram_Body,
               F_Is_Task_Body_Procedure,
               F_Is_Task_Master,
               F_Specification,
               F_Was_Attribute_Reference,
               F_Was_Expression_Function,
               F_Was_Originally_Stub),
      N_Protected_Body =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Corresponding_Spec,
               F_Declarations,
               F_Defining_Identifier,
               F_End_Label,
               F_Was_Originally_Stub),
      N_Task_Body =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Activation_Chain_Entity,
               F_At_End_Proc,
               F_Corresponding_Spec,
               F_Declarations,
               F_Defining_Identifier,
               F_Handled_Statement_Sequence,
               F_Is_Task_Master,
               F_Was_Originally_Stub),
      N_Implicit_Label_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Defining_Identifier,
               F_Label_Construct),
      N_Package_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Activation_Chain_Entity,
               F_Corresponding_Body,
               F_Parent_Spec,
               F_Specification),
      N_Single_Task_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Defining_Identifier,
               F_Interface_List,
               F_Task_Definition),
      N_Subprogram_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Body_To_Inline,
               F_Corresponding_Body,
               F_Is_Entry_Barrier_Function,
               F_Is_Task_Body_Procedure,
               F_Parent_Spec,
               F_Specification),
      N_Use_Package_Clause =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Entity_Or_Associated_Node,
               F_Hidden_By_Use_Clause,
               F_Is_Effective_Use_Clause,
               F_More_Ids,
               F_Name,
               F_Next_Use_Clause,
               F_Prev_Ids,
               F_Prev_Use_Clause),
      N_Generic_Package_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Activation_Chain_Entity,
               F_Corresponding_Body,
               F_Generic_Formal_Declarations,
               F_Parent_Spec,
               F_Specification),
      N_Generic_Subprogram_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Corresponding_Body,
               F_Generic_Formal_Declarations,
               F_Parent_Spec,
               F_Specification),
      N_Constrained_Array_Definition =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Component_Definition,
               F_Discrete_Subtype_Definitions),
      N_Unconstrained_Array_Definition =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Component_Definition,
               F_Subtype_Marks),
      N_Exception_Renaming_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Defining_Identifier,
               F_Name),
      N_Object_Renaming_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Access_Definition,
               F_Comes_From_Iterator,
               F_Corresponding_Generic_Association,
               F_Defining_Identifier,
               F_Name,
               F_Null_Exclusion_Present,
               F_Subtype_Mark),
      N_Package_Renaming_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Defining_Unit_Name,
               F_Name,
               F_Parent_Spec),
      N_Subprogram_Renaming_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Corresponding_Formal_Spec,
               F_Corresponding_Spec,
               F_From_Default,
               F_Name,
               F_Parent_Spec,
               F_Specification),
      N_Generic_Function_Renaming_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Defining_Unit_Name,
               F_Name,
               F_Parent_Spec),
      N_Generic_Package_Renaming_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Defining_Unit_Name,
               F_Name,
               F_Parent_Spec),
      N_Generic_Procedure_Renaming_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Defining_Unit_Name,
               F_Name,
               F_Parent_Spec),
      N_Abort_Statement =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Names),
      N_Accept_Statement =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Declarations,
               F_Entry_Direct_Name,
               F_Entry_Index,
               F_Handled_Statement_Sequence,
               F_Parameter_Specifications),
      N_Assignment_Statement =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Backwards_OK,
               F_Componentwise_Assignment,
               F_Do_Discriminant_Check,
               F_Do_Length_Check,
               F_Expression,
               F_Forwards_OK,
               F_Has_Target_Names,
               F_Is_Elaboration_Checks_OK_Node,
               F_Is_Elaboration_Code,
               F_Is_SPARK_Mode_On_Node,
               F_Name,
               F_No_Ctrl_Actions,
               F_Suppress_Assignment_Checks),
      N_Asynchronous_Select =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Abortable_Part,
               F_Triggering_Alternative),
      N_Block_Statement =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Activation_Chain_Entity,
               F_At_End_Proc,
               F_Cleanup_Actions,
               F_Declarations,
               F_Exception_Junk,
               F_Handled_Statement_Sequence,
               F_Has_Created_Identifier,
               F_Identifier,
               F_Is_Abort_Block,
               F_Is_Asynchronous_Call_Block,
               F_Is_Finalization_Wrapper,
               F_Is_Initialization_Block,
               F_Is_Task_Allocation_Block,
               F_Is_Task_Master),
      N_Case_Statement =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Alternatives,
               F_End_Span,
               F_Expression,
               F_From_Conditional_Expression),
      N_Code_Statement =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Expression),
      N_Compound_Statement =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Actions),
      N_Conditional_Entry_Call =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Else_Statements,
               F_Entry_Call_Alternative),
      N_Delay_Relative_Statement =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Expression),
      N_Delay_Until_Statement =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Expression),
      N_Entry_Call_Statement =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_First_Named_Actual,
               F_Is_Elaboration_Checks_OK_Node,
               F_Is_Elaboration_Warnings_OK_Node,
               F_Is_SPARK_Mode_On_Node,
               F_Name,
               F_Parameter_Associations),
      N_Free_Statement =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Actual_Designated_Subtype,
               F_Expression,
               F_Procedure_To_Call,
               F_Storage_Pool),
      N_Goto_Statement =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Exception_Junk,
               F_Name),
      N_Goto_When_Statement =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Condition,
               F_Name),
      N_Loop_Statement =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_End_Label,
               F_Has_Created_Identifier,
               F_Identifier,
               F_Is_Null_Loop,
               F_Iteration_Scheme,
               F_Statements,
               F_Suppress_Loop_Warnings),
      N_Null_Statement =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Next_Rep_Item),
      N_Raise_Statement =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Expression,
               F_Name),
      N_Raise_When_Statement =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Condition,
               F_Expression,
               F_Name),
      N_Requeue_Statement =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Abort_Present,
               F_Is_Elaboration_Checks_OK_Node,
               F_Is_Elaboration_Warnings_OK_Node,
               F_Is_SPARK_Mode_On_Node,
               F_Name),
      N_Simple_Return_Statement =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Comes_From_Extended_Return_Statement,
               F_Expression,
               F_Procedure_To_Call,
               F_Return_Statement_Entity,
               F_Storage_Pool),
      N_Extended_Return_Statement =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Handled_Statement_Sequence,
               F_Procedure_To_Call,
               F_Return_Object_Declarations,
               F_Return_Statement_Entity,
               F_Storage_Pool),
      N_Return_When_Statement =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Condition,
               F_Expression),
      N_Selective_Accept =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Else_Statements,
               F_Select_Alternatives),
      N_Timed_Entry_Call =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Delay_Alternative,
               F_Entry_Call_Alternative),
      N_Exit_Statement =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Condition,
               F_Name,
               F_Next_Exit_Statement),
      N_If_Statement =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Comes_From_Check_Or_Contract,
               F_Condition,
               F_Else_Statements,
               F_Elsif_Parts,
               F_End_Span,
               F_From_Conditional_Expression,
               F_Then_Statements),
      N_Accept_Alternative =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Accept_Handler_Records,
               F_Accept_Statement,
               F_Condition,
               F_Pragmas_Before,
               F_Statements),
      N_Delay_Alternative =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Condition,
               F_Delay_Statement,
               F_Pragmas_Before,
               F_Statements),
      N_Elsif_Part =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Condition,
               F_Condition_Actions,
               F_Then_Statements),
      N_Entry_Body_Formal_Part =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Condition,
               F_Entry_Index_Specification,
               F_Parameter_Specifications),
      N_Iteration_Scheme =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Condition,
               F_Condition_Actions,
               F_Iterator_Specification,
               F_Loop_Parameter_Specification),
      N_Terminate_Alternative =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Condition,
               F_Pragmas_After,
               F_Pragmas_Before),
      N_Formal_Abstract_Subprogram_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Box_Present,
               F_Default_Name,
               F_Expression,
               F_Specification),
      N_Formal_Concrete_Subprogram_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Box_Present,
               F_Default_Name,
               F_Expression,
               F_Specification),
      N_Push_Constraint_Error_Label =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Exception_Label),
      N_Push_Program_Error_Label =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Exception_Label),
      N_Push_Storage_Error_Label =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Exception_Label),
      N_Pop_Constraint_Error_Label =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link),
      N_Pop_Program_Error_Label =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link),
      N_Pop_Storage_Error_Label =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link),
      N_SCIL_Dispatch_Table_Tag_Init =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_SCIL_Entity),
      N_SCIL_Dispatching_Call =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_SCIL_Controlling_Tag,
               F_SCIL_Entity,
               F_SCIL_Target_Prim),
      N_SCIL_Membership_Test =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_SCIL_Entity,
               F_SCIL_Tag_Value),
      N_Abortable_Part =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Statements),
      N_Abstract_Subprogram_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Specification),
      N_Access_Definition =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Access_To_Subprogram_Definition,
               F_All_Present,
               F_Constant_Present,
               F_Null_Exclusion_Present,
               F_Subtype_Mark),
      N_Access_To_Object_Definition =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_All_Present,
               F_Constant_Present,
               F_Null_Excluding_Subtype,
               F_Null_Exclusion_Present,
               F_Subtype_Indication),
      N_Aspect_Specification =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Aspect_On_Partial_View,
               F_Aspect_Rep_Item,
               F_Class_Present,
               F_Entity_Or_Associated_Node,
               F_Expression,
               F_Identifier,
               F_Is_Boolean_Aspect,
               F_Is_Checked,
               F_Is_Delayed_Aspect,
               F_Is_Disabled,
               F_Is_Ignored,
               F_Next_Rep_Item,
               F_Split_PPC),
      N_Call_Marker =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Is_Declaration_Level_Node,
               F_Is_Dispatching_Call,
               F_Is_Elaboration_Checks_OK_Node,
               F_Is_Elaboration_Warnings_OK_Node,
               F_Is_Known_Guaranteed_ABE,
               F_Is_Preelaborable_Call,
               F_Is_Source_Call,
               F_Is_SPARK_Mode_On_Node,
               F_Target),
      N_Case_Expression_Alternative =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Actions,
               F_Discrete_Choices,
               F_Expression,
               F_Has_SP_Choice),
      N_Case_Statement_Alternative =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Discrete_Choices,
               F_Has_SP_Choice,
               F_Multidefined_Bindings,
               F_Statements),
      N_Compilation_Unit =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Acts_As_Spec,
               F_Aux_Decls_Node,
               F_Body_Required,
               F_Context_Items,
               F_Context_Pending,
               F_First_Inlined_Subprogram,
               F_Has_No_Elaboration_Code,
               F_Has_Pragma_Suppress_All,
               F_Library_Unit,
               F_Private_Present,
               F_Save_Invocation_Graph_Of_Body,
               F_Unit),
      N_Compilation_Unit_Aux =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Actions,
               F_Config_Pragmas,
               F_Declarations,
               F_Default_Storage_Pool,
               F_Pragmas_After),
      N_Component_Association =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Binding_Chars,
               F_Box_Present,
               F_Choices,
               F_Expression,
               F_Inherited_Discriminant,
               F_Loop_Actions,
               F_Was_Default_Init_Box_Association),
      N_Component_Definition =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Access_Definition,
               F_Aliased_Present,
               F_Null_Exclusion_Present,
               F_Subtype_Indication),
      N_Component_List =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Component_Items,
               F_Null_Present,
               F_Variant_Part),
      N_Contract =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Classifications,
               F_Contract_Test_Cases,
               F_Is_Expanded_Contract,
               F_Pre_Post_Conditions),
      N_Derived_Type_Definition =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Abstract_Present,
               F_Interface_List,
               F_Interface_Present,
               F_Limited_Present,
               F_Null_Exclusion_Present,
               F_Protected_Present,
               F_Record_Extension_Part,
               F_Subtype_Indication,
               F_Synchronized_Present,
               F_Task_Present),
      N_Decimal_Fixed_Point_Definition =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Delta_Expression,
               F_Digits_Expression,
               F_Real_Range_Specification),
      N_Defining_Program_Unit_Name =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Defining_Identifier,
               F_Name),
      N_Delta_Constraint =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Delta_Expression,
               F_Range_Constraint),
      N_Designator =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Identifier,
               F_Name),
      N_Digits_Constraint =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Digits_Expression,
               F_Range_Constraint),
      N_Discriminant_Association =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Expression,
               F_Selector_Names),
      N_Discriminant_Specification =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Defining_Identifier,
               F_Discriminant_Type,
               F_Expression,
               F_More_Ids,
               F_Null_Exclusion_Present,
               F_Prev_Ids),
      N_Enumeration_Type_Definition =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_End_Label,
               F_Literals),
      N_Entry_Body =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Activation_Chain_Entity,
               F_At_End_Proc,
               F_Declarations,
               F_Defining_Identifier,
               F_Entry_Body_Formal_Part,
               F_Handled_Statement_Sequence),
      N_Entry_Call_Alternative =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Entry_Call_Statement,
               F_Pragmas_Before,
               F_Statements),
      N_Entry_Index_Specification =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Defining_Identifier,
               F_Discrete_Subtype_Definition),
      N_Exception_Handler =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Choice_Parameter,
               F_Exception_Choices,
               F_Exception_Label,
               F_Has_Local_Raise,
               F_Local_Raise_Not_OK,
               F_Local_Raise_Statements,
               F_Statements),
      N_Floating_Point_Definition =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Digits_Expression,
               F_Real_Range_Specification),
      N_Formal_Decimal_Fixed_Point_Definition =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link),
      N_Formal_Derived_Type_Definition =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Abstract_Present,
               F_Interface_List,
               F_Limited_Present,
               F_Private_Present,
               F_Subtype_Mark,
               F_Synchronized_Present),
      N_Formal_Discrete_Type_Definition =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link),
      N_Formal_Floating_Point_Definition =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link),
      N_Formal_Modular_Type_Definition =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link),
      N_Formal_Ordinary_Fixed_Point_Definition =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link),
      N_Formal_Private_Type_Definition =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Abstract_Present,
               F_Limited_Present,
               F_Tagged_Present,
               F_Uninitialized_Variable),
      N_Formal_Incomplete_Type_Definition =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Tagged_Present),
      N_Formal_Signed_Integer_Type_Definition =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link),
      N_Freeze_Entity =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Access_Types_To_Process,
               F_Actions,
               F_Entity_Or_Associated_Node,
               F_First_Subtype_Link,
               F_TSS_Elist),
      N_Freeze_Generic_Entity =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Entity_Or_Associated_Node),
      N_Generic_Association =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Box_Present,
               F_Explicit_Generic_Actual_Parameter,
               F_Selector_Name),
      N_Handled_Sequence_Of_Statements =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_At_End_Proc,
               F_End_Label,
               F_Exception_Handlers,
               F_Statements),
      N_Index_Or_Discriminant_Constraint =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Constraints),
      N_Iterated_Component_Association =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Box_Present,
               F_Defining_Identifier,
               F_Discrete_Choices,
               F_Expression,
               F_Iterator_Specification,
               F_Loop_Actions),
      N_Iterated_Element_Association =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Box_Present,
               F_Expression,
               F_Iterator_Specification,
               F_Key_Expression,
               F_Loop_Actions,
               F_Loop_Parameter_Specification),
      N_Itype_Reference =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Itype),
      N_Label =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Exception_Junk,
               F_Identifier),
      N_Modular_Type_Definition =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Expression),
      N_Number_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Defining_Identifier,
               F_Expression,
               F_More_Ids,
               F_Prev_Ids),
      N_Ordinary_Fixed_Point_Definition =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Delta_Expression,
               F_Real_Range_Specification),
      N_Others_Choice =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_All_Others,
               F_Others_Discrete_Choices),
      N_Package_Specification =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Defining_Unit_Name,
               F_End_Label,
               F_Generic_Parent,
               F_Limited_View_Installed,
               F_Private_Declarations,
               F_Visible_Declarations),
      N_Parameter_Association =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Explicit_Actual_Parameter,
               F_Is_Accessibility_Actual,
               F_Next_Named_Actual,
               F_Selector_Name),
      N_Parameter_Specification =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Aliased_Present,
               F_Default_Expression,
               F_Defining_Identifier,
               F_Expression,
               F_In_Present,
               F_More_Ids,
               F_Null_Exclusion_Present,
               F_Out_Present,
               F_Parameter_Type,
               F_Prev_Ids),
      N_Pragma =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Class_Present,
               F_Corresponding_Aspect,
               F_From_Aspect_Specification,
               F_Import_Interface_Present,
               F_Is_Analyzed_Pragma,
               F_Is_Checked,
               F_Is_Checked_Ghost_Pragma,
               F_Is_Delayed_Aspect,
               F_Is_Disabled,
               F_Is_Generic_Contract_Pragma,
               F_Is_Ignored,
               F_Is_Ignored_Ghost_Pragma,
               F_Is_Inherited_Pragma,
               F_Next_Pragma,
               F_Next_Rep_Item,
               F_Pragma_Argument_Associations,
               F_Pragma_Identifier,
               F_Split_PPC,
               F_Uneval_Old_Accept,
               F_Uneval_Old_Warn),
      N_Protected_Definition =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_End_Label,
               F_Private_Declarations,
               F_Visible_Declarations),
      N_Range_Constraint =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Range_Expression),
      N_Real_Range_Specification =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_High_Bound,
               F_Low_Bound),
      N_Record_Definition =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Abstract_Present,
               F_Component_List,
               F_End_Label,
               F_Interface_List,
               F_Interface_Present,
               F_Limited_Present,
               F_Null_Present,
               F_Protected_Present,
               F_Synchronized_Present,
               F_Tagged_Present,
               F_Task_Present),
      N_Signed_Integer_Type_Definition =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_High_Bound,
               F_Low_Bound),
      N_Single_Protected_Declaration =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Defining_Identifier,
               F_Interface_List,
               F_Protected_Definition),
      N_Subunit =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Corresponding_Stub,
               F_Name,
               F_Proper_Body),
      N_Task_Definition =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_End_Label,
               F_Has_Relative_Deadline_Pragma,
               F_Has_Storage_Size_Pragma,
               F_Private_Declarations,
               F_Visible_Declarations),
      N_Triggering_Alternative =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Pragmas_Before,
               F_Statements,
               F_Triggering_Statement),
      N_Use_Type_Clause =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_All_Present,
               F_Hidden_By_Use_Clause,
               F_Is_Effective_Use_Clause,
               F_More_Ids,
               F_Next_Use_Clause,
               F_Prev_Ids,
               F_Prev_Use_Clause,
               F_Subtype_Mark,
               F_Used_Operations),
      N_Validate_Unchecked_Conversion =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Source_Type,
               F_Target_Type),
      N_Variable_Reference_Marker =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Is_Elaboration_Checks_OK_Node,
               F_Is_Elaboration_Warnings_OK_Node,
               F_Is_Read,
               F_Is_SPARK_Mode_On_Node,
               F_Is_Write,
               F_Target),
      N_Variant =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Component_List,
               F_Dcheck_Function,
               F_Discrete_Choices,
               F_Enclosing_Variant,
               F_Has_SP_Choice,
               F_Present_Expr),
      N_Variant_Part =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Name,
               F_Variants),
      N_With_Clause =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link,
               F_Context_Installed,
               F_Corresponding_Spec,
               F_Elaborate_All_Desirable,
               F_Elaborate_All_Present,
               F_Elaborate_Desirable,
               F_Elaborate_Present,
               F_First_Name,
               F_Implicit_With,
               F_Last_Name,
               F_Library_Unit,
               F_Limited_View_Installed,
               F_Limited_Present,
               F_Name,
               F_Next_Implicit_With,
               F_No_Entities_Ref_In_Spec,
               F_Parent_With,
               F_Private_Present,
               F_Unreferenced_In_Spec),
      N_Unused_At_End =>
        new A'(F_Nkind,
               F_Sloc,
               F_In_List,
               F_Rewrite_Ins,
               F_Comes_From_Source,
               F_Analyzed,
               F_Error_Posted,
               F_Small_Paren_Count,
               F_Check_Actuals,
               F_Has_Aspects,
               F_Is_Ignored_Ghost_Node,
               F_Link)); -- Node_Field_Table

   --  Table mapping fields to kind and offset:

   Field_Descriptors : constant array (Node_Or_Entity_Field) of Field_Descriptor :=
     (F_Nkind => (Node_Kind_Type_Field, 0, No_Type_Only), -- *8 = bits 0..7
      F_Sloc => (Source_Ptr_Field, 3, No_Type_Only), -- *32 = bits 96..127
      F_In_List => (Flag_Field, 20, No_Type_Only),
      F_Rewrite_Ins => (Flag_Field, 21, No_Type_Only),
      F_Comes_From_Source => (Flag_Field, 22, No_Type_Only),
      F_Analyzed => (Flag_Field, 23, No_Type_Only),
      F_Error_Posted => (Flag_Field, 24, No_Type_Only),
      F_Small_Paren_Count => (Small_Paren_Count_Type_Field, 13, No_Type_Only), -- *2 = bits 26..27
      F_Check_Actuals => (Flag_Field, 25, No_Type_Only),
      F_Has_Aspects => (Flag_Field, 28, No_Type_Only),
      F_Is_Ignored_Ghost_Node => (Flag_Field, 29, No_Type_Only),
      F_Link => (Union_Id_Field, 4, No_Type_Only), -- *32 = bits 128..159
      F_Abort_Present => (Flag_Field, 8, No_Type_Only),
      F_Abortable_Part => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Abstract_Present => (Flag_Field, 9, No_Type_Only),
      F_Accept_Handler_Records => (List_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Accept_Statement => (Node_Id_Field, 7, No_Type_Only), -- *32 = bits 224..255
      F_Access_Definition => (Node_Id_Field, 8, No_Type_Only), -- *32 = bits 256..287
      F_Access_To_Subprogram_Definition => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Access_Types_To_Process => (Elist_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Actions => (List_Id_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_Activation_Chain_Entity => (Node_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Acts_As_Spec => (Flag_Field, 11, No_Type_Only),
      F_Actual_Designated_Subtype => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Address_Warning_Posted => (Flag_Field, 9, No_Type_Only),
      F_Aggregate_Bounds => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Aliased_Present => (Flag_Field, 11, No_Type_Only),
      F_All_Others => (Flag_Field, 8, No_Type_Only),
      F_All_Present => (Flag_Field, 17, No_Type_Only),
      F_Alternatives => (List_Id_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_Ancestor_Part => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Atomic_Sync_Required => (Flag_Field, 19, No_Type_Only),
      F_Array_Aggregate => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Aspect_On_Partial_View => (Flag_Field, 14, No_Type_Only),
      F_Aspect_Rep_Item => (Node_Id_Field, 7, No_Type_Only), -- *32 = bits 224..255
      F_Assignment_OK => (Flag_Field, 8, No_Type_Only),
      F_Attribute_Name => (Name_Id_Field, 7, No_Type_Only), -- *32 = bits 224..255
      F_At_End_Proc => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Aux_Decls_Node => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Backwards_OK => (Flag_Field, 8, No_Type_Only),
      F_Bad_Is_Detected => (Flag_Field, 14, No_Type_Only),
      F_Binding_Chars => (Name_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Body_Required => (Flag_Field, 8, No_Type_Only),
      F_Body_To_Inline => (Node_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Box_Present => (Flag_Field, 8, No_Type_Only),
      F_Char_Literal_Value => (Unat_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Chars => (Name_Id_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_Check_Address_Alignment => (Flag_Field, 10, No_Type_Only),
      F_Choice_Parameter => (Node_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Choices => (List_Id_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_Class_Present => (Flag_Field, 9, No_Type_Only),
      F_Classifications => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Cleanup_Actions => (List_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Comes_From_Check_Or_Contract => (Flag_Field, 9, No_Type_Only),
      F_Comes_From_Extended_Return_Statement => (Flag_Field, 8, No_Type_Only),
      F_Comes_From_Iterator => (Flag_Field, 8, No_Type_Only),
      F_Compile_Time_Known_Aggregate => (Flag_Field, 30, No_Type_Only),
      F_Component_Associations => (List_Id_Field, 7, No_Type_Only), -- *32 = bits 224..255
      F_Component_Clauses => (List_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Component_Definition => (Node_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Component_Items => (List_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Component_List => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Component_Name => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Componentwise_Assignment => (Flag_Field, 9, No_Type_Only),
      F_Condition => (Node_Id_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_Condition_Actions => (List_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Config_Pragmas => (List_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Constant_Present => (Flag_Field, 14, No_Type_Only),
      F_Constraint => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Constraints => (List_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Context_Installed => (Flag_Field, 11, No_Type_Only),
      F_Context_Items => (List_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Context_Pending => (Flag_Field, 9, No_Type_Only),
      F_Contract_Test_Cases => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Controlling_Argument => (Node_Id_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_Conversion_OK => (Flag_Field, 17, No_Type_Only),
      F_Corresponding_Aspect => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Corresponding_Body => (Node_Id_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_Corresponding_Entry_Body => (Node_Id_Field, 9, No_Type_Only), -- *32 = bits 288..319
      F_Corresponding_Formal_Spec => (Node_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Corresponding_Generic_Association => (Node_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Corresponding_Integer_Value => (Valid_Uint_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Corresponding_Spec => (Node_Id_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_Corresponding_Spec_Of_Stub => (Node_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Corresponding_Stub => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Dcheck_Function => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Declarations => (List_Id_Field, 7, No_Type_Only), -- *32 = bits 224..255
      F_Default_Expression => (Node_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Default_Storage_Pool => (Node_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Default_Name => (Node_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Default_Subtype_Mark => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Defining_Identifier => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Defining_Unit_Name => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Delay_Alternative => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Delay_Statement => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Delta_Expression => (Node_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Digits_Expression => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Discr_Check_Funcs_Built => (Flag_Field, 8, No_Type_Only),
      F_Discrete_Choices => (List_Id_Field, 7, No_Type_Only), -- *32 = bits 224..255
      F_Discrete_Range => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Discrete_Subtype_Definition => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Discrete_Subtype_Definitions => (List_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Discriminant_Specifications => (List_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Discriminant_Type => (Node_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Do_Discriminant_Check => (Flag_Field, 18, No_Type_Only),
      F_Do_Division_Check => (Flag_Field, 17, No_Type_Only),
      F_Do_Length_Check => (Flag_Field, 30, No_Type_Only),
      F_Do_Overflow_Check => (Flag_Field, 19, No_Type_Only),
      F_Do_Range_Check => (Flag_Field, 10, No_Type_Only),
      F_Do_Storage_Check => (Flag_Field, 18, No_Type_Only),
      F_Elaborate_All_Desirable => (Flag_Field, 12, No_Type_Only),
      F_Elaborate_All_Present => (Flag_Field, 13, No_Type_Only),
      F_Elaborate_Desirable => (Flag_Field, 14, No_Type_Only),
      F_Elaborate_Present => (Flag_Field, 15, No_Type_Only),
      F_Else_Actions => (List_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Else_Statements => (List_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Elsif_Parts => (List_Id_Field, 7, No_Type_Only), -- *32 = bits 224..255
      F_Enclosing_Variant => (Node_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_End_Label => (Node_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_End_Span => (Unat_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Entity_Or_Associated_Node => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Entry_Body_Formal_Part => (Node_Id_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_Entry_Call_Alternative => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Entry_Call_Statement => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Entry_Direct_Name => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Entry_Index => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Entry_Index_Specification => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Etype => (Node_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Exception_Choices => (List_Id_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_Exception_Handlers => (List_Id_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_Exception_Junk => (Flag_Field, 12, No_Type_Only),
      F_Exception_Label => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Expansion_Delayed => (Flag_Field, 16, No_Type_Only),
      F_Explicit_Actual_Parameter => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Explicit_Generic_Actual_Parameter => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Expression => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Expression_Copy => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Expressions => (List_Id_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_First_Bit => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_First_Inlined_Subprogram => (Node_Id_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_First_Name => (Flag_Field, 16, No_Type_Only),
      F_First_Named_Actual => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_First_Subtype_Link => (Node_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Float_Truncate => (Flag_Field, 31, No_Type_Only),
      F_Formal_Type_Definition => (Node_Id_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_Forwards_OK => (Flag_Field, 10, No_Type_Only),
      F_For_Special_Return_Object => (Flag_Field, 19, No_Type_Only),
      F_From_Aspect_Specification => (Flag_Field, 14, No_Type_Only),
      F_From_At_Mod => (Flag_Field, 11, No_Type_Only),
      F_From_Conditional_Expression => (Flag_Field, 8, No_Type_Only),
      F_From_Default => (Flag_Field, 8, No_Type_Only),
      F_Generalized_Indexing => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Generic_Associations => (List_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Generic_Formal_Declarations => (List_Id_Field, 7, No_Type_Only), -- *32 = bits 224..255
      F_Generic_Parent => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Generic_Parent_Type => (Node_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Handled_Statement_Sequence => (Node_Id_Field, 8, No_Type_Only), -- *32 = bits 256..287
      F_Handler_List_Entry => (Node_Id_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_Has_Created_Identifier => (Flag_Field, 8, No_Type_Only),
      F_Has_Dereference_Action => (Flag_Field, 16, No_Type_Only),
      F_Has_Dynamic_Length_Check => (Flag_Field, 11, No_Type_Only),
      F_Has_Init_Expression => (Flag_Field, 15, No_Type_Only),
      F_Has_Local_Raise => (Flag_Field, 8, No_Type_Only),
      F_Has_No_Elaboration_Code => (Flag_Field, 12, No_Type_Only),
      F_Has_Pragma_Suppress_All => (Flag_Field, 13, No_Type_Only),
      F_Has_Private_View => (Flag_Field, 31, No_Type_Only),
      F_Has_Relative_Deadline_Pragma => (Flag_Field, 13, No_Type_Only),
      F_Has_Self_Reference => (Flag_Field, 17, No_Type_Only),
      F_Has_SP_Choice => (Flag_Field, 8, No_Type_Only),
      F_Has_Storage_Size_Pragma => (Flag_Field, 8, No_Type_Only),
      F_Has_Target_Names => (Flag_Field, 11, No_Type_Only),
      F_Has_Wide_Character => (Flag_Field, 16, No_Type_Only),
      F_Has_Wide_Wide_Character => (Flag_Field, 17, No_Type_Only),
      F_Header_Size_Added => (Flag_Field, 31, No_Type_Only),
      F_Hidden_By_Use_Clause => (Elist_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_High_Bound => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Identifier => (Node_Id_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_Interface_List => (List_Id_Field, 7, No_Type_Only), -- *32 = bits 224..255
      F_Interface_Present => (Flag_Field, 14, No_Type_Only),
      F_Implicit_With => (Flag_Field, 17, No_Type_Only),
      F_Import_Interface_Present => (Flag_Field, 15, No_Type_Only),
      F_In_Present => (Flag_Field, 8, No_Type_Only),
      F_Includes_Infinities => (Flag_Field, 16, No_Type_Only),
      F_Incomplete_View => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Inherited_Discriminant => (Flag_Field, 9, No_Type_Only),
      F_Instance_Spec => (Node_Id_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_Intval => (Valid_Uint_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Is_Abort_Block => (Flag_Field, 9, No_Type_Only),
      F_Is_Accessibility_Actual => (Flag_Field, 8, No_Type_Only),
      F_Is_Analyzed_Pragma => (Flag_Field, 16, No_Type_Only),
      F_Is_Asynchronous_Call_Block => (Flag_Field, 11, No_Type_Only),
      F_Is_Boolean_Aspect => (Flag_Field, 15, No_Type_Only),
      F_Is_Checked => (Flag_Field, 10, No_Type_Only),
      F_Is_Checked_Ghost_Pragma => (Flag_Field, 17, No_Type_Only),
      F_Is_Component_Left_Opnd => (Flag_Field, 16, No_Type_Only),
      F_Is_Component_Right_Opnd => (Flag_Field, 17, No_Type_Only),
      F_Is_Controlling_Actual => (Flag_Field, 12, No_Type_Only),
      F_Is_Declaration_Level_Node => (Flag_Field, 10, No_Type_Only),
      F_Is_Delayed_Aspect => (Flag_Field, 8, No_Type_Only),
      F_Is_Disabled => (Flag_Field, 11, No_Type_Only),
      F_Is_Dispatching_Call => (Flag_Field, 8, No_Type_Only),
      F_Is_Dynamic_Coextension => (Flag_Field, 30, No_Type_Only),
      F_Is_Effective_Use_Clause => (Flag_Field, 8, No_Type_Only),
      F_Is_Elaboration_Checks_OK_Node => (Flag_Field, 16, No_Type_Only),
      F_Is_Elaboration_Code => (Flag_Field, 12, No_Type_Only),
      F_Is_Elaboration_Warnings_OK_Node => (Flag_Field, 18, No_Type_Only),
      F_Is_Elsif => (Flag_Field, 16, No_Type_Only),
      F_Is_Entry_Barrier_Function => (Flag_Field, 8, No_Type_Only),
      F_Is_Expanded_Build_In_Place_Call => (Flag_Field, 31, No_Type_Only),
      F_Is_Expanded_Contract => (Flag_Field, 8, No_Type_Only),
      F_Is_Finalization_Wrapper => (Flag_Field, 13, No_Type_Only),
      F_Is_Folded_In_Parser => (Flag_Field, 18, No_Type_Only),
      F_Is_Generic_Contract_Pragma => (Flag_Field, 18, No_Type_Only),
      F_Is_Homogeneous_Aggregate => (Flag_Field, 19, No_Type_Only),
      F_Is_Parenthesis_Aggregate => (Flag_Field, 31, No_Type_Only),
      F_Is_Enum_Array_Aggregate => (Flag_Field, 256, No_Type_Only),
      F_Is_Ignored => (Flag_Field, 12, No_Type_Only),
      F_Is_Ignored_Ghost_Pragma => (Flag_Field, 19, No_Type_Only),
      F_Is_In_Discriminant_Check => (Flag_Field, 16, No_Type_Only),
      F_Is_Inherited_Pragma => (Flag_Field, 30, No_Type_Only),
      F_Is_Initialization_Block => (Flag_Field, 14, No_Type_Only),
      F_Is_Known_Guaranteed_ABE => (Flag_Field, 19, No_Type_Only),
      F_Is_Machine_Number => (Flag_Field, 16, No_Type_Only),
      F_Is_Null_Loop => (Flag_Field, 9, No_Type_Only),
      F_Is_Overloaded => (Flag_Field, 13, No_Type_Only),
      F_Is_Power_Of_2_For_Shift => (Flag_Field, 16, No_Type_Only),
      F_Is_Preelaborable_Call => (Flag_Field, 9, No_Type_Only),
      F_Is_Prefixed_Call => (Flag_Field, 17, No_Type_Only),
      F_Is_Protected_Subprogram_Body => (Flag_Field, 15, No_Type_Only),
      F_Is_Qualified_Universal_Literal => (Flag_Field, 16, No_Type_Only),
      F_Is_Read => (Flag_Field, 8, No_Type_Only),
      F_Is_Source_Call => (Flag_Field, 11, No_Type_Only),
      F_Is_SPARK_Mode_On_Node => (Flag_Field, 17, No_Type_Only),
      F_Is_Static_Coextension => (Flag_Field, 31, No_Type_Only),
      F_Is_Static_Expression => (Flag_Field, 14, No_Type_Only),
      F_Is_Subprogram_Descriptor => (Flag_Field, 18, No_Type_Only),
      F_Is_Task_Allocation_Block => (Flag_Field, 15, No_Type_Only),
      F_Is_Task_Body_Procedure => (Flag_Field, 9, No_Type_Only),
      F_Is_Task_Master => (Flag_Field, 10, No_Type_Only),
      F_Is_Write => (Flag_Field, 9, No_Type_Only),
      F_Iterator_Filter => (Node_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Iteration_Scheme => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Iterator_Specification => (Node_Id_Field, 8, No_Type_Only), -- *32 = bits 256..287
      F_Itype => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Key_Expression => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Kill_Range_Check => (Flag_Field, 16, No_Type_Only),
      F_Last_Bit => (Node_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Last_Name => (Flag_Field, 18, No_Type_Only),
      F_Library_Unit => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Label_Construct => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Left_Opnd => (Node_Id_Field, 7, No_Type_Only), -- *32 = bits 224..255
      F_Limited_View_Installed => (Flag_Field, 9, No_Type_Only),
      F_Limited_Present => (Flag_Field, 8, No_Type_Only),
      F_Literals => (List_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Local_Raise_Not_OK => (Flag_Field, 9, No_Type_Only),
      F_Local_Raise_Statements => (Elist_Id_Field, 7, No_Type_Only), -- *32 = bits 224..255
      F_Loop_Actions => (List_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Loop_Parameter_Specification => (Node_Id_Field, 7, No_Type_Only), -- *32 = bits 224..255
      F_Low_Bound => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Mod_Clause => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_More_Ids => (Flag_Field, 9, No_Type_Only),
      F_Multidefined_Bindings => (Flag_Field, 9, No_Type_Only),
      F_Must_Be_Byte_Aligned => (Flag_Field, 256, No_Type_Only),
      F_Must_Not_Freeze => (Flag_Field, 9, No_Type_Only),
      F_Must_Not_Override => (Flag_Field, 8, No_Type_Only),
      F_Must_Override => (Flag_Field, 9, No_Type_Only),
      F_Name => (Node_Id_Field, 7, No_Type_Only), -- *32 = bits 224..255
      F_Names => (List_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Next_Entity => (Node_Id_Field, 7, No_Type_Only), -- *32 = bits 224..255
      F_Next_Exit_Statement => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Next_Implicit_With => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Next_Named_Actual => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Next_Pragma => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Next_Rep_Item => (Node_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Next_Use_Clause => (Node_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_No_Ctrl_Actions => (Flag_Field, 14, No_Type_Only),
      F_No_Elaboration_Check => (Flag_Field, 30, No_Type_Only),
      F_No_Entities_Ref_In_Spec => (Flag_Field, 19, No_Type_Only),
      F_No_Initialization => (Flag_Field, 17, No_Type_Only),
      F_No_Minimize_Eliminate => (Flag_Field, 16, No_Type_Only),
      F_No_Side_Effect_Removal => (Flag_Field, 256, No_Type_Only),
      F_No_Truncation => (Flag_Field, 17, No_Type_Only),
      F_Null_Excluding_Subtype => (Flag_Field, 8, No_Type_Only),
      F_Null_Exclusion_Present => (Flag_Field, 16, No_Type_Only),
      F_Null_Exclusion_In_Return_Present => (Flag_Field, 8, No_Type_Only),
      F_Null_Present => (Flag_Field, 10, No_Type_Only),
      F_Null_Record_Present => (Flag_Field, 18, No_Type_Only),
      F_Null_Statement => (Node_Id_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_Object_Definition => (Node_Id_Field, 7, No_Type_Only), -- *32 = bits 224..255
      F_Of_Present => (Flag_Field, 9, No_Type_Only),
      F_Original_Discriminant => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Original_Entity => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Others_Discrete_Choices => (List_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Out_Present => (Flag_Field, 12, No_Type_Only),
      F_Parameter_Associations => (List_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Parameter_Specifications => (List_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Parameter_Type => (Node_Id_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_Parent_Spec => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Parent_With => (Flag_Field, 30, No_Type_Only),
      F_Position => (Node_Id_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_Pragma_Argument_Associations => (List_Id_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_Pragma_Identifier => (Node_Id_Field, 7, No_Type_Only), -- *32 = bits 224..255
      F_Pragmas_After => (List_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Pragmas_Before => (List_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Pre_Post_Conditions => (Node_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Prefix => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Premature_Use => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Present_Expr => (Valid_Uint_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_Prev_Ids => (Flag_Field, 10, No_Type_Only),
      F_Prev_Use_Clause => (Node_Id_Field, 8, No_Type_Only), -- *32 = bits 256..287
      F_Print_In_Hex => (Flag_Field, 16, No_Type_Only),
      F_Private_Declarations => (List_Id_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_Private_Present => (Flag_Field, 10, No_Type_Only),
      F_Procedure_To_Call => (Node_Id_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_Proper_Body => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Protected_Definition => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Protected_Present => (Flag_Field, 13, No_Type_Only),
      F_Raises_Constraint_Error => (Flag_Field, 15, No_Type_Only),
      F_Range_Constraint => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Range_Expression => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Real_Range_Specification => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Realval => (Ureal_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_Reason => (Unat_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Record_Extension_Part => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Redundant_Use => (Flag_Field, 30, No_Type_Only),
      F_Renaming_Exception => (Node_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Result_Definition => (Node_Id_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_Return_Object_Declarations => (List_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Return_Statement_Entity => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Reverse_Present => (Flag_Field, 8, No_Type_Only),
      F_Right_Opnd => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Rounded_Result => (Flag_Field, 16, No_Type_Only),
      F_Save_Invocation_Graph_Of_Body => (Flag_Field, 14, No_Type_Only),
      F_SCIL_Controlling_Tag => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_SCIL_Entity => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_SCIL_Tag_Value => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_SCIL_Target_Prim => (Node_Id_Field, 5, No_Type_Only), -- *32 = bits 160..191
      F_Scope => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Select_Alternatives => (List_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Selector_Name => (Node_Id_Field, 7, No_Type_Only), -- *32 = bits 224..255
      F_Selector_Names => (List_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Shift_Count_OK => (Flag_Field, 16, No_Type_Only),
      F_Source_Type => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Specification => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Split_PPC => (Flag_Field, 13, No_Type_Only),
      F_Statements => (List_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Storage_Pool => (Node_Id_Field, 7, No_Type_Only), -- *32 = bits 224..255
      F_Subpool_Handle_Name => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Strval => (String_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Subtype_Indication => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Subtype_Mark => (Node_Id_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_Subtype_Marks => (List_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Suppress_Assignment_Checks => (Flag_Field, 13, No_Type_Only),
      F_Suppress_Loop_Warnings => (Flag_Field, 10, No_Type_Only),
      F_Synchronized_Present => (Flag_Field, 12, No_Type_Only),
      F_Tagged_Present => (Flag_Field, 11, No_Type_Only),
      F_Target => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Target_Type => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Task_Definition => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Task_Present => (Flag_Field, 15, No_Type_Only),
      F_Then_Actions => (List_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Then_Statements => (List_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Triggering_Alternative => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Triggering_Statement => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_TSS_Elist => (Elist_Id_Field, 7, No_Type_Only), -- *32 = bits 224..255
      F_Type_Definition => (Node_Id_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_Uneval_Old_Accept => (Flag_Field, 31, No_Type_Only),
      F_Uneval_Old_Warn => (Flag_Field, 256, No_Type_Only),
      F_Unit => (Node_Id_Field, 7, No_Type_Only), -- *32 = bits 224..255
      F_Unknown_Discriminants_Present => (Flag_Field, 10, No_Type_Only),
      F_Unreferenced_In_Spec => (Flag_Field, 31, No_Type_Only),
      F_Variant_Part => (Node_Id_Field, 2, No_Type_Only), -- *32 = bits 64..95
      F_Variants => (List_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Visible_Declarations => (List_Id_Field, 7, No_Type_Only), -- *32 = bits 224..255
      F_Uninitialized_Variable => (Node_Id_Field, 6, No_Type_Only), -- *32 = bits 192..223
      F_Used_Operations => (Elist_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Was_Attribute_Reference => (Flag_Field, 16, No_Type_Only),
      F_Was_Default_Init_Box_Association => (Flag_Field, 10, No_Type_Only),
      F_Was_Expression_Function => (Flag_Field, 17, No_Type_Only),
      F_Was_Originally_Stub => (Flag_Field, 12, No_Type_Only),
      F_Ekind => (Entity_Kind_Type_Field, 1, No_Type_Only), -- *8 = bits 8..15
      F_Basic_Convention => (Convention_Id_Field, 32, No_Type_Only), -- *8 = bits 256..263
      F_Abstract_States => (Elist_Id_Field, 20, No_Type_Only), -- *32 = bits 640..671
      F_Accept_Address => (Elist_Id_Field, 56, No_Type_Only), -- *32 = bits 1792..1823
      F_Access_Disp_Table => (Elist_Id_Field, 44, Impl_Base_Type_Only), -- *32 = bits 1408..1439
      F_Access_Disp_Table_Elab_Flag => (Node_Id_Field, 45, Impl_Base_Type_Only), -- *32 = bits 1440..1471
      F_Access_Subprogram_Wrapper => (Node_Id_Field, 36, No_Type_Only), -- *32 = bits 1152..1183
      F_Activation_Record_Component => (Node_Id_Field, 31, No_Type_Only), -- *32 = bits 992..1023
      F_Actual_Subtype => (Node_Id_Field, 33, No_Type_Only), -- *32 = bits 1056..1087
      F_Address_Taken => (Flag_Field, 30, No_Type_Only),
      F_Alignment => (Unat_Field, 21, No_Type_Only), -- *32 = bits 672..703
      F_Anonymous_Designated_Type => (Node_Id_Field, 45, No_Type_Only), -- *32 = bits 1440..1471
      F_Anonymous_Masters => (Elist_Id_Field, 19, No_Type_Only), -- *32 = bits 608..639
      F_Anonymous_Object => (Node_Id_Field, 47, No_Type_Only), -- *32 = bits 1504..1535
      F_Associated_Entity => (Node_Id_Field, 9, No_Type_Only), -- *32 = bits 288..319
      F_Associated_Formal_Package => (Node_Id_Field, 51, No_Type_Only), -- *32 = bits 1632..1663
      F_Associated_Node_For_Itype => (Node_Id_Field, 33, No_Type_Only), -- *32 = bits 1056..1087
      F_Associated_Storage_Pool => (Node_Id_Field, 34, Root_Type_Only), -- *32 = bits 1088..1119
      F_Barrier_Function => (Node_Id_Field, 19, No_Type_Only), -- *32 = bits 608..639
      F_BIP_Initialization_Call => (Node_Id_Field, 38, No_Type_Only), -- *32 = bits 1216..1247
      F_Block_Node => (Node_Id_Field, 19, No_Type_Only), -- *32 = bits 608..639
      F_Body_Entity => (Node_Id_Field, 26, No_Type_Only), -- *32 = bits 832..863
      F_Body_Needed_For_Inlining => (Flag_Field, 541, No_Type_Only),
      F_Body_Needed_For_SAL => (Flag_Field, 540, No_Type_Only),
      F_Body_References => (Elist_Id_Field, 19, No_Type_Only), -- *32 = bits 608..639
      F_C_Pass_By_Copy => (Flag_Field, 911, Impl_Base_Type_Only),
      F_Can_Never_Be_Null => (Flag_Field, 31, No_Type_Only),
      F_Can_Use_Internal_Rep => (Flag_Field, 864, Base_Type_Only),
      F_Checks_May_Be_Suppressed => (Flag_Field, 264, No_Type_Only),
      F_Class_Postconditions => (Node_Id_Field, 29, No_Type_Only), -- *32 = bits 928..959
      F_Class_Preconditions => (Node_Id_Field, 32, No_Type_Only), -- *32 = bits 1024..1055
      F_Class_Preconditions_Subprogram => (Node_Id_Field, 42, No_Type_Only), -- *32 = bits 1344..1375
      F_Class_Wide_Type => (Node_Id_Field, 29, No_Type_Only), -- *32 = bits 928..959
      F_Cloned_Subtype => (Node_Id_Field, 50, No_Type_Only), -- *32 = bits 1600..1631
      F_Component_Alignment => (Component_Alignment_Kind_Field, 454, Base_Type_Only), -- *2 = bits 908..909
      F_Component_Bit_Offset => (Uint_Field, 21, No_Type_Only), -- *32 = bits 672..703
      F_Component_Clause => (Node_Id_Field, 24, No_Type_Only), -- *32 = bits 768..799
      F_Component_Size => (Uint_Field, 36, Impl_Base_Type_Only), -- *32 = bits 1152..1183
      F_Component_Type => (Node_Id_Field, 41, Impl_Base_Type_Only), -- *32 = bits 1312..1343
      F_Contract => (Node_Id_Field, 25, No_Type_Only), -- *32 = bits 800..831
      F_Contract_Wrapper => (Node_Id_Field, 20, No_Type_Only), -- *32 = bits 640..671
      F_Corresponding_Concurrent_Type => (Node_Id_Field, 47, No_Type_Only), -- *32 = bits 1504..1535
      F_Corresponding_Discriminant => (Node_Id_Field, 28, No_Type_Only), -- *32 = bits 896..927
      F_Corresponding_Equality => (Node_Id_Field, 33, No_Type_Only), -- *32 = bits 1056..1087
      F_Corresponding_Function => (Node_Id_Field, 30, No_Type_Only), -- *32 = bits 960..991
      F_Corresponding_Procedure => (Node_Id_Field, 62, No_Type_Only), -- *32 = bits 1984..2015
      F_Corresponding_Record_Component => (Node_Id_Field, 25, No_Type_Only), -- *32 = bits 800..831
      F_Corresponding_Record_Type => (Node_Id_Field, 46, No_Type_Only), -- *32 = bits 1472..1503
      F_Corresponding_Remote_Type => (Node_Id_Field, 49, No_Type_Only), -- *32 = bits 1568..1599
      F_CR_Discriminant => (Node_Id_Field, 52, No_Type_Only), -- *32 = bits 1664..1695
      F_Current_Use_Clause => (Node_Id_Field, 23, No_Type_Only), -- *32 = bits 736..767
      F_Current_Value => (Node_Id_Field, 23, No_Type_Only), -- *32 = bits 736..767
      F_Debug_Info_Off => (Flag_Field, 265, No_Type_Only),
      F_Debug_Renaming_Link => (Node_Id_Field, 47, No_Type_Only), -- *32 = bits 1504..1535
      F_Default_Aspect_Component_Value => (Node_Id_Field, 43, Base_Type_Only), -- *32 = bits 1376..1407
      F_Default_Aspect_Value => (Node_Id_Field, 36, Base_Type_Only), -- *32 = bits 1152..1183
      F_Default_Expr_Function => (Node_Id_Field, 24, No_Type_Only), -- *32 = bits 768..799
      F_Default_Expressions_Processed => (Flag_Field, 266, No_Type_Only),
      F_Default_Value => (Node_Id_Field, 25, No_Type_Only), -- *32 = bits 800..831
      F_Delay_Cleanups => (Flag_Field, 267, No_Type_Only),
      F_Delay_Subprogram_Descriptors => (Flag_Field, 268, No_Type_Only),
      F_Delta_Value => (Ureal_Field, 34, No_Type_Only), -- *32 = bits 1088..1119
      F_Dependent_Instances => (Elist_Id_Field, 30, No_Type_Only), -- *32 = bits 960..991
      F_Depends_On_Private => (Flag_Field, 269, No_Type_Only),
      F_Derived_Type_Link => (Node_Id_Field, 32, No_Type_Only), -- *32 = bits 1024..1055
      F_Digits_Value => (Upos_Field, 31, No_Type_Only), -- *32 = bits 992..1023
      F_Predicated_Parent => (Node_Id_Field, 47, No_Type_Only), -- *32 = bits 1504..1535
      F_Predicates_Ignored => (Flag_Field, 865, No_Type_Only),
      F_Direct_Primitive_Operations => (Elist_Id_Field, 37, No_Type_Only), -- *32 = bits 1184..1215
      F_Directly_Designated_Type => (Node_Id_Field, 36, No_Type_Only), -- *32 = bits 1152..1183
      F_Disable_Controlled => (Flag_Field, 270, Base_Type_Only),
      F_Discard_Names => (Flag_Field, 271, No_Type_Only),
      F_Discriminal => (Node_Id_Field, 29, No_Type_Only), -- *32 = bits 928..959
      F_Discriminal_Link => (Node_Id_Field, 27, No_Type_Only), -- *32 = bits 864..895
      F_Discriminant_Checking_Func => (Node_Id_Field, 28, No_Type_Only), -- *32 = bits 896..927
      F_Discriminant_Constraint => (Elist_Id_Field, 42, No_Type_Only), -- *32 = bits 1344..1375
      F_Discriminant_Default_Value => (Node_Id_Field, 32, No_Type_Only), -- *32 = bits 1024..1055
      F_Discriminant_Number => (Upos_Field, 53, No_Type_Only), -- *32 = bits 1696..1727
      F_Dispatch_Table_Wrappers => (Elist_Id_Field, 48, Impl_Base_Type_Only), -- *32 = bits 1536..1567
      F_Dynamic_Call_Helper => (Node_Id_Field, 44, No_Type_Only), -- *32 = bits 1408..1439
      F_DT_Entry_Count => (Uint_Field, 30, No_Type_Only), -- *32 = bits 960..991
      F_DT_Offset_To_Top_Func => (Node_Id_Field, 31, No_Type_Only), -- *32 = bits 992..1023
      F_DT_Position => (Uint_Field, 56, No_Type_Only), -- *32 = bits 1792..1823
      F_DTC_Entity => (Node_Id_Field, 57, No_Type_Only), -- *32 = bits 1824..1855
      F_Elaborate_Body_Desirable => (Flag_Field, 542, No_Type_Only),
      F_Elaboration_Entity => (Node_Id_Field, 21, No_Type_Only), -- *32 = bits 672..703
      F_Elaboration_Entity_Required => (Flag_Field, 539, No_Type_Only),
      F_Encapsulating_State => (Node_Id_Field, 37, No_Type_Only), -- *32 = bits 1184..1215
      F_Enclosing_Scope => (Node_Id_Field, 54, No_Type_Only), -- *32 = bits 1728..1759
      F_Entry_Accepted => (Flag_Field, 540, No_Type_Only),
      F_Entry_Bodies_Array => (Node_Id_Field, 57, No_Type_Only), -- *32 = bits 1824..1855
      F_Entry_Cancel_Parameter => (Node_Id_Field, 48, No_Type_Only), -- *32 = bits 1536..1567
      F_Entry_Component => (Node_Id_Field, 28, No_Type_Only), -- *32 = bits 896..927
      F_Entry_Formal => (Node_Id_Field, 20, No_Type_Only), -- *32 = bits 640..671
      F_Entry_Index_Constant => (Node_Id_Field, 18, No_Type_Only), -- *32 = bits 576..607
      F_Entry_Max_Queue_Lengths_Array => (Node_Id_Field, 41, No_Type_Only), -- *32 = bits 1312..1343
      F_Entry_Parameters_Type => (Node_Id_Field, 43, No_Type_Only), -- *32 = bits 1376..1407
      F_Enum_Pos_To_Rep => (Node_Id_Field, 45, No_Type_Only), -- *32 = bits 1440..1471
      F_Enumeration_Pos => (Unat_Field, 20, No_Type_Only), -- *32 = bits 640..671
      F_Enumeration_Rep => (Valid_Uint_Field, 24, No_Type_Only), -- *32 = bits 768..799
      F_Enumeration_Rep_Expr => (Node_Id_Field, 25, No_Type_Only), -- *32 = bits 800..831
      F_Equivalent_Type => (Node_Id_Field, 45, No_Type_Only), -- *32 = bits 1440..1471
      F_Esize => (Uint_Field, 19, No_Type_Only), -- *32 = bits 608..639
      F_Extra_Accessibility => (Node_Id_Field, 34, No_Type_Only), -- *32 = bits 1088..1119
      F_Extra_Accessibility_Of_Result => (Node_Id_Field, 43, No_Type_Only), -- *32 = bits 1376..1407
      F_Extra_Constrained => (Node_Id_Field, 36, No_Type_Only), -- *32 = bits 1152..1183
      F_Extra_Formal => (Node_Id_Field, 29, No_Type_Only), -- *32 = bits 928..959
      F_Extra_Formals => (Node_Id_Field, 41, No_Type_Only), -- *32 = bits 1312..1343
      F_Finalization_Master => (Node_Id_Field, 43, Root_Type_Only), -- *32 = bits 1376..1407
      F_Finalize_Storage_Only => (Flag_Field, 866, Base_Type_Only),
      F_Finalizer => (Node_Id_Field, 27, No_Type_Only), -- *32 = bits 864..895
      F_First_Entity => (Node_Id_Field, 31, No_Type_Only), -- *32 = bits 992..1023
      F_First_Exit_Statement => (Node_Id_Field, 19, No_Type_Only), -- *32 = bits 608..639
      F_First_Index => (Node_Id_Field, 44, No_Type_Only), -- *32 = bits 1408..1439
      F_First_Literal => (Node_Id_Field, 34, No_Type_Only), -- *32 = bits 1088..1119
      F_First_Private_Entity => (Node_Id_Field, 45, No_Type_Only), -- *32 = bits 1440..1471
      F_First_Rep_Item => (Node_Id_Field, 10, No_Type_Only), -- *32 = bits 320..351
      F_Freeze_Node => (Node_Id_Field, 11, No_Type_Only), -- *32 = bits 352..383
      F_From_Limited_With => (Flag_Field, 17, No_Type_Only),
      F_Full_View => (Node_Id_Field, 26, No_Type_Only), -- *32 = bits 832..863
      F_Generic_Homonym => (Node_Id_Field, 55, No_Type_Only), -- *32 = bits 1760..1791
      F_Generic_Renamings => (Elist_Id_Field, 39, No_Type_Only), -- *32 = bits 1248..1279
      F_Handler_Records => (List_Id_Field, 38, No_Type_Only), -- *32 = bits 1216..1247
      F_Has_Aliased_Components => (Flag_Field, 272, Impl_Base_Type_Only),
      F_Has_Alignment_Clause => (Flag_Field, 273, No_Type_Only),
      F_Has_All_Calls_Remote => (Flag_Field, 274, No_Type_Only),
      F_Has_Atomic_Components => (Flag_Field, 275, Impl_Base_Type_Only),
      F_Has_Biased_Representation => (Flag_Field, 276, No_Type_Only),
      F_Has_Completion => (Flag_Field, 277, No_Type_Only),
      F_Has_Completion_In_Body => (Flag_Field, 867, No_Type_Only),
      F_Has_Complex_Representation => (Flag_Field, 912, Impl_Base_Type_Only),
      F_Has_Component_Size_Clause => (Flag_Field, 911, Impl_Base_Type_Only),
      F_Has_Constrained_Partial_View => (Flag_Field, 868, Base_Type_Only),
      F_Has_Contiguous_Rep => (Flag_Field, 278, No_Type_Only),
      F_Has_Controlled_Component => (Flag_Field, 279, Base_Type_Only),
      F_Has_Controlling_Result => (Flag_Field, 280, No_Type_Only),
      F_Has_Convention_Pragma => (Flag_Field, 281, No_Type_Only),
      F_Has_Default_Aspect => (Flag_Field, 282, Base_Type_Only),
      F_Has_Delayed_Aspects => (Flag_Field, 283, No_Type_Only),
      F_Has_Delayed_Freeze => (Flag_Field, 284, No_Type_Only),
      F_Has_Delayed_Rep_Aspects => (Flag_Field, 285, No_Type_Only),
      F_Has_Discriminants => (Flag_Field, 869, No_Type_Only),
      F_Has_Dispatch_Table => (Flag_Field, 870, No_Type_Only),
      F_Has_Dynamic_Predicate_Aspect => (Flag_Field, 871, No_Type_Only),
      F_Has_Enumeration_Rep_Clause => (Flag_Field, 907, No_Type_Only),
      F_Has_Exit => (Flag_Field, 286, No_Type_Only),
      F_Has_Expanded_Contract => (Flag_Field, 739, No_Type_Only),
      F_Has_Forward_Instantiation => (Flag_Field, 287, No_Type_Only),
      F_Has_Fully_Qualified_Name => (Flag_Field, 384, No_Type_Only),
      F_Has_Gigi_Rep_Item => (Flag_Field, 385, No_Type_Only),
      F_Has_Homonym => (Flag_Field, 386, No_Type_Only),
      F_Has_Implicit_Dereference => (Flag_Field, 387, No_Type_Only),
      F_Has_Independent_Components => (Flag_Field, 388, Impl_Base_Type_Only),
      F_Has_Inheritable_Invariants => (Flag_Field, 872, Base_Type_Only),
      F_Has_Inherited_DIC => (Flag_Field, 873, Base_Type_Only),
      F_Has_Inherited_Invariants => (Flag_Field, 874, Base_Type_Only),
      F_Has_Initial_Value => (Flag_Field, 539, No_Type_Only),
      F_Has_Loop_Entry_Attributes => (Flag_Field, 537, No_Type_Only),
      F_Has_Machine_Radix_Clause => (Flag_Field, 538, No_Type_Only),
      F_Has_Master_Entity => (Flag_Field, 389, No_Type_Only),
      F_Has_Missing_Return => (Flag_Field, 541, No_Type_Only),
      F_Has_Nested_Block_With_Handler => (Flag_Field, 390, No_Type_Only),
      F_Has_Nested_Subprogram => (Flag_Field, 740, No_Type_Only),
      F_Has_Non_Standard_Rep => (Flag_Field, 391, Impl_Base_Type_Only),
      F_Has_Object_Size_Clause => (Flag_Field, 875, No_Type_Only),
      F_Has_Out_Or_In_Out_Parameter => (Flag_Field, 738, No_Type_Only),
      F_Has_Own_DIC => (Flag_Field, 876, Base_Type_Only),
      F_Has_Own_Invariants => (Flag_Field, 877, Base_Type_Only),
      F_Has_Partial_Visible_Refinement => (Flag_Field, 538, No_Type_Only),
      F_Has_Per_Object_Constraint => (Flag_Field, 392, No_Type_Only),
      F_Has_Pragma_Controlled => (Flag_Field, 538, Impl_Base_Type_Only),
      F_Has_Pragma_Elaborate_Body => (Flag_Field, 393, No_Type_Only),
      F_Has_Pragma_Inline => (Flag_Field, 394, No_Type_Only),
      F_Has_Pragma_Inline_Always => (Flag_Field, 395, No_Type_Only),
      F_Has_Pragma_No_Inline => (Flag_Field, 396, No_Type_Only),
      F_Has_Pragma_Ordered => (Flag_Field, 908, Impl_Base_Type_Only),
      F_Has_Pragma_Pack => (Flag_Field, 538, Impl_Base_Type_Only),
      F_Has_Pragma_Preelab_Init => (Flag_Field, 397, No_Type_Only),
      F_Has_Pragma_Pure => (Flag_Field, 398, No_Type_Only),
      F_Has_Pragma_Pure_Function => (Flag_Field, 399, No_Type_Only),
      F_Has_Pragma_Thread_Local_Storage => (Flag_Field, 400, No_Type_Only),
      F_Has_Pragma_Unmodified => (Flag_Field, 401, No_Type_Only),
      F_Has_Pragma_Unreferenced => (Flag_Field, 402, No_Type_Only),
      F_Has_Pragma_Unreferenced_Objects => (Flag_Field, 878, No_Type_Only),
      F_Has_Pragma_Unused => (Flag_Field, 403, No_Type_Only),
      F_Has_Predicates => (Flag_Field, 539, No_Type_Only),
      F_Has_Primitive_Operations => (Flag_Field, 879, Base_Type_Only),
      F_Has_Private_Ancestor => (Flag_Field, 404, No_Type_Only),
      F_Has_Private_Declaration => (Flag_Field, 405, No_Type_Only),
      F_Has_Private_Extension => (Flag_Field, 880, No_Type_Only),
      F_Has_Protected => (Flag_Field, 406, Base_Type_Only),
      F_Has_Qualified_Name => (Flag_Field, 407, No_Type_Only),
      F_Has_RACW => (Flag_Field, 897, No_Type_Only),
      F_Has_Record_Rep_Clause => (Flag_Field, 913, Impl_Base_Type_Only),
      F_Has_Recursive_Call => (Flag_Field, 741, No_Type_Only),
      F_Has_Shift_Operator => (Flag_Field, 907, Base_Type_Only),
      F_Has_Size_Clause => (Flag_Field, 408, No_Type_Only),
      F_Has_Small_Clause => (Flag_Field, 538, No_Type_Only),
      F_Has_Specified_Layout => (Flag_Field, 881, Impl_Base_Type_Only),
      F_Has_Specified_Stream_Input => (Flag_Field, 882, No_Type_Only),
      F_Has_Specified_Stream_Output => (Flag_Field, 883, No_Type_Only),
      F_Has_Specified_Stream_Read => (Flag_Field, 884, No_Type_Only),
      F_Has_Specified_Stream_Write => (Flag_Field, 885, No_Type_Only),
      F_Has_Static_Discriminants => (Flag_Field, 540, No_Type_Only),
      F_Has_Static_Predicate => (Flag_Field, 886, No_Type_Only),
      F_Has_Static_Predicate_Aspect => (Flag_Field, 887, No_Type_Only),
      F_Has_Storage_Size_Clause => (Flag_Field, 908, Impl_Base_Type_Only),
      F_Has_Stream_Size_Clause => (Flag_Field, 409, No_Type_Only),
      F_Has_Task => (Flag_Field, 410, Base_Type_Only),
      F_Has_Timing_Event => (Flag_Field, 411, Base_Type_Only),
      F_Has_Thunks => (Flag_Field, 412, No_Type_Only),
      F_Has_Unchecked_Union => (Flag_Field, 413, Base_Type_Only),
      F_Has_Unknown_Discriminants => (Flag_Field, 888, No_Type_Only),
      F_Has_Visible_Refinement => (Flag_Field, 539, No_Type_Only),
      F_Has_Volatile_Components => (Flag_Field, 414, Impl_Base_Type_Only),
      F_Has_Xref_Entry => (Flag_Field, 415, No_Type_Only),
      F_Has_Yield_Aspect => (Flag_Field, 416, No_Type_Only),
      F_Hiding_Loop_Variable => (Node_Id_Field, 46, No_Type_Only), -- *32 = bits 1472..1503
      F_Hidden_In_Formal_Instance => (Elist_Id_Field, 32, No_Type_Only), -- *32 = bits 1024..1055
      F_Homonym => (Node_Id_Field, 1, No_Type_Only), -- *32 = bits 32..63
      F_Ignored_Class_Postconditions => (Node_Id_Field, 45, No_Type_Only), -- *32 = bits 1440..1471
      F_Ignored_Class_Preconditions => (Node_Id_Field, 46, No_Type_Only), -- *32 = bits 1472..1503
      F_Ignore_SPARK_Mode_Pragmas => (Flag_Field, 907, No_Type_Only),
      F_Import_Pragma => (Node_Id_Field, 47, No_Type_Only), -- *32 = bits 1504..1535
      F_Incomplete_Actuals => (Elist_Id_Field, 33, No_Type_Only), -- *32 = bits 1056..1087
      F_Indirect_Call_Wrapper => (Node_Id_Field, 48, No_Type_Only), -- *32 = bits 1536..1567
      F_In_Package_Body => (Flag_Field, 417, No_Type_Only),
      F_In_Private_Part => (Flag_Field, 418, No_Type_Only),
      F_In_Use => (Flag_Field, 419, No_Type_Only),
      F_Initialization_Statements => (Node_Id_Field, 44, No_Type_Only), -- *32 = bits 1408..1439
      F_Inner_Instances => (Elist_Id_Field, 37, No_Type_Only), -- *32 = bits 1184..1215
      F_Interface_Alias => (Node_Id_Field, 49, No_Type_Only), -- *32 = bits 1568..1599
      F_Interface_Name => (Node_Id_Field, 22, No_Type_Only), -- *32 = bits 704..735
      F_Interfaces => (Elist_Id_Field, 36, No_Type_Only), -- *32 = bits 1152..1183
      F_Is_Abstract_Subprogram => (Flag_Field, 736, No_Type_Only),
      F_Is_Abstract_Type => (Flag_Field, 889, No_Type_Only),
      F_Is_Access_Constant => (Flag_Field, 896, No_Type_Only),
      F_Is_Activation_Record => (Flag_Field, 540, No_Type_Only),
      F_Is_Actual_Subtype => (Flag_Field, 890, No_Type_Only),
      F_Is_Ada_2005_Only => (Flag_Field, 420, No_Type_Only),
      F_Is_Ada_2012_Only => (Flag_Field, 421, No_Type_Only),
      F_Is_Ada_2022_Only => (Flag_Field, 422, No_Type_Only),
      F_Is_Aliased => (Flag_Field, 423, No_Type_Only),
      F_Is_Asynchronous => (Flag_Field, 541, No_Type_Only),
      F_Is_Atomic => (Flag_Field, 424, No_Type_Only),
      F_Is_Bit_Packed_Array => (Flag_Field, 425, Impl_Base_Type_Only),
      F_Is_Called => (Flag_Field, 543, No_Type_Only),
      F_Is_Character_Type => (Flag_Field, 426, No_Type_Only),
      F_Is_Checked_Ghost_Entity => (Flag_Field, 427, No_Type_Only),
      F_Is_Child_Unit => (Flag_Field, 428, No_Type_Only),
      F_Is_Class_Wide_Equivalent_Type => (Flag_Field, 429, No_Type_Only),
      F_Is_Class_Wide_Wrapper => (Flag_Field, 430, No_Type_Only),
      F_Is_Compilation_Unit => (Flag_Field, 431, No_Type_Only),
      F_Is_Completely_Hidden => (Flag_Field, 537, No_Type_Only),
      F_Is_Concurrent_Record_Type => (Flag_Field, 432, No_Type_Only),
      F_Is_Constr_Subt_For_U_Nominal => (Flag_Field, 433, No_Type_Only),
      F_Is_Constr_Subt_For_UN_Aliased => (Flag_Field, 434, No_Type_Only),
      F_Is_Constrained => (Flag_Field, 435, No_Type_Only),
      F_Is_Constructor => (Flag_Field, 436, No_Type_Only),
      F_Is_Controlled_Active => (Flag_Field, 437, Base_Type_Only),
      F_Is_Controlling_Formal => (Flag_Field, 537, No_Type_Only),
      F_Is_CPP_Class => (Flag_Field, 438, No_Type_Only),
      F_Is_CUDA_Kernel => (Flag_Field, 743, No_Type_Only),
      F_Is_Descendant_Of_Address => (Flag_Field, 439, No_Type_Only),
      F_Is_DIC_Procedure => (Flag_Field, 744, No_Type_Only),
      F_Is_Discrim_SO_Function => (Flag_Field, 440, No_Type_Only),
      F_Is_Discriminant_Check_Function => (Flag_Field, 441, No_Type_Only),
      F_Is_Dispatch_Table_Entity => (Flag_Field, 442, No_Type_Only),
      F_Is_Dispatch_Table_Wrapper => (Flag_Field, 443, No_Type_Only),
      F_Is_Dispatching_Operation => (Flag_Field, 444, No_Type_Only),
      F_Is_Elaboration_Checks_OK_Id => (Flag_Field, 896, No_Type_Only),
      F_Is_Elaboration_Warnings_OK_Id => (Flag_Field, 538, No_Type_Only),
      F_Is_Eliminated => (Flag_Field, 445, No_Type_Only),
      F_Is_Entry_Formal => (Flag_Field, 446, No_Type_Only),
      F_Is_Entry_Wrapper => (Flag_Field, 447, No_Type_Only),
      F_Is_Exception_Handler => (Flag_Field, 537, No_Type_Only),
      F_Is_Exported => (Flag_Field, 448, No_Type_Only),
      F_Is_Finalized_Transient => (Flag_Field, 540, No_Type_Only),
      F_Is_First_Subtype => (Flag_Field, 449, No_Type_Only),
      F_Is_Fixed_Lower_Bound_Array_Subtype => (Flag_Field, 891, No_Type_Only),
      F_Is_Fixed_Lower_Bound_Index_Subtype => (Flag_Field, 892, No_Type_Only),
      F_Is_Formal_Subprogram => (Flag_Field, 450, No_Type_Only),
      F_Is_Frozen => (Flag_Field, 451, No_Type_Only),
      F_Is_Generic_Actual_Subprogram => (Flag_Field, 745, No_Type_Only),
      F_Is_Generic_Actual_Type => (Flag_Field, 893, No_Type_Only),
      F_Is_Generic_Instance => (Flag_Field, 19, No_Type_Only),
      F_Is_Generic_Type => (Flag_Field, 452, No_Type_Only),
      F_Is_Hidden => (Flag_Field, 453, No_Type_Only),
      F_Is_Hidden_Non_Overridden_Subpgm => (Flag_Field, 454, No_Type_Only),
      F_Is_Hidden_Open_Scope => (Flag_Field, 455, No_Type_Only),
      F_Is_Ignored_Ghost_Entity => (Flag_Field, 456, No_Type_Only),
      F_Is_Ignored_Transient => (Flag_Field, 541, No_Type_Only),
      F_Is_Immediately_Visible => (Flag_Field, 16, No_Type_Only),
      F_Is_Implementation_Defined => (Flag_Field, 457, No_Type_Only),
      F_Is_Imported => (Flag_Field, 458, No_Type_Only),
      F_Is_Independent => (Flag_Field, 459, No_Type_Only),
      F_Is_Initial_Condition_Procedure => (Flag_Field, 746, No_Type_Only),
      F_Is_Inlined => (Flag_Field, 460, No_Type_Only),
      F_Is_Inlined_Always => (Flag_Field, 747, No_Type_Only),
      F_Is_Instantiated => (Flag_Field, 461, No_Type_Only),
      F_Is_Interface => (Flag_Field, 462, No_Type_Only),
      F_Is_Internal => (Flag_Field, 463, No_Type_Only),
      F_Is_Interrupt_Handler => (Flag_Field, 464, No_Type_Only),
      F_Is_Intrinsic_Subprogram => (Flag_Field, 465, No_Type_Only),
      F_Is_Invariant_Procedure => (Flag_Field, 748, No_Type_Only),
      F_Is_Itype => (Flag_Field, 466, No_Type_Only),
      F_Is_Known_Non_Null => (Flag_Field, 467, No_Type_Only),
      F_Is_Known_Null => (Flag_Field, 468, No_Type_Only),
      F_Is_Known_Valid => (Flag_Field, 469, No_Type_Only),
      F_Is_Limited_Composite => (Flag_Field, 470, No_Type_Only),
      F_Is_Limited_Interface => (Flag_Field, 471, No_Type_Only),
      F_Is_Limited_Record => (Flag_Field, 472, No_Type_Only),
      F_Is_Local_Anonymous_Access => (Flag_Field, 907, No_Type_Only),
      F_Is_Loop_Parameter => (Flag_Field, 473, No_Type_Only),
      F_Is_Machine_Code_Subprogram => (Flag_Field, 742, No_Type_Only),
      F_Is_Non_Static_Subtype => (Flag_Field, 894, No_Type_Only),
      F_Is_Null_Init_Proc => (Flag_Field, 753, No_Type_Only),
      F_Is_Obsolescent => (Flag_Field, 474, No_Type_Only),
      F_Is_Only_Out_Parameter => (Flag_Field, 538, No_Type_Only),
      F_Is_Package_Body_Entity => (Flag_Field, 475, No_Type_Only),
      F_Is_Packed => (Flag_Field, 476, Impl_Base_Type_Only),
      F_Is_Packed_Array_Impl_Type => (Flag_Field, 477, No_Type_Only),
      F_Is_Param_Block_Component_Type => (Flag_Field, 1344, Base_Type_Only),
      F_Is_Partial_Invariant_Procedure => (Flag_Field, 749, No_Type_Only),
      F_Is_Potentially_Use_Visible => (Flag_Field, 18, No_Type_Only),
      F_Is_Predicate_Function => (Flag_Field, 750, No_Type_Only),
      F_Is_Preelaborated => (Flag_Field, 478, No_Type_Only),
      F_Is_Primitive => (Flag_Field, 542, No_Type_Only),
      F_Is_Primitive_Wrapper => (Flag_Field, 751, No_Type_Only),
      F_Is_Private_Composite => (Flag_Field, 895, No_Type_Only),
      F_Is_Private_Descendant => (Flag_Field, 479, No_Type_Only),
      F_Is_Private_Primitive => (Flag_Field, 752, No_Type_Only),
      F_Is_Public => (Flag_Field, 480, No_Type_Only),
      F_Is_Pure => (Flag_Field, 481, No_Type_Only),
      F_Is_Pure_Unit_Access_Type => (Flag_Field, 909, No_Type_Only),
      F_Is_RACW_Stub_Type => (Flag_Field, 898, No_Type_Only),
      F_Is_Raised => (Flag_Field, 537, No_Type_Only),
      F_Is_Remote_Call_Interface => (Flag_Field, 482, No_Type_Only),
      F_Is_Remote_Types => (Flag_Field, 483, No_Type_Only),
      F_Is_Renaming_Of_Object => (Flag_Field, 484, No_Type_Only),
      F_Is_Return_Object => (Flag_Field, 485, No_Type_Only),
      F_Is_Safe_To_Reevaluate => (Flag_Field, 486, No_Type_Only),
      F_Is_Shared_Passive => (Flag_Field, 487, No_Type_Only),
      F_Is_Static_Type => (Flag_Field, 488, No_Type_Only),
      F_Is_Statically_Allocated => (Flag_Field, 489, No_Type_Only),
      F_Is_Tag => (Flag_Field, 490, No_Type_Only),
      F_Is_Tagged_Type => (Flag_Field, 491, No_Type_Only),
      F_Is_Thunk => (Flag_Field, 492, No_Type_Only),
      F_Is_Trivial_Subprogram => (Flag_Field, 493, No_Type_Only),
      F_Is_True_Constant => (Flag_Field, 494, No_Type_Only),
      F_Is_Unchecked_Union => (Flag_Field, 495, Impl_Base_Type_Only),
      F_Is_Underlying_Full_View => (Flag_Field, 496, No_Type_Only),
      F_Is_Underlying_Record_View => (Flag_Field, 497, Base_Type_Only),
      F_Is_Unimplemented => (Flag_Field, 498, No_Type_Only),
      F_Is_Unsigned_Type => (Flag_Field, 899, No_Type_Only),
      F_Is_Uplevel_Referenced_Entity => (Flag_Field, 499, No_Type_Only),
      F_Is_Valued_Procedure => (Flag_Field, 754, No_Type_Only),
      F_Is_Visible_Formal => (Flag_Field, 500, No_Type_Only),
      F_Is_Visible_Lib_Unit => (Flag_Field, 501, No_Type_Only),
      F_Is_Volatile_Type => (Flag_Field, 502, No_Type_Only),
      F_Is_Volatile_Object => (Flag_Field, 503, No_Type_Only),
      F_Is_Volatile_Full_Access => (Flag_Field, 504, No_Type_Only),
      F_Is_Wrapper => (Flag_Field, 505, No_Type_Only),
      F_Itype_Printed => (Flag_Field, 900, No_Type_Only),
      F_Kill_Elaboration_Checks => (Flag_Field, 506, No_Type_Only),
      F_Kill_Range_Checks => (Flag_Field, 507, No_Type_Only),
      F_Known_To_Have_Preelab_Init => (Flag_Field, 901, No_Type_Only),
      F_Last_Aggregate_Assignment => (Node_Id_Field, 39, No_Type_Only), -- *32 = bits 1248..1279
      F_Last_Assignment => (Node_Id_Field, 32, No_Type_Only), -- *32 = bits 1024..1055
      F_Last_Entity => (Node_Id_Field, 34, No_Type_Only), -- *32 = bits 1088..1119
      F_Limited_View => (Node_Id_Field, 35, No_Type_Only), -- *32 = bits 1120..1151
      F_Linker_Section_Pragma => (Node_Id_Field, 20, No_Type_Only), -- *32 = bits 640..671
      F_Lit_Hash => (Node_Id_Field, 42, Root_Type_Only), -- *32 = bits 1344..1375
      F_Lit_Indexes => (Node_Id_Field, 43, No_Type_Only), -- *32 = bits 1376..1407
      F_Lit_Strings => (Node_Id_Field, 44, No_Type_Only), -- *32 = bits 1408..1439
      F_Low_Bound_Tested => (Flag_Field, 508, No_Type_Only),
      F_LSP_Subprogram => (Node_Id_Field, 50, No_Type_Only), -- *32 = bits 1600..1631
      F_Machine_Radix_10 => (Flag_Field, 896, No_Type_Only),
      F_Master_Id => (Node_Id_Field, 44, No_Type_Only), -- *32 = bits 1408..1439
      F_Materialize_Entity => (Flag_Field, 509, No_Type_Only),
      F_May_Inherit_Delayed_Rep_Aspects => (Flag_Field, 510, No_Type_Only),
      F_Mechanism => (Mechanism_Type_Field, 35, No_Type_Only), -- *32 = bits 1120..1151
      F_Minimum_Accessibility => (Node_Id_Field, 30, No_Type_Only), -- *32 = bits 960..991
      F_Modulus => (Uint_Field, 31, Base_Type_Only), -- *32 = bits 992..1023
      F_Must_Be_On_Byte_Boundary => (Flag_Field, 902, No_Type_Only),
      F_Must_Have_Preelab_Init => (Flag_Field, 903, No_Type_Only),
      F_Needs_Activation_Record => (Flag_Field, 511, No_Type_Only),
      F_Needs_Debug_Info => (Flag_Field, 512, No_Type_Only),
      F_Needs_No_Actuals => (Flag_Field, 908, No_Type_Only),
      F_Never_Set_In_Source => (Flag_Field, 513, No_Type_Only),
      F_Next_Inlined_Subprogram => (Node_Id_Field, 40, No_Type_Only), -- *32 = bits 1280..1311
      F_No_Dynamic_Predicate_On_Actual => (Flag_Field, 538, No_Type_Only),
      F_No_Pool_Assigned => (Flag_Field, 910, Root_Type_Only),
      F_No_Predicate_On_Actual => (Flag_Field, 896, No_Type_Only),
      F_No_Reordering => (Flag_Field, 914, Impl_Base_Type_Only),
      F_No_Return => (Flag_Field, 514, No_Type_Only),
      F_No_Strict_Aliasing => (Flag_Field, 911, Base_Type_Only),
      F_No_Tagged_Streams_Pragma => (Node_Id_Field, 38, No_Type_Only), -- *32 = bits 1216..1247
      F_Non_Binary_Modulus => (Flag_Field, 904, Base_Type_Only),
      F_Non_Limited_View => (Node_Id_Field, 44, No_Type_Only), -- *32 = bits 1408..1439
      F_Nonzero_Is_True => (Flag_Field, 909, Base_Type_Only),
      F_Normalized_First_Bit => (Uint_Field, 26, No_Type_Only), -- *32 = bits 832..863
      F_Normalized_Position => (Uint_Field, 27, No_Type_Only), -- *32 = bits 864..895
      F_OK_To_Rename => (Flag_Field, 898, No_Type_Only),
      F_Optimize_Alignment_Space => (Flag_Field, 542, No_Type_Only),
      F_Optimize_Alignment_Time => (Flag_Field, 543, No_Type_Only),
      F_Original_Access_Type => (Node_Id_Field, 31, No_Type_Only), -- *32 = bits 992..1023
      F_Original_Array_Type => (Node_Id_Field, 34, No_Type_Only), -- *32 = bits 1088..1119
      F_Original_Protected_Subprogram => (Node_Id_Field, 58, No_Type_Only), -- *32 = bits 1856..1887
      F_Original_Record_Component => (Node_Id_Field, 41, No_Type_Only), -- *32 = bits 1312..1343
      F_Overlays_Constant => (Flag_Field, 515, No_Type_Only),
      F_Overridden_Operation => (Node_Id_Field, 26, No_Type_Only), -- *32 = bits 832..863
      F_Package_Instantiation => (Node_Id_Field, 50, No_Type_Only), -- *32 = bits 1600..1631
      F_Packed_Array_Impl_Type => (Node_Id_Field, 45, No_Type_Only), -- *32 = bits 1440..1471
      F_Parent_Subtype => (Node_Id_Field, 41, Base_Type_Only), -- *32 = bits 1312..1343
      F_Part_Of_Constituents => (Elist_Id_Field, 43, No_Type_Only), -- *32 = bits 1376..1407
      F_Part_Of_References => (Elist_Id_Field, 48, No_Type_Only), -- *32 = bits 1536..1567
      F_Partial_View_Has_Unknown_Discr => (Flag_Field, 905, No_Type_Only),
      F_Pending_Access_Types => (Elist_Id_Field, 39, No_Type_Only), -- *32 = bits 1248..1279
      F_Postconditions_Proc => (Node_Id_Field, 53, No_Type_Only), -- *32 = bits 1696..1727
      F_Predicate_Expression => (Node_Id_Field, 63, No_Type_Only), -- *32 = bits 2016..2047
      F_Prev_Entity => (Node_Id_Field, 17, No_Type_Only), -- *32 = bits 544..575
      F_Prival => (Node_Id_Field, 32, No_Type_Only), -- *32 = bits 1024..1055
      F_Prival_Link => (Node_Id_Field, 40, No_Type_Only), -- *32 = bits 1280..1311
      F_Private_Dependents => (Elist_Id_Field, 48, No_Type_Only), -- *32 = bits 1536..1567
      F_Protected_Body_Subprogram => (Node_Id_Field, 27, No_Type_Only), -- *32 = bits 864..895
      F_Protected_Formal => (Node_Id_Field, 37, No_Type_Only), -- *32 = bits 1184..1215
      F_Protected_Subprogram => (Node_Id_Field, 59, No_Type_Only), -- *32 = bits 1888..1919
      F_Protection_Object => (Node_Id_Field, 54, No_Type_Only), -- *32 = bits 1728..1759
      F_Reachable => (Flag_Field, 537, No_Type_Only),
      F_Receiving_Entry => (Node_Id_Field, 35, No_Type_Only), -- *32 = bits 1120..1151
      F_Referenced => (Flag_Field, 516, No_Type_Only),
      F_Referenced_As_LHS => (Flag_Field, 517, No_Type_Only),
      F_Referenced_As_Out_Parameter => (Flag_Field, 518, No_Type_Only),
      F_Refinement_Constituents => (Elist_Id_Field, 20, No_Type_Only), -- *32 = bits 640..671
      F_Register_Exception_Call => (Node_Id_Field, 20, No_Type_Only), -- *32 = bits 640..671
      F_Related_Array_Object => (Node_Id_Field, 46, No_Type_Only), -- *32 = bits 1472..1503
      F_Related_Expression => (Node_Id_Field, 30, No_Type_Only), -- *32 = bits 960..991
      F_Related_Instance => (Node_Id_Field, 29, No_Type_Only), -- *32 = bits 928..959
      F_Related_Type => (Node_Id_Field, 29, No_Type_Only), -- *32 = bits 928..959
      F_Relative_Deadline_Variable => (Node_Id_Field, 48, Impl_Base_Type_Only), -- *32 = bits 1536..1567
      F_Renamed_In_Spec => (Flag_Field, 898, No_Type_Only),
      F_Renamed_Or_Alias => (Node_Id_Field, 18, No_Type_Only), -- *32 = bits 576..607
      F_Requires_Overriding => (Flag_Field, 737, No_Type_Only),
      F_Return_Applies_To => (Node_Id_Field, 45, No_Type_Only), -- *32 = bits 1440..1471
      F_Return_Present => (Flag_Field, 519, No_Type_Only),
      F_Return_Statement => (Node_Id_Field, 41, No_Type_Only), -- *32 = bits 1312..1343
      F_Returns_By_Ref => (Flag_Field, 520, No_Type_Only),
      F_Reverse_Bit_Order => (Flag_Field, 915, Base_Type_Only),
      F_Reverse_Storage_Order => (Flag_Field, 896, Base_Type_Only),
      F_Rewritten_For_C => (Flag_Field, 753, No_Type_Only),
      F_RM_Size => (Uint_Field, 35, No_Type_Only), -- *32 = bits 1120..1151
      F_Scalar_Range => (Node_Id_Field, 46, No_Type_Only), -- *32 = bits 1472..1503
      F_Scale_Value => (Uint_Field, 58, No_Type_Only), -- *32 = bits 1856..1887
      F_Scope_Depth_Value => (Unat_Field, 36, No_Type_Only), -- *32 = bits 1152..1183
      F_Sec_Stack_Needed_For_Return => (Flag_Field, 521, No_Type_Only),
      F_Shared_Var_Procs_Instance => (Node_Id_Field, 49, No_Type_Only), -- *32 = bits 1568..1599
      F_Size_Check_Code => (Node_Id_Field, 42, No_Type_Only), -- *32 = bits 1344..1375
      F_Size_Depends_On_Discriminant => (Flag_Field, 522, No_Type_Only),
      F_Size_Known_At_Compile_Time => (Flag_Field, 523, No_Type_Only),
      F_Small_Value => (Ureal_Field, 41, No_Type_Only), -- *32 = bits 1312..1343
      F_SPARK_Aux_Pragma => (Node_Id_Field, 44, No_Type_Only), -- *32 = bits 1408..1439
      F_SPARK_Aux_Pragma_Inherited => (Flag_Field, 909, No_Type_Only),
      F_SPARK_Pragma => (Node_Id_Field, 24, No_Type_Only), -- *32 = bits 768..799
      F_SPARK_Pragma_Inherited => (Flag_Field, 537, No_Type_Only),
      F_Spec_Entity => (Node_Id_Field, 22, No_Type_Only), -- *32 = bits 704..735
      F_SSO_Set_High_By_Default => (Flag_Field, 907, Base_Type_Only),
      F_SSO_Set_Low_By_Default => (Flag_Field, 910, Base_Type_Only),
      F_Static_Call_Helper => (Node_Id_Field, 51, No_Type_Only), -- *32 = bits 1632..1663
      F_Static_Discrete_Predicate => (List_Id_Field, 41, No_Type_Only), -- *32 = bits 1312..1343
      F_Static_Elaboration_Desired => (Flag_Field, 899, No_Type_Only),
      F_Static_Initialization => (Node_Id_Field, 62, No_Type_Only), -- *32 = bits 1984..2015
      F_Static_Real_Or_String_Predicate => (Node_Id_Field, 48, No_Type_Only), -- *32 = bits 1536..1567
      F_Status_Flag_Or_Transient_Decl => (Node_Id_Field, 35, No_Type_Only), -- *32 = bits 1120..1151
      F_Storage_Size_Variable => (Node_Id_Field, 41, Impl_Base_Type_Only), -- *32 = bits 1312..1343
      F_Stored_Constraint => (Elist_Id_Field, 43, No_Type_Only), -- *32 = bits 1376..1407
      F_Stores_Attribute_Old_Prefix => (Flag_Field, 524, No_Type_Only),
      F_Strict_Alignment => (Flag_Field, 525, Impl_Base_Type_Only),
      F_String_Literal_Length => (Unat_Field, 31, No_Type_Only), -- *32 = bits 992..1023
      F_String_Literal_Low_Bound => (Node_Id_Field, 47, No_Type_Only), -- *32 = bits 1504..1535
      F_Subprograms_For_Type => (Elist_Id_Field, 40, No_Type_Only), -- *32 = bits 1280..1311
      F_Subps_Index => (Unat_Field, 52, No_Type_Only), -- *32 = bits 1664..1695
      F_Suppress_Elaboration_Warnings => (Flag_Field, 526, No_Type_Only),
      F_Suppress_Initialization => (Flag_Field, 897, No_Type_Only),
      F_Suppress_Style_Checks => (Flag_Field, 527, No_Type_Only),
      F_Suppress_Value_Tracking_On_Call => (Flag_Field, 528, No_Type_Only),
      F_Task_Body_Procedure => (Node_Id_Field, 49, No_Type_Only), -- *32 = bits 1568..1599
      F_Thunk_Entity => (Node_Id_Field, 60, No_Type_Only), -- *32 = bits 1920..1951
      F_Treat_As_Volatile => (Flag_Field, 529, No_Type_Only),
      F_Underlying_Full_View => (Node_Id_Field, 50, No_Type_Only), -- *32 = bits 1600..1631
      F_Underlying_Record_View => (Node_Id_Field, 46, No_Type_Only), -- *32 = bits 1472..1503
      F_Universal_Aliasing => (Flag_Field, 906, Impl_Base_Type_Only),
      F_Unset_Reference => (Node_Id_Field, 26, No_Type_Only), -- *32 = bits 832..863
      F_Used_As_Generic_Actual => (Flag_Field, 530, No_Type_Only),
      F_Uses_Lock_Free => (Flag_Field, 538, No_Type_Only),
      F_Uses_Sec_Stack => (Flag_Field, 531, No_Type_Only),
      F_Validated_Object => (Node_Id_Field, 50, No_Type_Only), -- *32 = bits 1600..1631
      F_Warnings_Off => (Flag_Field, 532, No_Type_Only),
      F_Warnings_Off_Used => (Flag_Field, 533, No_Type_Only),
      F_Warnings_Off_Used_Unmodified => (Flag_Field, 534, No_Type_Only),
      F_Warnings_Off_Used_Unreferenced => (Flag_Field, 535, No_Type_Only),
      F_Was_Hidden => (Flag_Field, 536, No_Type_Only),
      F_Wrapped_Entity => (Node_Id_Field, 61, No_Type_Only), -- *32 = bits 1952..1983
      F_Wrapped_Statements => (Node_Id_Field, 55, No_Type_Only)); -- Field_Descriptors

end Sinfo.Nodes;
