home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / gnat-2.06-src.tgz / tar.out / fsf / gnat / ada / sinfo.adb < prev    next >
Text File  |  1996-09-28  |  128KB  |  3,917 lines

  1. ------------------------------------------------------------------------------
  2. --                                                                          --
  3. --                         GNAT COMPILER COMPONENTS                         --
  4. --                                                                          --
  5. --                                S I N F O                                 --
  6. --                                                                          --
  7. --                                 B o d y                                  --
  8. --                                                                          --
  9. --                            $Revision: 1.190 $                            --
  10. --                                                                          --
  11. --        Copyright (c) 1992,1993,1994,1995 NYU, All Rights Reserved        --
  12. --                                                                          --
  13. -- The GNAT library is free software; you can redistribute it and/or modify --
  14. -- it under terms of the GNU Library General Public License as published by --
  15. -- the Free Software  Foundation; either version 2, or (at your option) any --
  16. -- later version.  The GNAT library is distributed in the hope that it will --
  17. -- be useful, but WITHOUT ANY WARRANTY;  without even  the implied warranty --
  18. -- of MERCHANTABILITY  or  FITNESS FOR  A PARTICULAR PURPOSE.  See the  GNU --
  19. -- Library  General  Public  License for  more  details.  You  should  have --
  20. -- received  a copy of the GNU  Library  General Public License  along with --
  21. -- the GNAT library;  see the file  COPYING.LIB.  If not, write to the Free --
  22. -- Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.        --
  23. --                                                                          --
  24. ------------------------------------------------------------------------------
  25.  
  26. with Atree; use Atree;
  27.  
  28. package body Sinfo is
  29.  
  30.    use Atree.Unchecked_Access;
  31.    --  This package is one of the few packages which is allowed to make direct
  32.    --  references to tree nodes (since it is in the business of providing a
  33.    --  higher level of tree access which other clients are expected to use and
  34.    --  which implements checks).
  35.  
  36.    use Atree_Private_Part;
  37.    --  The only reason that we ask for direct access to the private part of
  38.    --  the tree package is so that we can directly reference the Nkind field
  39.    --  of nodes table entries. We do this since it helps the efficiency of
  40.    --  the Sinfo debugging checks considerably (note that when we are checking
  41.    --  Nkind values, we don't need to check for a valid node reference, because
  42.    --  we will check that anyway when we reference the field).
  43.  
  44.    NT : Nodes.Table_Ptr renames Nodes.Table;
  45.    --  A short hand abbreviation, useful for the debugging checks
  46.  
  47.    ----------------------------
  48.    -- Field Access Functions --
  49.    ----------------------------
  50.  
  51.    function Abort_Present
  52.       (N : Node_Id) return Boolean is
  53.    begin
  54.       pragma Assert (False
  55.           or else NT (N).Nkind = N_Requeue_Statement);
  56.       return Flag1 (N);
  57.    end Abort_Present;
  58.  
  59.    function Abortable_Part
  60.       (N : Node_Id) return Node_Id is
  61.    begin
  62.       pragma Assert (False
  63.           or else NT (N).Nkind = N_Asynchronous_Select);
  64.       return Node2 (N);
  65.    end Abortable_Part;
  66.  
  67.    function Abstract_Present
  68.       (N : Node_Id) return Boolean is
  69.    begin
  70.       pragma Assert (False
  71.           or else NT (N).Nkind = N_Derived_Type_Definition
  72.           or else NT (N).Nkind = N_Formal_Derived_Type_Definition
  73.           or else NT (N).Nkind = N_Formal_Private_Type_Definition
  74.           or else NT (N).Nkind = N_Private_Extension_Declaration
  75.           or else NT (N).Nkind = N_Private_Type_Declaration
  76.           or else NT (N).Nkind = N_Record_Definition);
  77.       return Flag4 (N);
  78.    end Abstract_Present;
  79.  
  80.    function Accept_Statement
  81.       (N : Node_Id) return Node_Id is
  82.    begin
  83.       pragma Assert (False
  84.           or else NT (N).Nkind = N_Accept_Alternative);
  85.       return Node2 (N);
  86.    end Accept_Statement;
  87.  
  88.    function Actions
  89.       (N : Node_Id) return List_Id is
  90.    begin
  91.       pragma Assert (False
  92.           or else NT (N).Nkind = N_And_Then
  93.           or else NT (N).Nkind = N_Expression_Actions
  94.           or else NT (N).Nkind = N_Freeze_Entity
  95.           or else NT (N).Nkind = N_Or_Else);
  96.       return List1 (N);
  97.    end Actions;
  98.  
  99.    function Activation_Chain_Entity
  100.       (N : Node_Id) return Node_Id is
  101.    begin
  102.       pragma Assert (False
  103.           or else NT (N).Nkind = N_Block_Statement
  104.           or else NT (N).Nkind = N_Generic_Package_Declaration
  105.           or else NT (N).Nkind = N_Package_Declaration
  106.           or else NT (N).Nkind = N_Subprogram_Body
  107.           or else NT (N).Nkind = N_Task_Body);
  108.       return Node2 (N);
  109.    end Activation_Chain_Entity;
  110.  
  111.    function Acts_As_Spec
  112.       (N : Node_Id) return Boolean is
  113.    begin
  114.       pragma Assert (False
  115.           or else NT (N).Nkind = N_Compilation_Unit
  116.           or else NT (N).Nkind = N_Subprogram_Body);
  117.       return Flag4 (N);
  118.    end Acts_As_Spec;
  119.  
  120.    function Aggregate_Bounds
  121.       (N : Node_Id) return Node_Id is
  122.    begin
  123.       pragma Assert (False
  124.           or else NT (N).Nkind = N_Aggregate);
  125.       return Node3 (N);
  126.    end Aggregate_Bounds;
  127.  
  128.    function Aliased_Present
  129.       (N : Node_Id) return Boolean is
  130.    begin
  131.       pragma Assert (False
  132.           or else NT (N).Nkind = N_Component_Declaration
  133.           or else NT (N).Nkind = N_Constrained_Array_Definition
  134.           or else NT (N).Nkind = N_Object_Declaration
  135.           or else NT (N).Nkind = N_Unconstrained_Array_Definition);
  136.       return Flag1 (N);
  137.    end Aliased_Present;
  138.  
  139.    function All_Present
  140.       (N : Node_Id) return Boolean is
  141.    begin
  142.       pragma Assert (False
  143.           or else NT (N).Nkind = N_Access_To_Object_Definition);
  144.       return Flag1 (N);
  145.    end All_Present;
  146.  
  147.    function Alternatives
  148.       (N : Node_Id) return List_Id is
  149.    begin
  150.       pragma Assert (False
  151.           or else NT (N).Nkind = N_Case_Statement);
  152.       return List4 (N);
  153.    end Alternatives;
  154.  
  155.    function Analyzed
  156.       (N : Node_Id) return Boolean is
  157.    begin
  158.       return Flag15 (N);
  159.    end Analyzed;
  160.  
  161.    function Ancestor_Part
  162.       (N : Node_Id) return Node_Id is
  163.    begin
  164.       pragma Assert (False
  165.           or else NT (N).Nkind = N_Extension_Aggregate);
  166.       return Node3 (N);
  167.    end Ancestor_Part;
  168.  
  169.    function Array_Aggregate
  170.       (N : Node_Id) return Node_Id is
  171.    begin
  172.       pragma Assert (False
  173.           or else NT (N).Nkind = N_Enumeration_Representation_Clause);
  174.       return Node4 (N);
  175.    end Array_Aggregate;
  176.  
  177.    function Assignment_OK
  178.       (N : Node_Id) return Boolean is
  179.    begin
  180.       pragma Assert (False
  181.           or else NT (N).Nkind in N_Subexpr);
  182.       return Flag1 (N);
  183.    end Assignment_OK;
  184.  
  185.    function Attribute_Name
  186.       (N : Node_Id) return Name_Id is
  187.    begin
  188.       pragma Assert (False
  189.           or else NT (N).Nkind = N_Attribute_Reference);
  190.       return Name2 (N);
  191.    end Attribute_Name;
  192.  
  193.    function Backwards_OK
  194.       (N : Node_Id) return Boolean is
  195.    begin
  196.       pragma Assert (False
  197.           or else NT (N).Nkind = N_Assignment_Statement);
  198.       return Flag6 (N);
  199.    end Backwards_OK;
  200.  
  201.    function Bad_Is_Detected
  202.       (N : Node_Id) return Boolean is
  203.    begin
  204.       pragma Assert (False
  205.           or else NT (N).Nkind = N_Subprogram_Body);
  206.       return Flag1 (N);
  207.    end Bad_Is_Detected;
  208.  
  209.    function Body_Required
  210.       (N : Node_Id) return Boolean is
  211.    begin
  212.       pragma Assert (False
  213.           or else NT (N).Nkind = N_Compilation_Unit);
  214.       return Flag3 (N);
  215.    end Body_Required;
  216.  
  217.    function Box_Present
  218.       (N : Node_Id) return Boolean is
  219.    begin
  220.       pragma Assert (False
  221.           or else NT (N).Nkind = N_Formal_Package_Declaration
  222.           or else NT (N).Nkind = N_Formal_Subprogram_Declaration);
  223.       return Flag1 (N);
  224.    end Box_Present;
  225.  
  226.    function Cannot_Be_Constant
  227.       (N : Node_Id) return Boolean is
  228.    begin
  229.       pragma Assert (False
  230.           or else NT (N).Nkind in N_Subexpr);
  231.       return Flag18 (N);
  232.    end Cannot_Be_Constant;
  233.  
  234.    function Char_Literal_Value
  235.       (N : Node_Id) return Char_Code is
  236.    begin
  237.       pragma Assert (False
  238.           or else NT (N).Nkind = N_Character_Literal);
  239.       return Char_Code2 (N);
  240.    end Char_Literal_Value;
  241.  
  242.    function Chars
  243.       (N : Node_Id) return Name_Id is
  244.    begin
  245.       pragma Assert (False
  246.           or else NT (N).Nkind in N_Has_Chars);
  247.       return Name1 (N);
  248.    end Chars;
  249.  
  250.    function Choice_Parameter
  251.       (N : Node_Id) return Node_Id is
  252.    begin
  253.       pragma Assert (False
  254.           or else NT (N).Nkind = N_Exception_Handler);
  255.       return Node2 (N);
  256.    end Choice_Parameter;
  257.  
  258.    function Choices
  259.       (N : Node_Id) return List_Id is
  260.    begin
  261.       pragma Assert (False
  262.           or else NT (N).Nkind = N_Component_Association);
  263.       return List1 (N);
  264.    end Choices;
  265.  
  266.    function Cleanup_Call
  267.       (N : Node_Id) return Node_Id is
  268.    begin
  269.       pragma Assert (False
  270.           or else NT (N).Nkind = N_Handled_Sequence_Of_Statements);
  271.       return Node5 (N);
  272.    end Cleanup_Call;
  273.  
  274.    function Component_Associations
  275.       (N : Node_Id) return List_Id is
  276.    begin
  277.       pragma Assert (False
  278.           or else NT (N).Nkind = N_Aggregate
  279.           or else NT (N).Nkind = N_Extension_Aggregate);
  280.       return List4 (N);
  281.    end Component_Associations;
  282.  
  283.    function Component_Clauses
  284.       (N : Node_Id) return List_Id is
  285.    begin
  286.       pragma Assert (False
  287.           or else NT (N).Nkind = N_Record_Representation_Clause);
  288.       return List3 (N);
  289.    end Component_Clauses;
  290.  
  291.    function Component_Items
  292.       (N : Node_Id) return List_Id is
  293.    begin
  294.       pragma Assert (False
  295.           or else NT (N).Nkind = N_Component_List);
  296.       return List3 (N);
  297.    end Component_Items;
  298.  
  299.    function Component_List
  300.       (N : Node_Id) return Node_Id is
  301.    begin
  302.       pragma Assert (False
  303.           or else NT (N).Nkind = N_Record_Definition
  304.           or else NT (N).Nkind = N_Variant);
  305.       return Node1 (N);
  306.    end Component_List;
  307.  
  308.    function Component_Name
  309.       (N : Node_Id) return Node_Id is
  310.    begin
  311.       pragma Assert (False
  312.           or else NT (N).Nkind = N_Component_Clause);
  313.       return Node1 (N);
  314.    end Component_Name;
  315.  
  316.    function Condition
  317.       (N : Node_Id) return Node_Id is
  318.    begin
  319.       pragma Assert (False
  320.           or else NT (N).Nkind = N_Accept_Alternative
  321.           or else NT (N).Nkind = N_Delay_Alternative
  322.           or else NT (N).Nkind = N_Elsif_Part
  323.           or else NT (N).Nkind = N_Entry_Body_Formal_Part
  324.           or else NT (N).Nkind = N_Exit_Statement
  325.           or else NT (N).Nkind = N_If_Statement
  326.           or else NT (N).Nkind = N_Iteration_Scheme
  327.           or else NT (N).Nkind = N_Terminate_Alternative);
  328.       return Node5 (N);
  329.    end Condition;
  330.  
  331.    function Condition_Actions
  332.       (N : Node_Id) return List_Id is
  333.    begin
  334.       pragma Assert (False
  335.           or else NT (N).Nkind = N_Elsif_Part
  336.           or else NT (N).Nkind = N_Iteration_Scheme);
  337.       return List3 (N);
  338.    end Condition_Actions;
  339.  
  340.    function Constant_Present
  341.       (N : Node_Id) return Boolean is
  342.    begin
  343.       pragma Assert (False
  344.           or else NT (N).Nkind = N_Access_To_Object_Definition
  345.           or else NT (N).Nkind = N_Object_Declaration);
  346.       return Flag17 (N);
  347.    end Constant_Present;
  348.  
  349.    function Constraint
  350.       (N : Node_Id) return Node_Id is
  351.    begin
  352.       pragma Assert (False
  353.           or else NT (N).Nkind = N_Subtype_Indication);
  354.       return Node3 (N);
  355.    end Constraint;
  356.  
  357.    function Constraints
  358.       (N : Node_Id) return List_Id is
  359.    begin
  360.       pragma Assert (False
  361.           or else NT (N).Nkind = N_Index_Or_Discriminant_Constraint);
  362.       return List1 (N);
  363.    end Constraints;
  364.  
  365.    function Context_Installed
  366.       (N : Node_Id) return Boolean is
  367.    begin
  368.       pragma Assert (False
  369.           or else NT (N).Nkind = N_With_Clause);
  370.       return Flag3 (N);
  371.    end Context_Installed;
  372.  
  373.    function Context_Items
  374.       (N : Node_Id) return List_Id is
  375.    begin
  376.       pragma Assert (False
  377.           or else NT (N).Nkind = N_Compilation_Unit);
  378.       return List1 (N);
  379.    end Context_Items;
  380.  
  381.    function Controlling_Argument
  382.       (N : Node_Id) return Node_Id is
  383.    begin
  384.       pragma Assert (False
  385.           or else NT (N).Nkind = N_Function_Call
  386.           or else NT (N).Nkind = N_Procedure_Call_Statement);
  387.       return Node1 (N);
  388.    end Controlling_Argument;
  389.  
  390.    function Conversion_OK
  391.       (N : Node_Id) return Boolean is
  392.    begin
  393.       pragma Assert (False
  394.           or else NT (N).Nkind = N_Type_Conversion);
  395.       return Flag14 (N);
  396.    end Conversion_OK;
  397.  
  398.    function Corresponding_Body
  399.       (N : Node_Id) return Node_Id is
  400.    begin
  401.       pragma Assert (False
  402.           or else NT (N).Nkind = N_Generic_Package_Declaration
  403.           or else NT (N).Nkind = N_Generic_Subprogram_Declaration
  404.           or else NT (N).Nkind = N_Package_Body_Stub
  405.           or else NT (N).Nkind = N_Package_Declaration
  406.           or else NT (N).Nkind = N_Protected_Body_Stub
  407.           or else NT (N).Nkind = N_Protected_Type_Declaration
  408.           or else NT (N).Nkind = N_Subprogram_Body_Stub
  409.           or else NT (N).Nkind = N_Subprogram_Declaration
  410.           or else NT (N).Nkind = N_Task_Body_Stub
  411.           or else NT (N).Nkind = N_Task_Type_Declaration);
  412.       return Node5 (N);
  413.    end Corresponding_Body;
  414.  
  415.    function Corresponding_Integer_Value
  416.       (N : Node_Id) return Uint is
  417.    begin
  418.       pragma Assert (False
  419.           or else NT (N).Nkind = N_Real_Literal);
  420.       return Uint4 (N);
  421.    end Corresponding_Integer_Value;
  422.  
  423.    function Corresponding_Spec
  424.       (N : Node_Id) return Node_Id is
  425.    begin
  426.       pragma Assert (False
  427.           or else NT (N).Nkind = N_Package_Body
  428.           or else NT (N).Nkind = N_Protected_Body
  429.           or else NT (N).Nkind = N_Subprogram_Body
  430.           or else NT (N).Nkind = N_Subprogram_Renaming_Declaration
  431.           or else NT (N).Nkind = N_Task_Body
  432.           or else NT (N).Nkind = N_With_Clause);
  433.       return Node5 (N);
  434.    end Corresponding_Spec;
  435.  
  436.    function Corresponding_Stub
  437.       (N : Node_Id) return Node_Id is
  438.    begin
  439.       pragma Assert (False
  440.           or else NT (N).Nkind = N_Subunit);
  441.       return Node3 (N);
  442.    end Corresponding_Stub;
  443.  
  444.    function Debug_Statement
  445.       (N : Node_Id) return Node_Id is
  446.    begin
  447.       pragma Assert (False
  448.           or else NT (N).Nkind = N_Pragma);
  449.       return Node3 (N);
  450.    end Debug_Statement;
  451.  
  452.    function Declarations
  453.       (N : Node_Id) return List_Id is
  454.    begin
  455.       pragma Assert (False
  456.           or else NT (N).Nkind = N_Block_Statement
  457.           or else NT (N).Nkind = N_Entry_Body
  458.           or else NT (N).Nkind = N_Package_Body
  459.           or else NT (N).Nkind = N_Protected_Body
  460.           or else NT (N).Nkind = N_Subprogram_Body
  461.           or else NT (N).Nkind = N_Task_Body);
  462.       return List3 (N);
  463.    end Declarations;
  464.  
  465.    function Default_Name
  466.       (N : Node_Id) return Node_Id is
  467.    begin
  468.       pragma Assert (False
  469.           or else NT (N).Nkind = N_Formal_Subprogram_Declaration);
  470.       return Node2 (N);
  471.    end Default_Name;
  472.  
  473.    function Defining_Identifier
  474.       (N : Node_Id) return Entity_Id is
  475.    begin
  476.       pragma Assert (False
  477.           or else NT (N).Nkind = N_Component_Declaration
  478.           or else NT (N).Nkind = N_Defining_Program_Unit_Name
  479.           or else NT (N).Nkind = N_Discriminant_Specification
  480.           or else NT (N).Nkind = N_Entry_Body
  481.           or else NT (N).Nkind = N_Entry_Declaration
  482.           or else NT (N).Nkind = N_Entry_Index_Specification
  483.           or else NT (N).Nkind = N_Exception_Declaration
  484.           or else NT (N).Nkind = N_Exception_Renaming_Declaration
  485.           or else NT (N).Nkind = N_Formal_Object_Declaration
  486.           or else NT (N).Nkind = N_Formal_Package_Declaration
  487.           or else NT (N).Nkind = N_Formal_Type_Declaration
  488.           or else NT (N).Nkind = N_Full_Type_Declaration
  489.           or else NT (N).Nkind = N_Implicit_Label_Declaration
  490.           or else NT (N).Nkind = N_Incomplete_Type_Declaration
  491.           or else NT (N).Nkind = N_Loop_Parameter_Specification
  492.           or else NT (N).Nkind = N_Number_Declaration
  493.           or else NT (N).Nkind = N_Object_Declaration
  494.           or else NT (N).Nkind = N_Object_Renaming_Declaration
  495.           or else NT (N).Nkind = N_Package_Body_Stub
  496.           or else NT (N).Nkind = N_Parameter_Specification
  497.           or else NT (N).Nkind = N_Private_Extension_Declaration
  498.           or else NT (N).Nkind = N_Private_Type_Declaration
  499.           or else NT (N).Nkind = N_Protected_Body
  500.           or else NT (N).Nkind = N_Protected_Body_Stub
  501.           or else NT (N).Nkind = N_Protected_Type_Declaration
  502.           or else NT (N).Nkind = N_Single_Protected_Declaration
  503.           or else NT (N).Nkind = N_Single_Task_Declaration
  504.           or else NT (N).Nkind = N_Subtype_Declaration
  505.           or else NT (N).Nkind = N_Task_Body
  506.           or else NT (N).Nkind = N_Task_Body_Stub
  507.           or else NT (N).Nkind = N_Task_Type_Declaration);
  508.       return Node1 (N);
  509.    end Defining_Identifier;
  510.  
  511.    function Defining_Unit_Name
  512.       (N : Node_Id) return Node_Id is
  513.    begin
  514.       pragma Assert (False
  515.           or else NT (N).Nkind = N_Function_Instantiation
  516.           or else NT (N).Nkind = N_Function_Specification
  517.           or else NT (N).Nkind = N_Generic_Function_Renaming_Declaration
  518.           or else NT (N).Nkind = N_Generic_Package_Renaming_Declaration
  519.           or else NT (N).Nkind = N_Generic_Procedure_Renaming_Declaration
  520.           or else NT (N).Nkind = N_Package_Body
  521.           or else NT (N).Nkind = N_Package_Instantiation
  522.           or else NT (N).Nkind = N_Package_Renaming_Declaration
  523.           or else NT (N).Nkind = N_Package_Specification
  524.           or else NT (N).Nkind = N_Procedure_Instantiation
  525.           or else NT (N).Nkind = N_Procedure_Specification);
  526.       return Node1 (N);
  527.    end Defining_Unit_Name;
  528.  
  529.    function Delay_Alternative
  530.       (N : Node_Id) return Node_Id is
  531.    begin
  532.       pragma Assert (False
  533.           or else NT (N).Nkind = N_Timed_Entry_Call);
  534.       return Node4 (N);
  535.    end Delay_Alternative;
  536.  
  537.    function Delay_Statement
  538.       (N : Node_Id) return Node_Id is
  539.    begin
  540.       pragma Assert (False
  541.           or else NT (N).Nkind = N_Delay_Alternative);
  542.       return Node2 (N);
  543.    end Delay_Statement;
  544.  
  545.    function Delta_Expression
  546.       (N : Node_Id) return Node_Id is
  547.    begin
  548.       pragma Assert (False
  549.           or else NT (N).Nkind = N_Decimal_Fixed_Point_Definition
  550.           or else NT (N).Nkind = N_Delta_Constraint
  551.           or else NT (N).Nkind = N_Ordinary_Fixed_Point_Definition);
  552.       return Node3 (N);
  553.    end Delta_Expression;
  554.  
  555.    function Digits_Expression
  556.       (N : Node_Id) return Node_Id is
  557.    begin
  558.       pragma Assert (False
  559.           or else NT (N).Nkind = N_Decimal_Fixed_Point_Definition
  560.           or else NT (N).Nkind = N_Digits_Constraint
  561.           or else NT (N).Nkind = N_Floating_Point_Definition);
  562.       return Node2 (N);
  563.    end Digits_Expression;
  564.  
  565.    function Discrete_Choices
  566.       (N : Node_Id) return List_Id is
  567.    begin
  568.       pragma Assert (False
  569.           or else NT (N).Nkind = N_Case_Statement_Alternative
  570.           or else NT (N).Nkind = N_Variant);
  571.       return List4 (N);
  572.    end Discrete_Choices;
  573.  
  574.    function Discrete_Range
  575.       (N : Node_Id) return Node_Id is
  576.    begin
  577.       pragma Assert (False
  578.           or else NT (N).Nkind = N_Slice);
  579.       return Node4 (N);
  580.    end Discrete_Range;
  581.  
  582.    function Discrete_Subtype_Definition
  583.       (N : Node_Id) return Node_Id is
  584.    begin
  585.       pragma Assert (False
  586.           or else NT (N).Nkind = N_Entry_Declaration
  587.           or else NT (N).Nkind = N_Entry_Index_Specification
  588.           or else NT (N).Nkind = N_Loop_Parameter_Specification);
  589.       return Node4 (N);
  590.    end Discrete_Subtype_Definition;
  591.  
  592.    function Discrete_Subtype_Definitions
  593.       (N : Node_Id) return List_Id is
  594.    begin
  595.       pragma Assert (False
  596.           or else NT (N).Nkind = N_Constrained_Array_Definition);
  597.       return List2 (N);
  598.    end Discrete_Subtype_Definitions;
  599.  
  600.    function Discriminant_Specifications
  601.       (N : Node_Id) return List_Id is
  602.    begin
  603.       pragma Assert (False
  604.           or else NT (N).Nkind = N_Formal_Type_Declaration
  605.           or else NT (N).Nkind = N_Full_Type_Declaration
  606.           or else NT (N).Nkind = N_Incomplete_Type_Declaration
  607.           or else NT (N).Nkind = N_Private_Extension_Declaration
  608.           or else NT (N).Nkind = N_Private_Type_Declaration
  609.           or else NT (N).Nkind = N_Protected_Type_Declaration
  610.           or else NT (N).Nkind = N_Task_Type_Declaration);
  611.       return List4 (N);
  612.    end Discriminant_Specifications;
  613.  
  614.    function Discriminant_Type
  615.       (N : Node_Id) return Node_Id is
  616.    begin
  617.       pragma Assert (False
  618.           or else NT (N).Nkind = N_Discriminant_Specification);
  619.       return Node2 (N);
  620.    end Discriminant_Type;
  621.  
  622.    function Do_Access_Check
  623.       (N : Node_Id) return Boolean is
  624.    begin
  625.       pragma Assert (False
  626.           or else NT (N).Nkind = N_Attribute_Reference
  627.           or else NT (N).Nkind = N_Explicit_Dereference
  628.           or else NT (N).Nkind = N_Indexed_Component
  629.           or else NT (N).Nkind = N_Selected_Component
  630.           or else NT (N).Nkind = N_Slice);
  631.       return Flag11 (N);
  632.    end Do_Access_Check;
  633.  
  634.    function Do_Accessibility_Check
  635.       (N : Node_Id) return Boolean is
  636.    begin
  637.       pragma Assert (False
  638.           or else NT (N).Nkind = N_Parameter_Specification);
  639.       return Flag3 (N);
  640.    end Do_Accessibility_Check;
  641.  
  642.    function Do_Discriminant_Check
  643.       (N : Node_Id) return Boolean is
  644.    begin
  645.       pragma Assert (False
  646.           or else NT (N).Nkind = N_Selected_Component);
  647.       return Flag3 (N);
  648.    end Do_Discriminant_Check;
  649.  
  650.    function Do_Division_Check
  651.       (N : Node_Id) return Boolean is
  652.    begin
  653.       pragma Assert (False
  654.           or else NT (N).Nkind = N_Op_Divide
  655.           or else NT (N).Nkind = N_Op_Mod
  656.           or else NT (N).Nkind = N_Op_Rem);
  657.       return Flag3 (N);
  658.    end Do_Division_Check;
  659.  
  660.    function Do_Length_Check
  661.       (N : Node_Id) return Boolean is
  662.    begin
  663.       pragma Assert (False
  664.           or else NT (N).Nkind = N_Assignment_Statement
  665.           or else NT (N).Nkind = N_Op_And
  666.           or else NT (N).Nkind = N_Op_Or
  667.           or else NT (N).Nkind = N_Op_Xor
  668.           or else NT (N).Nkind = N_Type_Conversion);
  669.       return Flag4 (N);
  670.    end Do_Length_Check;
  671.  
  672.    function Do_Overflow_Check
  673.       (N : Node_Id) return Boolean is
  674.    begin
  675.       pragma Assert (False
  676.           or else NT (N).Nkind in N_Op
  677.           or else NT (N).Nkind = N_Attribute_Reference
  678.           or else NT (N).Nkind = N_Type_Conversion);
  679.       return Flag17 (N);
  680.    end Do_Overflow_Check;
  681.  
  682.    function Do_Range_Check
  683.       (N : Node_Id) return Boolean is
  684.    begin
  685.       pragma Assert (False
  686.           or else NT (N).Nkind in N_Subexpr);
  687.       return Flag9 (N);
  688.    end Do_Range_Check;
  689.  
  690.    function Do_Storage_Check
  691.       (N : Node_Id) return Boolean is
  692.    begin
  693.       pragma Assert (False
  694.           or else NT (N).Nkind = N_Allocator
  695.           or else NT (N).Nkind = N_Subprogram_Body);
  696.       return Flag17 (N);
  697.    end Do_Storage_Check;
  698.  
  699.    function Do_Tag_Check
  700.       (N : Node_Id) return Boolean is
  701.    begin
  702.       pragma Assert (False
  703.           or else NT (N).Nkind = N_Assignment_Statement
  704.           or else NT (N).Nkind = N_Function_Call
  705.           or else NT (N).Nkind = N_Procedure_Call_Statement
  706.           or else NT (N).Nkind = N_Return_Statement
  707.           or else NT (N).Nkind = N_Type_Conversion);
  708.       return Flag3 (N);
  709.    end Do_Tag_Check;
  710.  
  711.    function Elaborate_Present
  712.       (N : Node_Id) return Boolean is
  713.    begin
  714.       pragma Assert (False
  715.           or else NT (N).Nkind = N_With_Clause);
  716.       return Flag4 (N);
  717.    end Elaborate_Present;
  718.  
  719.    function Elaborate_All_Present
  720.       (N : Node_Id) return Boolean is
  721.    begin
  722.       pragma Assert (False
  723.           or else NT (N).Nkind = N_With_Clause);
  724.       return Flag1 (N);
  725.    end Elaborate_All_Present;
  726.  
  727.    function Elaborate_Body_Present
  728.       (N : Node_Id) return Boolean is
  729.    begin
  730.       pragma Assert (False
  731.           or else NT (N).Nkind = N_Compilation_Unit);
  732.       return Flag7 (N);
  733.    end Elaborate_Body_Present;
  734.  
  735.    function Else_Actions
  736.       (N : Node_Id) return List_Id is
  737.    begin
  738.       pragma Assert (False
  739.           or else NT (N).Nkind = N_Conditional_Expression);
  740.       return List3 (N);
  741.    end Else_Actions;
  742.  
  743.    function Else_Statements
  744.       (N : Node_Id) return List_Id is
  745.    begin
  746.       pragma Assert (False
  747.           or else NT (N).Nkind = N_Conditional_Entry_Call
  748.           or else NT (N).Nkind = N_If_Statement
  749.           or else NT (N).Nkind = N_Selective_Accept);
  750.       return List4 (N);
  751.    end Else_Statements;
  752.  
  753.    function Elsif_Parts
  754.       (N : Node_Id) return List_Id is
  755.    begin
  756.       pragma Assert (False
  757.           or else NT (N).Nkind = N_If_Statement);
  758.       return List3 (N);
  759.    end Elsif_Parts;
  760.  
  761.    function Enclosing_Variant
  762.       (N : Node_Id) return Node_Id is
  763.    begin
  764.       pragma Assert (False
  765.           or else NT (N).Nkind = N_Variant);
  766.       return Node2 (N);
  767.    end Enclosing_Variant;
  768.  
  769.    function Entity
  770.       (N : Node_Id) return Node_Id is
  771.    begin
  772.       pragma Assert (False
  773.           or else NT (N).Nkind in N_Op
  774.           or else NT (N).Nkind = N_Attribute_Reference
  775.           or else NT (N).Nkind = N_Character_Literal
  776.           or else NT (N).Nkind = N_Expanded_Name
  777.           or else NT (N).Nkind = N_Freeze_Entity
  778.           or else NT (N).Nkind = N_Identifier
  779.           or else NT (N).Nkind = N_Interpretation
  780.           or else NT (N).Nkind = N_Operator_Symbol);
  781.       return Node4 (N);
  782.    end Entity;
  783.  
  784.    function Entry_Body_Formal_Part
  785.       (N : Node_Id) return Node_Id is
  786.    begin
  787.       pragma Assert (False
  788.           or else NT (N).Nkind = N_Entry_Body);
  789.       return Node5 (N);
  790.    end Entry_Body_Formal_Part;
  791.  
  792.    function Entry_Call_Alternative
  793.       (N : Node_Id) return Node_Id is
  794.    begin
  795.       pragma Assert (False
  796.           or else NT (N).Nkind = N_Conditional_Entry_Call
  797.           or else NT (N).Nkind = N_Timed_Entry_Call);
  798.       return Node1 (N);
  799.    end Entry_Call_Alternative;
  800.  
  801.    function Entry_Call_Statement
  802.       (N : Node_Id) return Node_Id is
  803.    begin
  804.       pragma Assert (False
  805.           or else NT (N).Nkind = N_Entry_Call_Alternative);
  806.       return Node1 (N);
  807.    end Entry_Call_Statement;
  808.  
  809.    function Entry_Direct_Name
  810.       (N : Node_Id) return Node_Id is
  811.    begin
  812.       pragma Assert (False
  813.           or else NT (N).Nkind = N_Accept_Statement);
  814.       return Node1 (N);
  815.    end Entry_Direct_Name;
  816.  
  817.    function Entry_Index
  818.       (N : Node_Id) return Node_Id is
  819.    begin
  820.       pragma Assert (False
  821.           or else NT (N).Nkind = N_Accept_Statement);
  822.       return Node5 (N);
  823.    end Entry_Index;
  824.  
  825.    function Entry_Index_Specification
  826.       (N : Node_Id) return Node_Id is
  827.    begin
  828.       pragma Assert (False
  829.           or else NT (N).Nkind = N_Entry_Body_Formal_Part);
  830.       return Node1 (N);
  831.    end Entry_Index_Specification;
  832.  
  833.    function Error_Posted
  834.       (N : Node_Id) return Boolean is
  835.    begin
  836.       return Flag13 (N);
  837.    end Error_Posted;
  838.  
  839.    function Etype
  840.       (N : Node_Id) return Node_Id is
  841.    begin
  842.       pragma Assert (False
  843.          or else NT (N).Nkind in N_Has_Etype);
  844.       return Node5 (N);
  845.    end Etype;
  846.  
  847.    function Exception_Choices
  848.       (N : Node_Id) return List_Id is
  849.    begin
  850.       pragma Assert (False
  851.           or else NT (N).Nkind = N_Exception_Handler);
  852.       return List4 (N);
  853.    end Exception_Choices;
  854.  
  855.    function Exception_Handlers
  856.       (N : Node_Id) return List_Id is
  857.    begin
  858.       pragma Assert (False
  859.           or else NT (N).Nkind = N_Handled_Sequence_Of_Statements);
  860.       return List4 (N);
  861.    end Exception_Handlers;
  862.  
  863.    function Explicit_Actual_Parameter
  864.       (N : Node_Id) return Node_Id is
  865.    begin
  866.       pragma Assert (False
  867.           or else NT (N).Nkind = N_Parameter_Association);
  868.       return Node3 (N);
  869.    end Explicit_Actual_Parameter;
  870.  
  871.    function Explicit_Generic_Actual_Parameter
  872.       (N : Node_Id) return Node_Id is
  873.    begin
  874.       pragma Assert (False
  875.           or else NT (N).Nkind = N_Generic_Association);
  876.       return Node1 (N);
  877.    end Explicit_Generic_Actual_Parameter;
  878.  
  879.    function Expression
  880.       (N : Node_Id) return Node_Id is
  881.    begin
  882.       pragma Assert (False
  883.           or else NT (N).Nkind = N_Allocator
  884.           or else NT (N).Nkind = N_Assignment_Statement
  885.           or else NT (N).Nkind = N_At_Clause
  886.           or else NT (N).Nkind = N_Attribute_Definition_Clause
  887.           or else NT (N).Nkind = N_Case_Statement
  888.           or else NT (N).Nkind = N_Code_Statement
  889.           or else NT (N).Nkind = N_Component_Association
  890.           or else NT (N).Nkind = N_Component_Declaration
  891.           or else NT (N).Nkind = N_Delay_Relative_Statement
  892.           or else NT (N).Nkind = N_Delay_Until_Statement
  893.           or else NT (N).Nkind = N_Discriminant_Association
  894.           or else NT (N).Nkind = N_Discriminant_Specification
  895.           or else NT (N).Nkind = N_Expression_Actions
  896.           or else NT (N).Nkind = N_Formal_Object_Declaration
  897.           or else NT (N).Nkind = N_Free_Statement
  898.           or else NT (N).Nkind = N_Mod_Clause
  899.           or else NT (N).Nkind = N_Modular_Type_Definition
  900.           or else NT (N).Nkind = N_Number_Declaration
  901.           or else NT (N).Nkind = N_Object_Declaration
  902.           or else NT (N).Nkind = N_Parameter_Specification
  903.           or else NT (N).Nkind = N_Pragma_Argument_Association
  904.           or else NT (N).Nkind = N_Qualified_Expression
  905.           or else NT (N).Nkind = N_Return_Statement
  906.           or else NT (N).Nkind = N_Type_Conversion
  907.           or else NT (N).Nkind = N_Unchecked_Type_Conversion);
  908.       return Node3 (N);
  909.    end Expression;
  910.  
  911.    function Expressions
  912.       (N : Node_Id) return List_Id is
  913.    begin
  914.       pragma Assert (False
  915.           or else NT (N).Nkind = N_Aggregate
  916.           or else NT (N).Nkind = N_Attribute_Reference
  917.           or else NT (N).Nkind = N_Concat_Multiple
  918.           or else NT (N).Nkind = N_Conditional_Expression
  919.           or else NT (N).Nkind = N_Extension_Aggregate
  920.           or else NT (N).Nkind = N_Indexed_Component);
  921.       return List1 (N);
  922.    end Expressions;
  923.  
  924.    function First_Bit
  925.       (N : Node_Id) return Node_Id is
  926.    begin
  927.       pragma Assert (False
  928.           or else NT (N).Nkind = N_Component_Clause);
  929.       return Node3 (N);
  930.    end First_Bit;
  931.  
  932.    function First_Inlined_Subprogram
  933.       (N : Node_Id) return Entity_Id is
  934.    begin
  935.       pragma Assert (False
  936.           or else NT (N).Nkind = N_Compilation_Unit);
  937.       return Node5 (N);
  938.    end First_Inlined_Subprogram;
  939.  
  940.    function First_Itype
  941.       (N : Node_Id) return Entity_Id is
  942.    begin
  943.       pragma Assert (False
  944.           or else NT (N).Nkind in N_Has_Itypes);
  945.       return Node2 (N);
  946.    end First_Itype;
  947.  
  948.    function First_Name
  949.       (N : Node_Id) return Boolean is
  950.    begin
  951.       pragma Assert (False
  952.           or else NT (N).Nkind = N_With_Clause);
  953.       return Flag5 (N);
  954.    end First_Name;
  955.  
  956.    function First_Named_Actual
  957.       (N : Node_Id) return Node_Id is
  958.    begin
  959.       pragma Assert (False
  960.           or else NT (N).Nkind = N_Entry_Call_Statement
  961.           or else NT (N).Nkind = N_Function_Call
  962.           or else NT (N).Nkind = N_Procedure_Call_Statement);
  963.       return Node4 (N);
  964.    end First_Named_Actual;
  965.  
  966.    function First_Real_Statement
  967.       (N : Node_Id) return Node_Id is
  968.    begin
  969.       pragma Assert (False
  970.           or else NT (N).Nkind = N_Handled_Sequence_Of_Statements);
  971.       return Node2 (N);
  972.    end First_Real_Statement;
  973.  
  974.    function First_Subtype_Link
  975.       (N : Node_Id) return Entity_Id is
  976.    begin
  977.       pragma Assert (False
  978.           or else NT (N).Nkind = N_Freeze_Entity);
  979.       return Node5 (N);
  980.    end First_Subtype_Link;
  981.  
  982.    function Float_Truncate
  983.       (N : Node_Id) return Boolean is
  984.    begin
  985.       pragma Assert (False
  986.           or else NT (N).Nkind = N_Type_Conversion);
  987.       return Flag11 (N);
  988.    end Float_Truncate;
  989.  
  990.    function Following_Pragmas
  991.       (N : Node_Id) return List_Id is
  992.    begin
  993.       pragma Assert (False
  994.           or else NT (N).Nkind = N_Compilation_Unit);
  995.       return List3 (N);
  996.    end Following_Pragmas;
  997.  
  998.    function Formal_Type_Definition
  999.       (N : Node_Id) return Node_Id is
  1000.    begin
  1001.       pragma Assert (False
  1002.           or else NT (N).Nkind = N_Formal_Type_Declaration);
  1003.       return Node3 (N);
  1004.    end Formal_Type_Definition;
  1005.  
  1006.    function Forwards_OK
  1007.       (N : Node_Id) return Boolean is
  1008.    begin
  1009.       pragma Assert (False
  1010.           or else NT (N).Nkind = N_Assignment_Statement);
  1011.       return Flag5 (N);
  1012.    end Forwards_OK;
  1013.  
  1014.    function Generic_Associations
  1015.       (N : Node_Id) return List_Id is
  1016.    begin
  1017.       pragma Assert (False
  1018.           or else NT (N).Nkind = N_Formal_Package_Declaration
  1019.           or else NT (N).Nkind = N_Function_Instantiation
  1020.           or else NT (N).Nkind = N_Package_Instantiation
  1021.           or else NT (N).Nkind = N_Procedure_Instantiation);
  1022.       return List3 (N);
  1023.    end Generic_Associations;
  1024.  
  1025.    function Generic_Formal_Declarations
  1026.       (N : Node_Id) return List_Id is
  1027.    begin
  1028.       pragma Assert (False
  1029.           or else NT (N).Nkind = N_Generic_Package_Declaration
  1030.           or else NT (N).Nkind = N_Generic_Subprogram_Declaration);
  1031.       return List3 (N);
  1032.    end Generic_Formal_Declarations;
  1033.  
  1034.    function Generic_Parent
  1035.       (N : Node_Id) return Node_Id is
  1036.    begin
  1037.       pragma Assert (False
  1038.           or else NT (N).Nkind = N_Function_Specification
  1039.           or else NT (N).Nkind = N_Package_Specification
  1040.           or else NT (N).Nkind = N_Procedure_Specification);
  1041.       return Node5 (N);
  1042.    end Generic_Parent;
  1043.  
  1044.    function Handled_Statement_Sequence
  1045.       (N : Node_Id) return Node_Id is
  1046.    begin
  1047.       pragma Assert (False
  1048.           or else NT (N).Nkind = N_Accept_Statement
  1049.           or else NT (N).Nkind = N_Block_Statement
  1050.           or else NT (N).Nkind = N_Entry_Body
  1051.           or else NT (N).Nkind = N_Package_Body
  1052.           or else NT (N).Nkind = N_Subprogram_Body
  1053.           or else NT (N).Nkind = N_Task_Body);
  1054.       return Node4 (N);
  1055.    end Handled_Statement_Sequence;
  1056.  
  1057.    function Has_Created_Identifier
  1058.       (N : Node_Id) return Boolean is
  1059.    begin
  1060.       pragma Assert (False
  1061.           or else NT (N).Nkind = N_Block_Statement
  1062.           or else NT (N).Nkind = N_Loop_Statement);
  1063.       return Flag1 (N);
  1064.    end Has_Created_Identifier;
  1065.  
  1066.    function Has_Dynamic_Itype
  1067.       (N : Node_Id) return Boolean is
  1068.    begin
  1069.       pragma Assert (False
  1070.           or else NT (N).Nkind in N_Has_Itypes);
  1071.       return Flag14 (N);
  1072.    end Has_Dynamic_Itype;
  1073.  
  1074.    function Has_No_Elab_Code
  1075.       (N : Node_Id) return Boolean is
  1076.    begin
  1077.       pragma Assert (False
  1078.           or else NT (N).Nkind = N_Compilation_Unit);
  1079.       return Flag17 (N);
  1080.    end Has_No_Elab_Code;
  1081.  
  1082.    function Has_No_Side_Effects
  1083.       (N : Node_Id) return Boolean is
  1084.    begin
  1085.       pragma Assert (False
  1086.           or else NT (N).Nkind in N_Subexpr);
  1087.       return Flag8 (N);
  1088.    end Has_No_Side_Effects;
  1089.  
  1090.    function Has_Priority_Pragma
  1091.       (N : Node_Id) return Boolean is
  1092.    begin
  1093.       pragma Assert (False
  1094.           or else NT (N).Nkind = N_Protected_Definition
  1095.           or else NT (N).Nkind = N_Subprogram_Body
  1096.           or else NT (N).Nkind = N_Task_Definition);
  1097.       return Flag6 (N);
  1098.    end Has_Priority_Pragma;
  1099.  
  1100.    function Has_Private_View
  1101.       (N : Node_Id) return Boolean is
  1102.    begin
  1103.       pragma Assert (False
  1104.          or else NT (N).Nkind in N_Op
  1105.          or else NT (N).Nkind = N_Character_Literal
  1106.          or else NT (N).Nkind = N_Expanded_Name
  1107.          or else NT (N).Nkind = N_Identifier
  1108.          or else NT (N).Nkind = N_Operator_Symbol);
  1109.       return Flag11 (N);
  1110.    end Has_Private_View;
  1111.  
  1112.    function Has_Storage_Size_Pragma
  1113.       (N : Node_Id) return Boolean is
  1114.    begin
  1115.       pragma Assert (False
  1116.           or else NT (N).Nkind = N_Task_Definition);
  1117.       return Flag5 (N);
  1118.    end Has_Storage_Size_Pragma;
  1119.  
  1120.    function Unknown_Discriminants_Present
  1121.       (N : Node_Id) return Boolean is
  1122.    begin
  1123.       pragma Assert (False
  1124.           or else NT (N).Nkind = N_Formal_Type_Declaration
  1125.           or else NT (N).Nkind = N_Incomplete_Type_Declaration
  1126.           or else NT (N).Nkind = N_Private_Extension_Declaration
  1127.           or else NT (N).Nkind = N_Private_Type_Declaration);
  1128.       return Flag3 (N);
  1129.    end Unknown_Discriminants_Present;
  1130.  
  1131.    function High_Bound
  1132.       (N : Node_Id) return Node_Id is
  1133.    begin
  1134.       pragma Assert (False
  1135.           or else NT (N).Nkind = N_Range
  1136.           or else NT (N).Nkind = N_Real_Range_Specification
  1137.           or else NT (N).Nkind = N_Signed_Integer_Type_Definition);
  1138.       return Node2 (N);
  1139.    end High_Bound;
  1140.  
  1141.    function Homonym
  1142.       (N : Node_Id) return Node_Id is
  1143.    begin
  1144.       pragma Assert (False
  1145.           or else NT (N).Nkind = N_Defining_Character_Literal
  1146.           or else NT (N).Nkind = N_Defining_Identifier
  1147.           or else NT (N).Nkind = N_Defining_Operator_Symbol);
  1148.       return Node4 (N);
  1149.    end Homonym;
  1150.  
  1151.    function Identifier
  1152.       (N : Node_Id) return Node_Id is
  1153.    begin
  1154.       pragma Assert (False
  1155.           or else NT (N).Nkind = N_At_Clause
  1156.           or else NT (N).Nkind = N_Block_Statement
  1157.           or else NT (N).Nkind = N_Designator
  1158.           or else NT (N).Nkind = N_Enumeration_Representation_Clause
  1159.           or else NT (N).Nkind = N_Handled_Sequence_Of_Statements
  1160.           or else NT (N).Nkind = N_Label
  1161.           or else NT (N).Nkind = N_Loop_Statement
  1162.           or else NT (N).Nkind = N_Record_Representation_Clause);
  1163.       return Node1 (N);
  1164.    end Identifier;
  1165.  
  1166.    function Implicit_With
  1167.       (N : Node_Id) return Boolean is
  1168.    begin
  1169.       pragma Assert (False
  1170.           or else NT (N).Nkind = N_With_Clause);
  1171.       return Flag17 (N);
  1172.    end Implicit_With;
  1173.  
  1174.    function In_Present
  1175.       (N : Node_Id) return Boolean is
  1176.    begin
  1177.       pragma Assert (False
  1178.           or else NT (N).Nkind = N_Formal_Object_Declaration
  1179.           or else NT (N).Nkind = N_Parameter_Specification);
  1180.       return Flag1 (N);
  1181.    end In_Present;
  1182.  
  1183.    function Intval
  1184.       (N : Node_Id) return Uint is
  1185.    begin
  1186.       pragma Assert (False
  1187.           or else NT (N).Nkind = N_Integer_Literal);
  1188.       return Uint3 (N);
  1189.    end Intval;
  1190.  
  1191.    function Is_Controlling_Actual
  1192.       (N : Node_Id) return Boolean is
  1193.    begin
  1194.       pragma Assert (False
  1195.           or else NT (N).Nkind in N_Subexpr);
  1196.       return Flag16 (N);
  1197.    end Is_Controlling_Actual;
  1198.  
  1199.    function Is_Current_Instance
  1200.       (N : Node_Id) return Boolean is
  1201.    begin
  1202.       pragma Assert (False
  1203.           or else NT (N).Nkind = N_Expanded_Name
  1204.           or else NT (N).Nkind = N_Identifier);
  1205.       return Flag14 (N);
  1206.    end Is_Current_Instance;
  1207.  
  1208.    function Is_Overloaded
  1209.       (N : Node_Id) return Boolean is
  1210.    begin
  1211.       pragma Assert (False
  1212.           or else NT (N).Nkind in N_Subexpr);
  1213.       return Flag5 (N);
  1214.    end Is_Overloaded;
  1215.  
  1216.    function Is_Static_Expression
  1217.       (N : Node_Id) return Boolean is
  1218.    begin
  1219.       pragma Assert (False
  1220.           or else NT (N).Nkind in N_Subexpr);
  1221.       return Flag6 (N);
  1222.    end Is_Static_Expression;
  1223.  
  1224.    function Is_Task_Master
  1225.       (N : Node_Id) return Boolean is
  1226.    begin
  1227.       pragma Assert (False
  1228.           or else NT (N).Nkind = N_Block_Statement
  1229.           or else NT (N).Nkind = N_Subprogram_Body
  1230.           or else NT (N).Nkind = N_Task_Body);
  1231.       return Flag5 (N);
  1232.    end Is_Task_Master;
  1233.  
  1234.    function Iteration_Scheme
  1235.       (N : Node_Id) return Node_Id is
  1236.    begin
  1237.       pragma Assert (False
  1238.           or else NT (N).Nkind = N_Loop_Statement);
  1239.       return Node2 (N);
  1240.    end Iteration_Scheme;
  1241.  
  1242.    function Label
  1243.       (N : Node_Id) return Node_Id is
  1244.    begin
  1245.       pragma Assert (False
  1246.           or else NT (N).Nkind = N_Implicit_Label_Declaration);
  1247.       return Node2 (N);
  1248.    end Label;
  1249.  
  1250.    function Last_Bit
  1251.       (N : Node_Id) return Node_Id is
  1252.    begin
  1253.       pragma Assert (False
  1254.           or else NT (N).Nkind = N_Component_Clause);
  1255.       return Node4 (N);
  1256.    end Last_Bit;
  1257.  
  1258.    function Last_Name
  1259.       (N : Node_Id) return Boolean is
  1260.    begin
  1261.       pragma Assert (False
  1262.           or else NT (N).Nkind = N_With_Clause);
  1263.       return Flag6 (N);
  1264.    end Last_Name;
  1265.  
  1266.    function Library_Unit
  1267.       (N : Node_Id) return Node_Id is
  1268.    begin
  1269.       pragma Assert (False
  1270.           or else NT (N).Nkind = N_Compilation_Unit
  1271.           or else NT (N).Nkind = N_Package_Body_Stub
  1272.           or else NT (N).Nkind = N_Protected_Body_Stub
  1273.           or else NT (N).Nkind = N_Subprogram_Body_Stub
  1274.           or else NT (N).Nkind = N_Task_Body_Stub
  1275.           or else NT (N).Nkind = N_With_Clause);
  1276.       return Node4 (N);
  1277.    end Library_Unit;
  1278.  
  1279.    function Left_Opnd
  1280.       (N : Node_Id) return Node_Id is
  1281.    begin
  1282.       pragma Assert (False
  1283.           or else NT (N).Nkind = N_And_Then
  1284.           or else NT (N).Nkind = N_In
  1285.           or else NT (N).Nkind = N_Not_In
  1286.           or else NT (N).Nkind = N_Or_Else
  1287.           or else NT (N).Nkind in N_Binary_Op);
  1288.       return Node2 (N);
  1289.    end Left_Opnd;
  1290.  
  1291.    function Literals
  1292.       (N : Node_Id) return List_Id is
  1293.    begin
  1294.       pragma Assert (False
  1295.           or else NT (N).Nkind = N_Enumeration_Type_Definition);
  1296.       return List1 (N);
  1297.    end Literals;
  1298.  
  1299.    function Limited_Present
  1300.       (N : Node_Id) return Boolean is
  1301.    begin
  1302.       pragma Assert (False
  1303.           or else NT (N).Nkind = N_Formal_Private_Type_Definition
  1304.           or else NT (N).Nkind = N_Private_Type_Declaration
  1305.           or else NT (N).Nkind = N_Record_Definition);
  1306.       return Flag17 (N);
  1307.    end Limited_Present;
  1308.  
  1309.    function Loop_Parameter_Specification
  1310.       (N : Node_Id) return Node_Id is
  1311.    begin
  1312.       pragma Assert (False
  1313.           or else NT (N).Nkind = N_Iteration_Scheme);
  1314.       return Node1 (N);
  1315.    end Loop_Parameter_Specification;
  1316.  
  1317.    function Low_Bound
  1318.       (N : Node_Id) return Node_Id is
  1319.    begin
  1320.       pragma Assert (False
  1321.           or else NT (N).Nkind = N_Range
  1322.           or else NT (N).Nkind = N_Real_Range_Specification
  1323.           or else NT (N).Nkind = N_Signed_Integer_Type_Definition);
  1324.       return Node1 (N);
  1325.    end Low_Bound;
  1326.  
  1327.    function Mod_Clause
  1328.       (N : Node_Id) return Node_Id is
  1329.    begin
  1330.       pragma Assert (False
  1331.           or else NT (N).Nkind = N_Record_Representation_Clause);
  1332.       return Node2 (N);
  1333.    end Mod_Clause;
  1334.  
  1335.    function More_Ids
  1336.       (N : Node_Id) return Boolean is
  1337.    begin
  1338.       pragma Assert (False
  1339.           or else NT (N).Nkind = N_Component_Declaration
  1340.           or else NT (N).Nkind = N_Discriminant_Specification
  1341.           or else NT (N).Nkind = N_Exception_Declaration
  1342.           or else NT (N).Nkind = N_Formal_Object_Declaration
  1343.           or else NT (N).Nkind = N_Number_Declaration
  1344.           or else NT (N).Nkind = N_Object_Declaration
  1345.           or else NT (N).Nkind = N_Parameter_Specification);
  1346.       return Flag5 (N);
  1347.    end More_Ids;
  1348.  
  1349.    function Name
  1350.       (N : Node_Id) return Node_Id is
  1351.    begin
  1352.       pragma Assert (False
  1353.           or else NT (N).Nkind = N_Assignment_Statement
  1354.           or else NT (N).Nkind = N_Attribute_Definition_Clause
  1355.           or else NT (N).Nkind = N_Defining_Program_Unit_Name
  1356.           or else NT (N).Nkind = N_Designator
  1357.           or else NT (N).Nkind = N_Entry_Call_Statement
  1358.           or else NT (N).Nkind = N_Exception_Renaming_Declaration
  1359.           or else NT (N).Nkind = N_Exit_Statement
  1360.           or else NT (N).Nkind = N_Formal_Package_Declaration
  1361.           or else NT (N).Nkind = N_Function_Call
  1362.           or else NT (N).Nkind = N_Function_Instantiation
  1363.           or else NT (N).Nkind = N_Generic_Function_Renaming_Declaration
  1364.           or else NT (N).Nkind = N_Generic_Package_Renaming_Declaration
  1365.           or else NT (N).Nkind = N_Generic_Procedure_Renaming_Declaration
  1366.           or else NT (N).Nkind = N_Goto_Statement
  1367.           or else NT (N).Nkind = N_Object_Renaming_Declaration
  1368.           or else NT (N).Nkind = N_Package_Instantiation
  1369.           or else NT (N).Nkind = N_Package_Renaming_Declaration
  1370.           or else NT (N).Nkind = N_Procedure_Call_Statement
  1371.           or else NT (N).Nkind = N_Procedure_Instantiation
  1372.           or else NT (N).Nkind = N_Raise_Statement
  1373.           or else NT (N).Nkind = N_Requeue_Statement
  1374.           or else NT (N).Nkind = N_Subprogram_Renaming_Declaration
  1375.           or else NT (N).Nkind = N_Subunit
  1376.           or else NT (N).Nkind = N_Variant_Part
  1377.           or else NT (N).Nkind = N_With_Clause);
  1378.       return Node2 (N);
  1379.    end Name;
  1380.  
  1381.    function Names
  1382.       (N : Node_Id) return List_Id is
  1383.    begin
  1384.       pragma Assert (False
  1385.           or else NT (N).Nkind = N_Abort_Statement
  1386.           or else NT (N).Nkind = N_Use_Package_Clause);
  1387.       return List2 (N);
  1388.    end Names;
  1389.  
  1390.    function Next_Entity
  1391.       (N : Node_Id) return Node_Id is
  1392.    begin
  1393.       pragma Assert (False
  1394.           or else NT (N).Nkind = N_Defining_Character_Literal
  1395.           or else NT (N).Nkind = N_Defining_Identifier
  1396.           or else NT (N).Nkind = N_Defining_Operator_Symbol);
  1397.       return Node2 (N);
  1398.    end Next_Entity;
  1399.  
  1400.    function Next_Interp
  1401.       (N : Node_Id) return Node_Id is
  1402.    begin
  1403.       pragma Assert (False
  1404.           or else NT (N).Nkind = N_Interpretation);
  1405.       return Node2 (N);
  1406.    end Next_Interp;
  1407.  
  1408.    function Next_Named_Actual
  1409.       (N : Node_Id) return Node_Id is
  1410.    begin
  1411.       pragma Assert (False
  1412.           or else NT (N).Nkind = N_Parameter_Association);
  1413.       return Node4 (N);
  1414.    end Next_Named_Actual;
  1415.  
  1416.    function Next_Use_Clause
  1417.       (N : Node_Id) return Node_Id is
  1418.    begin
  1419.       pragma Assert (False
  1420.           or else NT (N).Nkind = N_Use_Package_Clause
  1421.           or else NT (N).Nkind = N_Use_Type_Clause);
  1422.       return Node3 (N);
  1423.    end Next_Use_Clause;
  1424.  
  1425.    function No_Default_Init
  1426.       (N : Node_Id) return Boolean is
  1427.    begin
  1428.       pragma Assert (False
  1429.           or else NT (N).Nkind = N_Object_Declaration);
  1430.       return Flag7 (N);
  1431.    end No_Default_Init;
  1432.  
  1433.    function No_Defer
  1434.       (N : Node_Id) return Boolean is
  1435.    begin
  1436.       pragma Assert (False
  1437.           or else NT (N).Nkind = N_Raise_Statement);
  1438.       return Flag1 (N);
  1439.    end No_Defer;
  1440.  
  1441.    function Null_Present
  1442.       (N : Node_Id) return Boolean is
  1443.    begin
  1444.       pragma Assert (False
  1445.           or else NT (N).Nkind = N_Component_List
  1446.           or else NT (N).Nkind = N_Record_Definition);
  1447.       return Flag3 (N);
  1448.    end Null_Present;
  1449.  
  1450.    function Null_Record_Present
  1451.       (N : Node_Id) return Boolean is
  1452.    begin
  1453.       pragma Assert (False
  1454.           or else NT (N).Nkind = N_Aggregate
  1455.           or else NT (N).Nkind = N_Extension_Aggregate);
  1456.       return Flag17 (N);
  1457.    end Null_Record_Present;
  1458.  
  1459.    function Object_Definition
  1460.       (N : Node_Id) return Node_Id is
  1461.    begin
  1462.       pragma Assert (False
  1463.           or else NT (N).Nkind = N_Object_Declaration);
  1464.       return Node4 (N);
  1465.    end Object_Definition;
  1466.  
  1467.    function Object_Definition_Itypes
  1468.       (N : Node_Id) return Node_Id is
  1469.    begin
  1470.       pragma Assert (False
  1471.           or else NT (N).Nkind = N_Object_Declaration);
  1472.       return Node5 (N);
  1473.    end Object_Definition_Itypes;
  1474.  
  1475.    function Others_Discrete_Choices
  1476.       (N : Node_Id) return List_Id is
  1477.    begin
  1478.       pragma Assert (False
  1479.           or else NT (N).Nkind = N_Others_Choice);
  1480.       return List1 (N);
  1481.    end Others_Discrete_Choices;
  1482.  
  1483.    function Out_Present
  1484.       (N : Node_Id) return Boolean is
  1485.    begin
  1486.       pragma Assert (False
  1487.           or else NT (N).Nkind = N_Formal_Object_Declaration
  1488.           or else NT (N).Nkind = N_Parameter_Specification);
  1489.       return Flag17 (N);
  1490.    end Out_Present;
  1491.  
  1492.    function Parameter_Associations
  1493.       (N : Node_Id) return List_Id is
  1494.    begin
  1495.       pragma Assert (False
  1496.           or else NT (N).Nkind = N_Entry_Call_Statement
  1497.           or else NT (N).Nkind = N_Function_Call
  1498.           or else NT (N).Nkind = N_Procedure_Call_Statement);
  1499.       return List3 (N);
  1500.    end Parameter_Associations;
  1501.  
  1502.    function Parameter_Specifications
  1503.       (N : Node_Id) return List_Id is
  1504.    begin
  1505.       pragma Assert (False
  1506.           or else NT (N).Nkind = N_Accept_Statement
  1507.           or else NT (N).Nkind = N_Access_Function_Definition
  1508.           or else NT (N).Nkind = N_Access_Procedure_Definition
  1509.           or else NT (N).Nkind = N_Entry_Body_Formal_Part
  1510.           or else NT (N).Nkind = N_Entry_Declaration
  1511.           or else NT (N).Nkind = N_Function_Specification
  1512.           or else NT (N).Nkind = N_Procedure_Specification);
  1513.       return List3 (N);
  1514.    end Parameter_Specifications;
  1515.  
  1516.    function Parameter_Type
  1517.       (N : Node_Id) return Node_Id is
  1518.    begin
  1519.       pragma Assert (False
  1520.           or else NT (N).Nkind = N_Parameter_Specification);
  1521.       return Node2 (N);
  1522.    end Parameter_Type;
  1523.  
  1524.    function Parent_Spec
  1525.       (N : Node_Id) return Node_Id is
  1526.    begin
  1527.       pragma Assert (False
  1528.           or else NT (N).Nkind = N_Function_Instantiation
  1529.           or else NT (N).Nkind = N_Generic_Function_Renaming_Declaration
  1530.           or else NT (N).Nkind = N_Generic_Package_Declaration
  1531.           or else NT (N).Nkind = N_Generic_Package_Renaming_Declaration
  1532.           or else NT (N).Nkind = N_Generic_Procedure_Renaming_Declaration
  1533.           or else NT (N).Nkind = N_Generic_Subprogram_Declaration
  1534.           or else NT (N).Nkind = N_Package_Declaration
  1535.           or else NT (N).Nkind = N_Package_Instantiation
  1536.           or else NT (N).Nkind = N_Package_Renaming_Declaration
  1537.           or else NT (N).Nkind = N_Procedure_Instantiation
  1538.           or else NT (N).Nkind = N_Subprogram_Declaration
  1539.           or else NT (N).Nkind = N_Subprogram_Renaming_Declaration);
  1540.       return Node4 (N);
  1541.    end Parent_Spec;
  1542.  
  1543.    function Position
  1544.       (N : Node_Id) return Node_Id is
  1545.    begin
  1546.       pragma Assert (False
  1547.           or else NT (N).Nkind = N_Component_Clause);
  1548.       return Node2 (N);
  1549.    end Position;
  1550.  
  1551.    function Pragma_Argument_Associations
  1552.       (N : Node_Id) return List_Id is
  1553.    begin
  1554.       pragma Assert (False
  1555.           or else NT (N).Nkind = N_Pragma);
  1556.       return List2 (N);
  1557.    end Pragma_Argument_Associations;
  1558.  
  1559.    function Prefix
  1560.       (N : Node_Id) return Node_Id is
  1561.    begin
  1562.       pragma Assert (False
  1563.           or else NT (N).Nkind = N_Attribute_Reference
  1564.           or else NT (N).Nkind = N_Expanded_Name
  1565.           or else NT (N).Nkind = N_Explicit_Dereference
  1566.           or else NT (N).Nkind = N_Indexed_Component
  1567.           or else NT (N).Nkind = N_Reference
  1568.           or else NT (N).Nkind = N_Selected_Component
  1569.           or else NT (N).Nkind = N_Slice);
  1570.       return Node3 (N);
  1571.    end Prefix;
  1572.  
  1573.    function Prev_Ids
  1574.       (N : Node_Id) return Boolean is
  1575.    begin
  1576.       pragma Assert (False
  1577.           or else NT (N).Nkind = N_Component_Declaration
  1578.           or else NT (N).Nkind = N_Discriminant_Specification
  1579.           or else NT (N).Nkind = N_Exception_Declaration
  1580.           or else NT (N).Nkind = N_Formal_Object_Declaration
  1581.           or else NT (N).Nkind = N_Number_Declaration
  1582.           or else NT (N).Nkind = N_Object_Declaration
  1583.           or else NT (N).Nkind = N_Parameter_Specification);
  1584.       return Flag6 (N);
  1585.    end Prev_Ids;
  1586.  
  1587.    function Private_Declarations
  1588.       (N : Node_Id) return List_Id is
  1589.    begin
  1590.       pragma Assert (False
  1591.           or else NT (N).Nkind = N_Package_Specification
  1592.           or else NT (N).Nkind = N_Protected_Definition
  1593.           or else NT (N).Nkind = N_Task_Definition);
  1594.       return List4 (N);
  1595.    end Private_Declarations;
  1596.  
  1597.    function Private_Present
  1598.       (N : Node_Id) return Boolean is
  1599.    begin
  1600.       pragma Assert (False
  1601.           or else NT (N).Nkind = N_Compilation_Unit
  1602.           or else NT (N).Nkind = N_Formal_Derived_Type_Definition);
  1603.       return Flag1 (N);
  1604.    end Private_Present;
  1605.  
  1606.    function Procedure_To_Call
  1607.       (N : Node_Id) return Node_Id is
  1608.    begin
  1609.       pragma Assert (False
  1610.           or else NT (N).Nkind = N_Allocator
  1611.           or else NT (N).Nkind = N_Free_Statement
  1612.           or else NT (N).Nkind = N_Return_Statement);
  1613.       return Node4 (N);
  1614.    end Procedure_To_Call;
  1615.  
  1616.    function Proper_Body
  1617.       (N : Node_Id) return Node_Id is
  1618.    begin
  1619.       pragma Assert (False
  1620.           or else NT (N).Nkind = N_Subunit);
  1621.       return Node1 (N);
  1622.    end Proper_Body;
  1623.  
  1624.    function Protected_Definition
  1625.       (N : Node_Id) return Node_Id is
  1626.    begin
  1627.       pragma Assert (False
  1628.           or else NT (N).Nkind = N_Protected_Type_Declaration
  1629.           or else NT (N).Nkind = N_Single_Protected_Declaration);
  1630.       return Node3 (N);
  1631.    end Protected_Definition;
  1632.  
  1633.    function Protected_Present
  1634.       (N : Node_Id) return Boolean is
  1635.    begin
  1636.       pragma Assert (False
  1637.           or else NT (N).Nkind = N_Access_Function_Definition
  1638.           or else NT (N).Nkind = N_Access_Procedure_Definition);
  1639.       return Flag1 (N);
  1640.    end Protected_Present;
  1641.  
  1642.    function Raises_Constraint_Error
  1643.       (N : Node_Id) return Boolean is
  1644.    begin
  1645.       pragma Assert (False
  1646.           or else NT (N).Nkind in N_Subexpr);
  1647.       return Flag7 (N);
  1648.    end Raises_Constraint_Error;
  1649.  
  1650.    function Range_Constraint
  1651.       (N : Node_Id) return Node_Id is
  1652.    begin
  1653.       pragma Assert (False
  1654.           or else NT (N).Nkind = N_Delta_Constraint
  1655.           or else NT (N).Nkind = N_Digits_Constraint);
  1656.       return Node4 (N);
  1657.    end Range_Constraint;
  1658.  
  1659.    function Range_Expression
  1660.       (N : Node_Id) return Node_Id is
  1661.    begin
  1662.       pragma Assert (False
  1663.           or else NT (N).Nkind = N_Range_Constraint);
  1664.       return Node4 (N);
  1665.    end Range_Expression;
  1666.  
  1667.    function Realval
  1668.       (N : Node_Id) return Ureal is
  1669.    begin
  1670.       pragma Assert (False
  1671.           or else NT (N).Nkind = N_Real_Literal);
  1672.       return Ureal3 (N);
  1673.    end Realval;
  1674.  
  1675.    function Real_Range_Specification
  1676.       (N : Node_Id) return Node_Id is
  1677.    begin
  1678.       pragma Assert (False
  1679.           or else NT (N).Nkind = N_Decimal_Fixed_Point_Definition
  1680.           or else NT (N).Nkind = N_Floating_Point_Definition
  1681.           or else NT (N).Nkind = N_Ordinary_Fixed_Point_Definition);
  1682.       return Node4 (N);
  1683.    end Real_Range_Specification;
  1684.  
  1685.    function Record_Extension_Part
  1686.       (N : Node_Id) return Node_Id is
  1687.    begin
  1688.       pragma Assert (False
  1689.           or else NT (N).Nkind = N_Derived_Type_Definition);
  1690.       return Node3 (N);
  1691.    end Record_Extension_Part;
  1692.  
  1693.    function Redundant_Use
  1694.       (N : Node_Id) return Boolean is
  1695.    begin
  1696.       pragma Assert (False
  1697.           or else NT (N).Nkind = N_Expanded_Name
  1698.           or else NT (N).Nkind = N_Identifier);
  1699.       return Flag3 (N);
  1700.    end Redundant_Use;
  1701.  
  1702.    function Return_Type
  1703.       (N : Node_Id) return Node_Id is
  1704.    begin
  1705.       pragma Assert (False
  1706.           or else NT (N).Nkind = N_Return_Statement);
  1707.       return Node2 (N);
  1708.    end Return_Type;
  1709.  
  1710.    function Reverse_Present
  1711.       (N : Node_Id) return Boolean is
  1712.    begin
  1713.       pragma Assert (False
  1714.           or else NT (N).Nkind = N_Loop_Parameter_Specification);
  1715.       return Flag1 (N);
  1716.    end Reverse_Present;
  1717.  
  1718.    function Right_Opnd
  1719.       (N : Node_Id) return Node_Id is
  1720.    begin
  1721.       pragma Assert (False
  1722.           or else NT (N).Nkind = N_And_Then
  1723.           or else NT (N).Nkind = N_In
  1724.           or else NT (N).Nkind = N_Not_In
  1725.           or else NT (N).Nkind = N_Or_Else
  1726.           or else NT (N).Nkind in N_Op);
  1727.       return Node3 (N);
  1728.    end Right_Opnd;
  1729.  
  1730.    function Rounded_Result
  1731.       (N : Node_Id) return Boolean is
  1732.    begin
  1733.       pragma Assert (False
  1734.           or else NT (N).Nkind = N_Op_Divide
  1735.           or else NT (N).Nkind = N_Op_Multiply
  1736.           or else NT (N).Nkind = N_Type_Conversion);
  1737.       return Flag12 (N);
  1738.    end Rounded_Result;
  1739.  
  1740.    function Scope
  1741.       (N : Node_Id) return Node_Id is
  1742.    begin
  1743.       pragma Assert (False
  1744.           or else NT (N).Nkind = N_Defining_Character_Literal
  1745.           or else NT (N).Nkind = N_Defining_Identifier
  1746.           or else NT (N).Nkind = N_Defining_Operator_Symbol);
  1747.       return Node3 (N);
  1748.    end Scope;
  1749.  
  1750.    function Select_Alternatives
  1751.       (N : Node_Id) return List_Id is
  1752.    begin
  1753.       pragma Assert (False
  1754.           or else NT (N).Nkind = N_Selective_Accept);
  1755.       return List1 (N);
  1756.    end Select_Alternatives;
  1757.  
  1758.    function Selector_Name
  1759.       (N : Node_Id) return Node_Id is
  1760.    begin
  1761.       pragma Assert (False
  1762.           or else NT (N).Nkind = N_Expanded_Name
  1763.           or else NT (N).Nkind = N_Generic_Association
  1764.           or else NT (N).Nkind = N_Parameter_Association
  1765.           or else NT (N).Nkind = N_Selected_Component);
  1766.       return Node2 (N);
  1767.    end Selector_Name;
  1768.  
  1769.    function Selector_Names
  1770.       (N : Node_Id) return List_Id is
  1771.    begin
  1772.       pragma Assert (False
  1773.           or else NT (N).Nkind = N_Discriminant_Association);
  1774.       return List1 (N);
  1775.    end Selector_Names;
  1776.  
  1777.    function Specification
  1778.       (N : Node_Id) return Node_Id is
  1779.    begin
  1780.       pragma Assert (False
  1781.           or else NT (N).Nkind = N_Abstract_Subprogram_Declaration
  1782.           or else NT (N).Nkind = N_Formal_Subprogram_Declaration
  1783.           or else NT (N).Nkind = N_Generic_Package_Declaration
  1784.           or else NT (N).Nkind = N_Generic_Subprogram_Declaration
  1785.           or else NT (N).Nkind = N_Package_Declaration
  1786.           or else NT (N).Nkind = N_Subprogram_Body
  1787.           or else NT (N).Nkind = N_Subprogram_Body_Stub
  1788.           or else NT (N).Nkind = N_Subprogram_Declaration
  1789.           or else NT (N).Nkind = N_Subprogram_Renaming_Declaration);
  1790.       return Node1 (N);
  1791.    end Specification;
  1792.  
  1793.    function Statements
  1794.       (N : Node_Id) return List_Id is
  1795.    begin
  1796.       pragma Assert (False
  1797.           or else NT (N).Nkind = N_Abortable_Part
  1798.           or else NT (N).Nkind = N_Accept_Alternative
  1799.           or else NT (N).Nkind = N_Case_Statement_Alternative
  1800.           or else NT (N).Nkind = N_Delay_Alternative
  1801.           or else NT (N).Nkind = N_Entry_Call_Alternative
  1802.           or else NT (N).Nkind = N_Exception_Handler
  1803.           or else NT (N).Nkind = N_Handled_Sequence_Of_Statements
  1804.           or else NT (N).Nkind = N_Loop_Statement
  1805.           or else NT (N).Nkind = N_Triggering_Alternative);
  1806.       return List3 (N);
  1807.    end Statements;
  1808.  
  1809.    function Storage_Pool
  1810.       (N : Node_Id) return Node_Id is
  1811.    begin
  1812.       pragma Assert (False
  1813.           or else NT (N).Nkind = N_Allocator
  1814.           or else NT (N).Nkind = N_Free_Statement
  1815.           or else NT (N).Nkind = N_Return_Statement);
  1816.       return Node1 (N);
  1817.    end Storage_Pool;
  1818.  
  1819.    function Strval
  1820.       (N : Node_Id) return String_Id is
  1821.    begin
  1822.       pragma Assert (False
  1823.           or else NT (N).Nkind = N_Operator_Symbol
  1824.           or else NT (N).Nkind = N_String_Literal);
  1825.       return Str3 (N);
  1826.    end Strval;
  1827.  
  1828.    function Subtype_Indication
  1829.       (N : Node_Id) return Node_Id is
  1830.    begin
  1831.       pragma Assert (False
  1832.           or else NT (N).Nkind = N_Access_To_Object_Definition
  1833.           or else NT (N).Nkind = N_Component_Declaration
  1834.           or else NT (N).Nkind = N_Constrained_Array_Definition
  1835.           or else NT (N).Nkind = N_Derived_Type_Definition
  1836.           or else NT (N).Nkind = N_Private_Extension_Declaration
  1837.           or else NT (N).Nkind = N_Subtype_Declaration
  1838.           or else NT (N).Nkind = N_Unconstrained_Array_Definition);
  1839.       return Node5 (N);
  1840.    end Subtype_Indication;
  1841.  
  1842.    function Subtype_Mark
  1843.       (N : Node_Id) return Node_Id is
  1844.    begin
  1845.       pragma Assert (False
  1846.           or else NT (N).Nkind = N_Access_Definition
  1847.           or else NT (N).Nkind = N_Access_Function_Definition
  1848.           or else NT (N).Nkind = N_Formal_Derived_Type_Definition
  1849.           or else NT (N).Nkind = N_Formal_Object_Declaration
  1850.           or else NT (N).Nkind = N_Function_Specification
  1851.           or else NT (N).Nkind = N_Object_Renaming_Declaration
  1852.           or else NT (N).Nkind = N_Qualified_Expression
  1853.           or else NT (N).Nkind = N_Subtype_Indication
  1854.           or else NT (N).Nkind = N_Type_Conversion
  1855.           or else NT (N).Nkind = N_Unchecked_Type_Conversion);
  1856.       return Node4 (N);
  1857.    end Subtype_Mark;
  1858.  
  1859.    function Subtype_Marks
  1860.       (N : Node_Id) return List_Id is
  1861.    begin
  1862.       pragma Assert (False
  1863.           or else NT (N).Nkind = N_Unconstrained_Array_Definition
  1864.           or else NT (N).Nkind = N_Use_Type_Clause);
  1865.       return List2 (N);
  1866.    end Subtype_Marks;
  1867.  
  1868.    function Tagged_Present
  1869.       (N : Node_Id) return Boolean is
  1870.    begin
  1871.       pragma Assert (False
  1872.           or else NT (N).Nkind = N_Formal_Private_Type_Definition
  1873.           or else NT (N).Nkind = N_Private_Type_Declaration
  1874.           or else NT (N).Nkind = N_Record_Definition);
  1875.       return Flag1 (N);
  1876.    end Tagged_Present;
  1877.  
  1878.    function Task_Definition
  1879.       (N : Node_Id) return Node_Id is
  1880.    begin
  1881.       pragma Assert (False
  1882.           or else NT (N).Nkind = N_Single_Task_Declaration
  1883.           or else NT (N).Nkind = N_Task_Type_Declaration);
  1884.       return Node3 (N);
  1885.    end Task_Definition;
  1886.  
  1887.    function Then_Actions
  1888.       (N : Node_Id) return List_Id is
  1889.    begin
  1890.       pragma Assert (False
  1891.           or else NT (N).Nkind = N_Conditional_Expression);
  1892.       return List2 (N);
  1893.    end Then_Actions;
  1894.  
  1895.    function Then_Statements
  1896.       (N : Node_Id) return List_Id is
  1897.    begin
  1898.       pragma Assert (False
  1899.           or else NT (N).Nkind = N_Elsif_Part
  1900.           or else NT (N).Nkind = N_If_Statement);
  1901.       return List2 (N);
  1902.    end Then_Statements;
  1903.  
  1904.    function Treat_Fixed_As_Integer
  1905.       (N : Node_Id) return Boolean is
  1906.    begin
  1907.       pragma Assert (False
  1908.           or else NT (N).Nkind = N_Op_Divide
  1909.           or else NT (N).Nkind = N_Op_Mod
  1910.           or else NT (N).Nkind = N_Op_Multiply
  1911.           or else NT (N).Nkind = N_Op_Rem);
  1912.       return Flag14 (N);
  1913.    end Treat_Fixed_As_Integer;
  1914.  
  1915.    function Triggering_Alternative
  1916.       (N : Node_Id) return Node_Id is
  1917.    begin
  1918.       pragma Assert (False
  1919.           or else NT (N).Nkind = N_Asynchronous_Select);
  1920.       return Node1 (N);
  1921.    end Triggering_Alternative;
  1922.  
  1923.    function Triggering_Statement
  1924.       (N : Node_Id) return Node_Id is
  1925.    begin
  1926.       pragma Assert (False
  1927.           or else NT (N).Nkind = N_Triggering_Alternative);
  1928.       return Node1 (N);
  1929.    end Triggering_Statement;
  1930.  
  1931.    function TSS_Elist
  1932.       (N : Node_Id) return Elist_Id is
  1933.    begin
  1934.       pragma Assert (False
  1935.           or else NT (N).Nkind = N_Freeze_Entity);
  1936.       return Elist3 (N);
  1937.    end TSS_Elist;
  1938.  
  1939.    function Type_Definition
  1940.       (N : Node_Id) return Node_Id is
  1941.    begin
  1942.       pragma Assert (False
  1943.           or else NT (N).Nkind = N_Full_Type_Declaration);
  1944.       return Node3 (N);
  1945.    end Type_Definition;
  1946.  
  1947.    function Unit
  1948.       (N : Node_Id) return Node_Id is
  1949.    begin
  1950.       pragma Assert (False
  1951.           or else NT (N).Nkind = N_Compilation_Unit);
  1952.       return Node2 (N);
  1953.    end Unit;
  1954.  
  1955.    function Variant_Part
  1956.       (N : Node_Id) return Node_Id is
  1957.    begin
  1958.       pragma Assert (False
  1959.           or else NT (N).Nkind = N_Component_List);
  1960.       return Node4 (N);
  1961.    end Variant_Part;
  1962.  
  1963.    function Variants
  1964.       (N : Node_Id) return List_Id is
  1965.    begin
  1966.       pragma Assert (False
  1967.           or else NT (N).Nkind = N_Variant_Part);
  1968.       return List1 (N);
  1969.    end Variants;
  1970.  
  1971.    function Visible_Declarations
  1972.       (N : Node_Id) return List_Id is
  1973.    begin
  1974.       pragma Assert (False
  1975.           or else NT (N).Nkind = N_Package_Specification
  1976.           or else NT (N).Nkind = N_Protected_Definition
  1977.           or else NT (N).Nkind = N_Task_Definition);
  1978.       return List2 (N);
  1979.    end Visible_Declarations;
  1980.  
  1981.    --------------------------
  1982.    -- Field Set Procedures --
  1983.    --------------------------
  1984.  
  1985.    procedure Set_Abort_Present
  1986.       (N : Node_Id; Val : Boolean := True) is
  1987.    begin
  1988.       pragma Assert (False
  1989.           or else NT (N).Nkind = N_Requeue_Statement);
  1990.       Set_Flag1 (N, Val);
  1991.    end Set_Abort_Present;
  1992.  
  1993.    procedure Set_Abortable_Part
  1994.       (N : Node_Id; Val : Node_Id) is
  1995.    begin
  1996.       pragma Assert (False
  1997.           or else NT (N).Nkind = N_Asynchronous_Select);
  1998.       Set_Node2_With_Parent (N, Val);
  1999.    end Set_Abortable_Part;
  2000.  
  2001.    procedure Set_Abstract_Present
  2002.       (N : Node_Id; Val : Boolean := True) is
  2003.    begin
  2004.       pragma Assert (False
  2005.           or else NT (N).Nkind = N_Derived_Type_Definition
  2006.           or else NT (N).Nkind = N_Formal_Derived_Type_Definition
  2007.           or else NT (N).Nkind = N_Formal_Private_Type_Definition
  2008.           or else NT (N).Nkind = N_Private_Extension_Declaration
  2009.           or else NT (N).Nkind = N_Private_Type_Declaration
  2010.           or else NT (N).Nkind = N_Record_Definition);
  2011.       Set_Flag4 (N, Val);
  2012.    end Set_Abstract_Present;
  2013.  
  2014.    procedure Set_Accept_Statement
  2015.       (N : Node_Id; Val : Node_Id) is
  2016.    begin
  2017.       pragma Assert (False
  2018.           or else NT (N).Nkind = N_Accept_Alternative);
  2019.       Set_Node2_With_Parent (N, Val);
  2020.    end Set_Accept_Statement;
  2021.  
  2022.    procedure Set_Actions
  2023.       (N : Node_Id; Val : List_Id) is
  2024.    begin
  2025.       pragma Assert (False
  2026.           or else NT (N).Nkind = N_And_Then
  2027.           or else NT (N).Nkind = N_Expression_Actions
  2028.           or else NT (N).Nkind = N_Freeze_Entity
  2029.           or else NT (N).Nkind = N_Or_Else);
  2030.       Set_List1_With_Parent (N, Val);
  2031.    end Set_Actions;
  2032.  
  2033.    procedure Set_Activation_Chain_Entity
  2034.       (N : Node_Id; Val : Node_Id) is
  2035.    begin
  2036.       pragma Assert (False
  2037.           or else NT (N).Nkind = N_Block_Statement
  2038.           or else NT (N).Nkind = N_Generic_Package_Declaration
  2039.           or else NT (N).Nkind = N_Package_Declaration
  2040.           or else NT (N).Nkind = N_Subprogram_Body
  2041.           or else NT (N).Nkind = N_Task_Body);
  2042.       Set_Node2 (N, Val); -- semantic node, no parent set
  2043.    end Set_Activation_Chain_Entity;
  2044.  
  2045.    procedure Set_Acts_As_Spec
  2046.       (N : Node_Id; Val : Boolean := True) is
  2047.    begin
  2048.       pragma Assert (False
  2049.           or else NT (N).Nkind = N_Compilation_Unit
  2050.           or else NT (N).Nkind = N_Subprogram_Body);
  2051.       Set_Flag4 (N, Val);
  2052.    end Set_Acts_As_Spec;
  2053.  
  2054.    procedure Set_Aggregate_Bounds
  2055.       (N : Node_Id; Val : Node_Id) is
  2056.    begin
  2057.       pragma Assert (False
  2058.           or else NT (N).Nkind = N_Aggregate);
  2059.       Set_Node3 (N, Val); -- semantic node, no parent set
  2060.    end Set_Aggregate_Bounds;
  2061.  
  2062.    procedure Set_Aliased_Present
  2063.       (N : Node_Id; Val : Boolean := True) is
  2064.    begin
  2065.       pragma Assert (False
  2066.           or else NT (N).Nkind = N_Component_Declaration
  2067.           or else NT (N).Nkind = N_Constrained_Array_Definition
  2068.           or else NT (N).Nkind = N_Object_Declaration
  2069.           or else NT (N).Nkind = N_Unconstrained_Array_Definition);
  2070.       Set_Flag1 (N, Val);
  2071.    end Set_Aliased_Present;
  2072.  
  2073.    procedure Set_All_Present
  2074.       (N : Node_Id; Val : Boolean := True) is
  2075.    begin
  2076.       pragma Assert (False
  2077.           or else NT (N).Nkind = N_Access_To_Object_Definition);
  2078.       Set_Flag1 (N, Val);
  2079.    end Set_All_Present;
  2080.  
  2081.    procedure Set_Alternatives
  2082.       (N : Node_Id; Val : List_Id) is
  2083.    begin
  2084.       pragma Assert (False
  2085.           or else NT (N).Nkind = N_Case_Statement);
  2086.       Set_List4_With_Parent (N, Val);
  2087.    end Set_Alternatives;
  2088.  
  2089.    procedure Set_Analyzed
  2090.       (N : Node_Id; Val : Boolean := True) is
  2091.    begin
  2092.       Set_Flag15 (N, Val);
  2093.    end Set_Analyzed;
  2094.  
  2095.    procedure Set_Ancestor_Part
  2096.       (N : Node_Id; Val : Node_Id) is
  2097.    begin
  2098.       pragma Assert (False
  2099.           or else NT (N).Nkind = N_Extension_Aggregate);
  2100.       Set_Node3_With_Parent (N, Val);
  2101.    end Set_Ancestor_Part;
  2102.  
  2103.    procedure Set_Array_Aggregate
  2104.       (N : Node_Id; Val : Node_Id) is
  2105.    begin
  2106.       pragma Assert (False
  2107.           or else NT (N).Nkind = N_Enumeration_Representation_Clause);
  2108.       Set_Node4_With_Parent (N, Val);
  2109.    end Set_Array_Aggregate;
  2110.  
  2111.    procedure Set_Assignment_OK
  2112.       (N : Node_Id; Val : Boolean := True) is
  2113.    begin
  2114.       pragma Assert (False
  2115.           or else NT (N).Nkind in N_Subexpr);
  2116.       Set_Flag1 (N, Val);
  2117.    end Set_Assignment_OK;
  2118.  
  2119.    procedure Set_Attribute_Name
  2120.       (N : Node_Id; Val : Name_Id) is
  2121.    begin
  2122.       pragma Assert (False
  2123.           or else NT (N).Nkind = N_Attribute_Reference);
  2124.       Set_Name2 (N, Val);
  2125.    end Set_Attribute_Name;
  2126.  
  2127.    procedure Set_Backwards_OK
  2128.       (N : Node_Id; Val : Boolean := True) is
  2129.    begin
  2130.       pragma Assert (False
  2131.           or else NT (N).Nkind = N_Assignment_Statement);
  2132.       Set_Flag6 (N, Val);
  2133.    end Set_Backwards_OK;
  2134.  
  2135.    procedure Set_Bad_Is_Detected
  2136.       (N : Node_Id; Val : Boolean := True) is
  2137.    begin
  2138.       pragma Assert (False
  2139.           or else NT (N).Nkind = N_Subprogram_Body);
  2140.       Set_Flag1 (N, Val);
  2141.    end Set_Bad_Is_Detected;
  2142.  
  2143.    procedure Set_Body_Required
  2144.       (N : Node_Id; Val : Boolean := True) is
  2145.    begin
  2146.       pragma Assert (False
  2147.           or else NT (N).Nkind = N_Compilation_Unit);
  2148.       Set_Flag3 (N, Val);
  2149.    end Set_Body_Required;
  2150.  
  2151.    procedure Set_Box_Present
  2152.       (N : Node_Id; Val : Boolean := True) is
  2153.    begin
  2154.       pragma Assert (False
  2155.           or else NT (N).Nkind = N_Formal_Package_Declaration
  2156.           or else NT (N).Nkind = N_Formal_Subprogram_Declaration);
  2157.       Set_Flag1 (N, Val);
  2158.    end Set_Box_Present;
  2159.  
  2160.    procedure Set_Cannot_Be_Constant
  2161.       (N : Node_Id; Val : Boolean := True) is
  2162.    begin
  2163.       pragma Assert (False
  2164.           or else NT (N).Nkind in N_Subexpr);
  2165.       Set_Flag18 (N, Val);
  2166.    end Set_Cannot_Be_Constant;
  2167.  
  2168.    procedure Set_Char_Literal_Value
  2169.       (N : Node_Id; Val : Char_Code) is
  2170.    begin
  2171.       pragma Assert (False
  2172.           or else NT (N).Nkind = N_Character_Literal);
  2173.       Set_Char_Code2 (N, Val);
  2174.    end Set_Char_Literal_Value;
  2175.  
  2176.    procedure Set_Chars
  2177.       (N : Node_Id; Val : Name_Id) is
  2178.    begin
  2179.       pragma Assert (False
  2180.           or else NT (N).Nkind in N_Has_Chars);
  2181.       Set_Name1 (N, Val);
  2182.    end Set_Chars;
  2183.  
  2184.    procedure Set_Choice_Parameter
  2185.       (N : Node_Id; Val : Node_Id) is
  2186.    begin
  2187.       pragma Assert (False
  2188.           or else NT (N).Nkind = N_Exception_Handler);
  2189.       Set_Node2_With_Parent (N, Val);
  2190.    end Set_Choice_Parameter;
  2191.  
  2192.    procedure Set_Choices
  2193.       (N : Node_Id; Val : List_Id) is
  2194.    begin
  2195.       pragma Assert (False
  2196.           or else NT (N).Nkind = N_Component_Association);
  2197.       Set_List1_With_Parent (N, Val);
  2198.    end Set_Choices;
  2199.  
  2200.    procedure Set_Cleanup_Call
  2201.       (N : Node_Id; Val : Node_Id) is
  2202.    begin
  2203.       pragma Assert (False
  2204.           or else NT (N).Nkind = N_Handled_Sequence_Of_Statements);
  2205.       Set_Node5 (N, Val); -- no parent, semantic node
  2206.    end Set_Cleanup_Call;
  2207.  
  2208.    procedure Set_Component_Associations
  2209.       (N : Node_Id; Val : List_Id) is
  2210.    begin
  2211.       pragma Assert (False
  2212.           or else NT (N).Nkind = N_Aggregate
  2213.           or else NT (N).Nkind = N_Extension_Aggregate);
  2214.       Set_List4_With_Parent (N, Val);
  2215.    end Set_Component_Associations;
  2216.  
  2217.    procedure Set_Component_Clauses
  2218.       (N : Node_Id; Val : List_Id) is
  2219.    begin
  2220.       pragma Assert (False
  2221.           or else NT (N).Nkind = N_Record_Representation_Clause);
  2222.       Set_List3_With_Parent (N, Val);
  2223.    end Set_Component_Clauses;
  2224.  
  2225.    procedure Set_Component_Items
  2226.       (N : Node_Id; Val : List_Id) is
  2227.    begin
  2228.       pragma Assert (False
  2229.           or else NT (N).Nkind = N_Component_List);
  2230.       Set_List3_With_Parent (N, Val);
  2231.    end Set_Component_Items;
  2232.  
  2233.    procedure Set_Component_List
  2234.       (N : Node_Id; Val : Node_Id) is
  2235.    begin
  2236.       pragma Assert (False
  2237.           or else NT (N).Nkind = N_Record_Definition
  2238.           or else NT (N).Nkind = N_Variant);
  2239.       Set_Node1_With_Parent (N, Val);
  2240.    end Set_Component_List;
  2241.  
  2242.    procedure Set_Component_Name
  2243.       (N : Node_Id; Val : Node_Id) is
  2244.    begin
  2245.       pragma Assert (False
  2246.           or else NT (N).Nkind = N_Component_Clause);
  2247.       Set_Node1_With_Parent (N, Val);
  2248.    end Set_Component_Name;
  2249.  
  2250.    procedure Set_Condition
  2251.       (N : Node_Id; Val : Node_Id) is
  2252.    begin
  2253.       pragma Assert (False
  2254.           or else NT (N).Nkind = N_Accept_Alternative
  2255.           or else NT (N).Nkind = N_Delay_Alternative
  2256.           or else NT (N).Nkind = N_Elsif_Part
  2257.           or else NT (N).Nkind = N_Entry_Body_Formal_Part
  2258.           or else NT (N).Nkind = N_Exit_Statement
  2259.           or else NT (N).Nkind = N_If_Statement
  2260.           or else NT (N).Nkind = N_Iteration_Scheme
  2261.           or else NT (N).Nkind = N_Terminate_Alternative);
  2262.       Set_Node5_With_Parent (N, Val);
  2263.    end Set_Condition;
  2264.  
  2265.  
  2266.    procedure Set_Condition_Actions
  2267.       (N : Node_Id; Val : List_Id) is
  2268.    begin
  2269.       pragma Assert (False
  2270.           or else NT (N).Nkind = N_Elsif_Part
  2271.           or else NT (N).Nkind = N_Iteration_Scheme);
  2272.       Set_List3 (N, Val); -- no parent, semantic field
  2273.    end Set_Condition_Actions;
  2274.  
  2275.    procedure Set_Constant_Present
  2276.       (N : Node_Id; Val : Boolean := True) is
  2277.    begin
  2278.       pragma Assert (False
  2279.           or else NT (N).Nkind = N_Access_To_Object_Definition
  2280.           or else NT (N).Nkind = N_Object_Declaration);
  2281.       Set_Flag17 (N, Val);
  2282.    end Set_Constant_Present;
  2283.  
  2284.    procedure Set_Constraint
  2285.       (N : Node_Id; Val : Node_Id) is
  2286.    begin
  2287.       pragma Assert (False
  2288.           or else NT (N).Nkind = N_Subtype_Indication);
  2289.       Set_Node3_With_Parent (N, Val);
  2290.    end Set_Constraint;
  2291.  
  2292.    procedure Set_Constraints
  2293.       (N : Node_Id; Val : List_Id) is
  2294.    begin
  2295.       pragma Assert (False
  2296.           or else NT (N).Nkind = N_Index_Or_Discriminant_Constraint);
  2297.       Set_List1_With_Parent (N, Val);
  2298.    end Set_Constraints;
  2299.  
  2300.    procedure Set_Context_Installed
  2301.       (N : Node_Id; Val : Boolean := True) is
  2302.    begin
  2303.       pragma Assert (False
  2304.           or else NT (N).Nkind = N_With_Clause);
  2305.       Set_Flag3 (N, Val);
  2306.    end Set_Context_Installed;
  2307.  
  2308.    procedure Set_Context_Items
  2309.       (N : Node_Id; Val : List_Id) is
  2310.    begin
  2311.       pragma Assert (False
  2312.           or else NT (N).Nkind = N_Compilation_Unit);
  2313.       Set_List1_With_Parent (N, Val);
  2314.    end Set_Context_Items;
  2315.  
  2316.    procedure Set_Controlling_Argument
  2317.       (N : Node_Id; Val : Node_Id) is
  2318.    begin
  2319.       pragma Assert (False
  2320.           or else NT (N).Nkind = N_Function_Call
  2321.           or else NT (N).Nkind = N_Procedure_Call_Statement);
  2322.       Set_Node1 (N, Val); -- Note: semantic node, no parent set
  2323.    end Set_Controlling_Argument;
  2324.  
  2325.    procedure Set_Conversion_OK
  2326.       (N : Node_Id; Val : Boolean := True) is
  2327.    begin
  2328.       pragma Assert (False
  2329.           or else NT (N).Nkind = N_Type_Conversion);
  2330.       Set_Flag14 (N, Val);
  2331.    end Set_Conversion_OK;
  2332.  
  2333.    procedure Set_Corresponding_Body
  2334.       (N : Node_Id; Val : Node_Id) is
  2335.    begin
  2336.       pragma Assert (False
  2337.           or else NT (N).Nkind = N_Generic_Package_Declaration
  2338.           or else NT (N).Nkind = N_Generic_Subprogram_Declaration
  2339.           or else NT (N).Nkind = N_Package_Body_Stub
  2340.           or else NT (N).Nkind = N_Package_Declaration
  2341.           or else NT (N).Nkind = N_Protected_Body_Stub
  2342.           or else NT (N).Nkind = N_Protected_Type_Declaration
  2343.           or else NT (N).Nkind = N_Subprogram_Body_Stub
  2344.           or else NT (N).Nkind = N_Subprogram_Declaration
  2345.           or else NT (N).Nkind = N_Task_Body_Stub
  2346.           or else NT (N).Nkind = N_Task_Type_Declaration);
  2347.       Set_Node5 (N, Val); -- Semantic node, no parent set
  2348.    end Set_Corresponding_Body;
  2349.  
  2350.    procedure Set_Corresponding_Integer_Value
  2351.       (N : Node_Id; Val : Uint) is
  2352.    begin
  2353.       pragma Assert (False
  2354.           or else NT (N).Nkind = N_Real_Literal);
  2355.       Set_Uint4 (N, Val); -- Semantic node, no parent set
  2356.    end Set_Corresponding_Integer_Value;
  2357.  
  2358.    procedure Set_Corresponding_Spec
  2359.       (N : Node_Id; Val : Node_Id) is
  2360.    begin
  2361.       pragma Assert (False
  2362.           or else NT (N).Nkind = N_Package_Body
  2363.           or else NT (N).Nkind = N_Protected_Body
  2364.           or else NT (N).Nkind = N_Subprogram_Body
  2365.           or else NT (N).Nkind = N_Subprogram_Renaming_Declaration
  2366.           or else NT (N).Nkind = N_Task_Body
  2367.           or else NT (N).Nkind = N_With_Clause);
  2368.       Set_Node5 (N, Val); -- Semantic node, no parent set
  2369.    end Set_Corresponding_Spec;
  2370.  
  2371.    procedure Set_Corresponding_Stub
  2372.       (N : Node_Id; Val : Node_Id) is
  2373.    begin
  2374.       pragma Assert (False
  2375.           or else NT (N).Nkind = N_Subunit);
  2376.       Set_Node3 (N, Val);
  2377.    end Set_Corresponding_Stub;
  2378.  
  2379.    procedure Set_Debug_Statement
  2380.       (N : Node_Id; Val : Node_Id) is
  2381.    begin
  2382.       pragma Assert (False
  2383.           or else NT (N).Nkind = N_Pragma);
  2384.       Set_Node3 (N, Val);  -- semantic node, no parent set
  2385.    end Set_Debug_Statement;
  2386.  
  2387.    procedure Set_Declarations
  2388.       (N : Node_Id; Val : List_Id) is
  2389.    begin
  2390.       pragma Assert (False
  2391.           or else NT (N).Nkind = N_Block_Statement
  2392.           or else NT (N).Nkind = N_Entry_Body
  2393.           or else NT (N).Nkind = N_Package_Body
  2394.           or else NT (N).Nkind = N_Protected_Body
  2395.           or else NT (N).Nkind = N_Subprogram_Body
  2396.           or else NT (N).Nkind = N_Task_Body);
  2397.       Set_List3_With_Parent (N, Val);
  2398.    end Set_Declarations;
  2399.  
  2400.    procedure Set_Default_Name
  2401.       (N : Node_Id; Val : Node_Id) is
  2402.    begin
  2403.       pragma Assert (False
  2404.           or else NT (N).Nkind = N_Formal_Subprogram_Declaration);
  2405.       Set_Node2_With_Parent (N, Val);
  2406.    end Set_Default_Name;
  2407.  
  2408.    procedure Set_Defining_Identifier
  2409.       (N : Node_Id; Val : Entity_Id) is
  2410.    begin
  2411.       pragma Assert (False
  2412.           or else NT (N).Nkind = N_Component_Declaration
  2413.           or else NT (N).Nkind = N_Defining_Program_Unit_Name
  2414.           or else NT (N).Nkind = N_Discriminant_Specification
  2415.           or else NT (N).Nkind = N_Entry_Body
  2416.           or else NT (N).Nkind = N_Entry_Declaration
  2417.           or else NT (N).Nkind = N_Entry_Index_Specification
  2418.           or else NT (N).Nkind = N_Exception_Declaration
  2419.           or else NT (N).Nkind = N_Exception_Renaming_Declaration
  2420.           or else NT (N).Nkind = N_Formal_Object_Declaration
  2421.           or else NT (N).Nkind = N_Formal_Package_Declaration
  2422.           or else NT (N).Nkind = N_Formal_Type_Declaration
  2423.           or else NT (N).Nkind = N_Full_Type_Declaration
  2424.           or else NT (N).Nkind = N_Implicit_Label_Declaration
  2425.           or else NT (N).Nkind = N_Incomplete_Type_Declaration
  2426.           or else NT (N).Nkind = N_Loop_Parameter_Specification
  2427.           or else NT (N).Nkind = N_Number_Declaration
  2428.           or else NT (N).Nkind = N_Object_Declaration
  2429.           or else NT (N).Nkind = N_Object_Renaming_Declaration
  2430.           or else NT (N).Nkind = N_Package_Body_Stub
  2431.           or else NT (N).Nkind = N_Parameter_Specification
  2432.           or else NT (N).Nkind = N_Private_Extension_Declaration
  2433.           or else NT (N).Nkind = N_Private_Type_Declaration
  2434.           or else NT (N).Nkind = N_Protected_Body
  2435.           or else NT (N).Nkind = N_Protected_Body_Stub
  2436.           or else NT (N).Nkind = N_Protected_Type_Declaration
  2437.           or else NT (N).Nkind = N_Single_Protected_Declaration
  2438.           or else NT (N).Nkind = N_Single_Task_Declaration
  2439.           or else NT (N).Nkind = N_Subtype_Declaration
  2440.           or else NT (N).Nkind = N_Task_Body
  2441.           or else NT (N).Nkind = N_Task_Body_Stub
  2442.           or else NT (N).Nkind = N_Task_Type_Declaration);
  2443.       Set_Node1_With_Parent (N, Val);
  2444.    end Set_Defining_Identifier;
  2445.  
  2446.    procedure Set_Defining_Unit_Name
  2447.       (N : Node_Id; Val : Node_Id) is
  2448.    begin
  2449.       pragma Assert (False
  2450.           or else NT (N).Nkind = N_Function_Instantiation
  2451.           or else NT (N).Nkind = N_Function_Specification
  2452.           or else NT (N).Nkind = N_Generic_Function_Renaming_Declaration
  2453.           or else NT (N).Nkind = N_Generic_Package_Renaming_Declaration
  2454.           or else NT (N).Nkind = N_Generic_Procedure_Renaming_Declaration
  2455.           or else NT (N).Nkind = N_Package_Body
  2456.           or else NT (N).Nkind = N_Package_Instantiation
  2457.           or else NT (N).Nkind = N_Package_Renaming_Declaration
  2458.           or else NT (N).Nkind = N_Package_Specification
  2459.           or else NT (N).Nkind = N_Procedure_Instantiation
  2460.           or else NT (N).Nkind = N_Procedure_Specification);
  2461.       Set_Node1_With_Parent (N, Val);
  2462.    end Set_Defining_Unit_Name;
  2463.  
  2464.    procedure Set_Delay_Alternative
  2465.       (N : Node_Id; Val : Node_Id) is
  2466.    begin
  2467.       pragma Assert (False
  2468.           or else NT (N).Nkind = N_Timed_Entry_Call);
  2469.       Set_Node4_With_Parent (N, Val);
  2470.    end Set_Delay_Alternative;
  2471.  
  2472.    procedure Set_Delay_Statement
  2473.       (N : Node_Id; Val : Node_Id) is
  2474.    begin
  2475.       pragma Assert (False
  2476.           or else NT (N).Nkind = N_Delay_Alternative);
  2477.       Set_Node2_With_Parent (N, Val);
  2478.    end Set_Delay_Statement;
  2479.  
  2480.    procedure Set_Delta_Expression
  2481.       (N : Node_Id; Val : Node_Id) is
  2482.    begin
  2483.       pragma Assert (False
  2484.           or else NT (N).Nkind = N_Decimal_Fixed_Point_Definition
  2485.           or else NT (N).Nkind = N_Delta_Constraint
  2486.           or else NT (N).Nkind = N_Ordinary_Fixed_Point_Definition);
  2487.       Set_Node3_With_Parent (N, Val);
  2488.    end Set_Delta_Expression;
  2489.  
  2490.    procedure Set_Digits_Expression
  2491.       (N : Node_Id; Val : Node_Id) is
  2492.    begin
  2493.       pragma Assert (False
  2494.           or else NT (N).Nkind = N_Decimal_Fixed_Point_Definition
  2495.           or else NT (N).Nkind = N_Digits_Constraint
  2496.           or else NT (N).Nkind = N_Floating_Point_Definition);
  2497.       Set_Node2_With_Parent (N, Val);
  2498.    end Set_Digits_Expression;
  2499.  
  2500.    procedure Set_Discrete_Choices
  2501.       (N : Node_Id; Val : List_Id) is
  2502.    begin
  2503.       pragma Assert (False
  2504.           or else NT (N).Nkind = N_Case_Statement_Alternative
  2505.           or else NT (N).Nkind = N_Variant);
  2506.       Set_List4_With_Parent (N, Val);
  2507.    end Set_Discrete_Choices;
  2508.  
  2509.    procedure Set_Discrete_Range
  2510.       (N : Node_Id; Val : Node_Id) is
  2511.    begin
  2512.       pragma Assert (False
  2513.           or else NT (N).Nkind = N_Slice);
  2514.       Set_Node4_With_Parent (N, Val);
  2515.    end Set_Discrete_Range;
  2516.  
  2517.    procedure Set_Discrete_Subtype_Definition
  2518.       (N : Node_Id; Val : Node_Id) is
  2519.    begin
  2520.       pragma Assert (False
  2521.           or else NT (N).Nkind = N_Entry_Declaration
  2522.           or else NT (N).Nkind = N_Entry_Index_Specification
  2523.           or else NT (N).Nkind = N_Loop_Parameter_Specification);
  2524.       Set_Node4_With_Parent (N, Val);
  2525.    end Set_Discrete_Subtype_Definition;
  2526.  
  2527.    procedure Set_Discrete_Subtype_Definitions
  2528.       (N : Node_Id; Val : List_Id) is
  2529.    begin
  2530.       pragma Assert (False
  2531.           or else NT (N).Nkind = N_Constrained_Array_Definition);
  2532.       Set_List2_With_Parent (N, Val);
  2533.    end Set_Discrete_Subtype_Definitions;
  2534.  
  2535.    procedure Set_Discriminant_Specifications
  2536.       (N : Node_Id; Val : List_Id) is
  2537.    begin
  2538.       pragma Assert (False
  2539.           or else NT (N).Nkind = N_Formal_Type_Declaration
  2540.           or else NT (N).Nkind = N_Full_Type_Declaration
  2541.           or else NT (N).Nkind = N_Incomplete_Type_Declaration
  2542.           or else NT (N).Nkind = N_Private_Extension_Declaration
  2543.           or else NT (N).Nkind = N_Private_Type_Declaration
  2544.           or else NT (N).Nkind = N_Protected_Type_Declaration
  2545.           or else NT (N).Nkind = N_Task_Type_Declaration);
  2546.       Set_List4_With_Parent (N, Val);
  2547.    end Set_Discriminant_Specifications;
  2548.  
  2549.    procedure Set_Discriminant_Type
  2550.       (N : Node_Id; Val : Node_Id) is
  2551.    begin
  2552.       pragma Assert (False
  2553.           or else NT (N).Nkind = N_Discriminant_Specification);
  2554.       Set_Node2_With_Parent (N, Val);
  2555.    end Set_Discriminant_Type;
  2556.  
  2557.    procedure Set_Do_Access_Check
  2558.       (N : Node_Id; Val : Boolean := True) is
  2559.    begin
  2560.       pragma Assert (False
  2561.           or else NT (N).Nkind = N_Attribute_Reference
  2562.           or else NT (N).Nkind = N_Explicit_Dereference
  2563.           or else NT (N).Nkind = N_Indexed_Component
  2564.           or else NT (N).Nkind = N_Selected_Component
  2565.           or else NT (N).Nkind = N_Slice);
  2566.       Set_Flag11 (N, Val);
  2567.    end Set_Do_Access_Check;
  2568.  
  2569.    procedure Set_Do_Accessibility_Check
  2570.       (N : Node_Id; Val : Boolean := True) is
  2571.    begin
  2572.       pragma Assert (False
  2573.           or else NT (N).Nkind = N_Parameter_Specification);
  2574.       Set_Flag3 (N, Val);
  2575.    end Set_Do_Accessibility_Check;
  2576.  
  2577.    procedure Set_Do_Discriminant_Check
  2578.       (N : Node_Id; Val : Boolean := True) is
  2579.    begin
  2580.       pragma Assert (False
  2581.           or else NT (N).Nkind = N_Selected_Component);
  2582.       Set_Flag3 (N, Val);
  2583.    end Set_Do_Discriminant_Check;
  2584.  
  2585.    procedure Set_Do_Division_Check
  2586.       (N : Node_Id; Val : Boolean := True) is
  2587.    begin
  2588.       pragma Assert (False
  2589.           or else NT (N).Nkind = N_Op_Divide
  2590.           or else NT (N).Nkind = N_Op_Mod
  2591.           or else NT (N).Nkind = N_Op_Rem);
  2592.       Set_Flag3 (N, Val);
  2593.    end Set_Do_Division_Check;
  2594.  
  2595.    procedure Set_Do_Length_Check
  2596.       (N : Node_Id; Val : Boolean := True) is
  2597.    begin
  2598.       pragma Assert (False
  2599.           or else NT (N).Nkind = N_Assignment_Statement
  2600.           or else NT (N).Nkind = N_Op_And
  2601.           or else NT (N).Nkind = N_Op_Or
  2602.           or else NT (N).Nkind = N_Op_Xor
  2603.           or else NT (N).Nkind = N_Type_Conversion);
  2604.       Set_Flag4 (N, Val);
  2605.    end Set_Do_Length_Check;
  2606.  
  2607.    procedure Set_Do_Overflow_Check
  2608.       (N : Node_Id; Val : Boolean := True) is
  2609.    begin
  2610.       pragma Assert (False
  2611.           or else NT (N).Nkind in N_Op
  2612.           or else NT (N).Nkind = N_Attribute_Reference
  2613.           or else NT (N).Nkind = N_Type_Conversion);
  2614.       Set_Flag17 (N, Val);
  2615.    end Set_Do_Overflow_Check;
  2616.  
  2617.    procedure Set_Do_Range_Check
  2618.       (N : Node_Id; Val : Boolean := True) is
  2619.    begin
  2620.       pragma Assert (False
  2621.           or else NT (N).Nkind in N_Subexpr);
  2622.       Set_Flag9 (N, Val);
  2623.    end Set_Do_Range_Check;
  2624.  
  2625.    procedure Set_Do_Storage_Check
  2626.       (N : Node_Id; Val : Boolean := True) is
  2627.    begin
  2628.       pragma Assert (False
  2629.           or else NT (N).Nkind = N_Allocator
  2630.           or else NT (N).Nkind = N_Subprogram_Body);
  2631.       Set_Flag17 (N, Val);
  2632.    end Set_Do_Storage_Check;
  2633.  
  2634.    procedure Set_Do_Tag_Check
  2635.       (N : Node_Id; Val : Boolean := True) is
  2636.    begin
  2637.       pragma Assert (False
  2638.           or else NT (N).Nkind = N_Assignment_Statement
  2639.           or else NT (N).Nkind = N_Function_Call
  2640.           or else NT (N).Nkind = N_Procedure_Call_Statement
  2641.           or else NT (N).Nkind = N_Return_Statement
  2642.           or else NT (N).Nkind = N_Type_Conversion);
  2643.       Set_Flag3 (N, Val);
  2644.    end Set_Do_Tag_Check;
  2645.  
  2646.    procedure Set_Elaborate_Present
  2647.       (N : Node_Id; Val : Boolean := True) is
  2648.    begin
  2649.       pragma Assert (False
  2650.           or else NT (N).Nkind = N_With_Clause);
  2651.       Set_Flag4 (N, Val);
  2652.    end Set_Elaborate_Present;
  2653.  
  2654.    procedure Set_Elaborate_All_Present
  2655.       (N : Node_Id; Val : Boolean := True) is
  2656.    begin
  2657.       pragma Assert (False
  2658.           or else NT (N).Nkind = N_With_Clause);
  2659.       Set_Flag1 (N, Val);
  2660.    end Set_Elaborate_All_Present;
  2661.  
  2662.    procedure Set_Elaborate_Body_Present
  2663.       (N : Node_Id; Val : Boolean := True) is
  2664.    begin
  2665.       pragma Assert (False
  2666.           or else NT (N).Nkind = N_Compilation_Unit);
  2667.       Set_Flag7 (N, Val);
  2668.    end Set_Elaborate_Body_Present;
  2669.  
  2670.    procedure Set_Else_Actions
  2671.       (N : Node_Id; Val : List_Id) is
  2672.    begin
  2673.       pragma Assert (False
  2674.           or else NT (N).Nkind = N_Conditional_Expression);
  2675.       Set_List3 (N, Val); -- no parent, semantic field
  2676.    end Set_Else_Actions;
  2677.  
  2678.    procedure Set_Else_Statements
  2679.       (N : Node_Id; Val : List_Id) is
  2680.    begin
  2681.       pragma Assert (False
  2682.           or else NT (N).Nkind = N_Conditional_Entry_Call
  2683.           or else NT (N).Nkind = N_If_Statement
  2684.           or else NT (N).Nkind = N_Selective_Accept);
  2685.       Set_List4_With_Parent (N, Val);
  2686.    end Set_Else_Statements;
  2687.  
  2688.    procedure Set_Elsif_Parts
  2689.       (N : Node_Id; Val : List_Id) is
  2690.    begin
  2691.       pragma Assert (False
  2692.           or else NT (N).Nkind = N_If_Statement);
  2693.       Set_List3_With_Parent (N, Val);
  2694.    end Set_Elsif_Parts;
  2695.  
  2696.    procedure Set_Enclosing_Variant
  2697.       (N : Node_Id; Val : Node_Id) is
  2698.    begin
  2699.       pragma Assert (False
  2700.           or else NT (N).Nkind = N_Variant);
  2701.       Set_Node2 (N, Val); -- semantic field, no parent pointer
  2702.    end Set_Enclosing_Variant;
  2703.  
  2704.    procedure Set_Entity
  2705.       (N : Node_Id; Val : Node_Id) is
  2706.    begin
  2707.       pragma Assert (False
  2708.           or else NT (N).Nkind in N_Op
  2709.           or else NT (N).Nkind = N_Attribute_Reference
  2710.           or else NT (N).Nkind = N_Character_Literal
  2711.           or else NT (N).Nkind = N_Expanded_Name
  2712.           or else NT (N).Nkind = N_Freeze_Entity
  2713.           or else NT (N).Nkind = N_Identifier
  2714.           or else NT (N).Nkind = N_Interpretation
  2715.           or else NT (N).Nkind = N_Operator_Symbol);
  2716.       Set_Node4 (N, Val); -- Note: sem field, don't set parent
  2717.    end Set_Entity;
  2718.  
  2719.    procedure Set_Entry_Call_Alternative
  2720.       (N : Node_Id; Val : Node_Id) is
  2721.    begin
  2722.       pragma Assert (False
  2723.           or else NT (N).Nkind = N_Conditional_Entry_Call
  2724.           or else NT (N).Nkind = N_Timed_Entry_Call);
  2725.       Set_Node1_With_Parent (N, Val);
  2726.    end Set_Entry_Call_Alternative;
  2727.  
  2728.    procedure Set_Entry_Body_Formal_Part
  2729.       (N : Node_Id; Val : Node_Id) is
  2730.    begin
  2731.       pragma Assert (False
  2732.           or else NT (N).Nkind = N_Entry_Body);
  2733.       Set_Node5_With_Parent (N, Val);
  2734.    end Set_Entry_Body_Formal_Part;
  2735.  
  2736.    procedure Set_Entry_Call_Statement
  2737.       (N : Node_Id; Val : Node_Id) is
  2738.    begin
  2739.       pragma Assert (False
  2740.           or else NT (N).Nkind = N_Entry_Call_Alternative);
  2741.       Set_Node1_With_Parent (N, Val);
  2742.    end Set_Entry_Call_Statement;
  2743.  
  2744.    procedure Set_Entry_Direct_Name
  2745.       (N : Node_Id; Val : Node_Id) is
  2746.    begin
  2747.       pragma Assert (False
  2748.           or else NT (N).Nkind = N_Accept_Statement);
  2749.       Set_Node1_With_Parent (N, Val);
  2750.    end Set_Entry_Direct_Name;
  2751.  
  2752.    procedure Set_Entry_Index
  2753.       (N : Node_Id; Val : Node_Id) is
  2754.    begin
  2755.       pragma Assert (False
  2756.           or else NT (N).Nkind = N_Accept_Statement);
  2757.       Set_Node5_With_Parent (N, Val);
  2758.    end Set_Entry_Index;
  2759.  
  2760.    procedure Set_Entry_Index_Specification
  2761.       (N : Node_Id; Val : Node_Id) is
  2762.    begin
  2763.       pragma Assert (False
  2764.           or else NT (N).Nkind = N_Entry_Body_Formal_Part);
  2765.       Set_Node1_With_Parent (N, Val);
  2766.    end Set_Entry_Index_Specification;
  2767.  
  2768.    procedure Set_Error_Posted
  2769.       (N : Node_Id; Val : Boolean := True) is
  2770.    begin
  2771.       Set_Flag13 (N, Val);
  2772.    end Set_Error_Posted;
  2773.  
  2774.    procedure Set_Etype
  2775.       (N : Node_Id; Val : Node_Id) is
  2776.    begin
  2777.       pragma Assert (False
  2778.           or else NT (N).Nkind in N_Has_Etype);
  2779.       Set_Node5 (N, Val); -- Sem field, don't set parent
  2780.    end Set_Etype;
  2781.  
  2782.    procedure Set_Exception_Choices
  2783.       (N : Node_Id; Val : List_Id) is
  2784.    begin
  2785.       pragma Assert (False
  2786.           or else NT (N).Nkind = N_Exception_Handler);
  2787.       Set_List4_With_Parent (N, Val);
  2788.    end Set_Exception_Choices;
  2789.  
  2790.    procedure Set_Exception_Handlers
  2791.       (N : Node_Id; Val : List_Id) is
  2792.    begin
  2793.       pragma Assert (False
  2794.           or else NT (N).Nkind = N_Handled_Sequence_Of_Statements);
  2795.       Set_List4_With_Parent (N, Val);
  2796.    end Set_Exception_Handlers;
  2797.  
  2798.    procedure Set_Explicit_Actual_Parameter
  2799.       (N : Node_Id; Val : Node_Id) is
  2800.    begin
  2801.       pragma Assert (False
  2802.           or else NT (N).Nkind = N_Parameter_Association);
  2803.       Set_Node3_With_Parent (N, Val);
  2804.    end Set_Explicit_Actual_Parameter;
  2805.  
  2806.    procedure Set_Explicit_Generic_Actual_Parameter
  2807.       (N : Node_Id; Val : Node_Id) is
  2808.    begin
  2809.       pragma Assert (False
  2810.           or else NT (N).Nkind = N_Generic_Association);
  2811.       Set_Node1_With_Parent (N, Val);
  2812.    end Set_Explicit_Generic_Actual_Parameter;
  2813.  
  2814.    procedure Set_Expression
  2815.       (N : Node_Id; Val : Node_Id) is
  2816.    begin
  2817.       pragma Assert (False
  2818.           or else NT (N).Nkind = N_Allocator
  2819.           or else NT (N).Nkind = N_Assignment_Statement
  2820.           or else NT (N).Nkind = N_At_Clause
  2821.           or else NT (N).Nkind = N_Attribute_Definition_Clause
  2822.           or else NT (N).Nkind = N_Case_Statement
  2823.           or else NT (N).Nkind = N_Code_Statement
  2824.           or else NT (N).Nkind = N_Component_Association
  2825.           or else NT (N).Nkind = N_Component_Declaration
  2826.           or else NT (N).Nkind = N_Delay_Relative_Statement
  2827.           or else NT (N).Nkind = N_Delay_Until_Statement
  2828.           or else NT (N).Nkind = N_Discriminant_Association
  2829.           or else NT (N).Nkind = N_Discriminant_Specification
  2830.           or else NT (N).Nkind = N_Expression_Actions
  2831.           or else NT (N).Nkind = N_Formal_Object_Declaration
  2832.           or else NT (N).Nkind = N_Free_Statement
  2833.           or else NT (N).Nkind = N_Mod_Clause
  2834.           or else NT (N).Nkind = N_Modular_Type_Definition
  2835.           or else NT (N).Nkind = N_Number_Declaration
  2836.           or else NT (N).Nkind = N_Object_Declaration
  2837.           or else NT (N).Nkind = N_Parameter_Specification
  2838.           or else NT (N).Nkind = N_Pragma_Argument_Association
  2839.           or else NT (N).Nkind = N_Qualified_Expression
  2840.           or else NT (N).Nkind = N_Return_Statement
  2841.           or else NT (N).Nkind = N_Type_Conversion
  2842.           or else NT (N).Nkind = N_Unchecked_Type_Conversion);
  2843.       Set_Node3_With_Parent (N, Val);
  2844.    end Set_Expression;
  2845.  
  2846.    procedure Set_Expressions
  2847.       (N : Node_Id; Val : List_Id) is
  2848.    begin
  2849.       pragma Assert (False
  2850.           or else NT (N).Nkind = N_Aggregate
  2851.           or else NT (N).Nkind = N_Attribute_Reference
  2852.           or else NT (N).Nkind = N_Concat_Multiple
  2853.           or else NT (N).Nkind = N_Conditional_Expression
  2854.           or else NT (N).Nkind = N_Extension_Aggregate
  2855.           or else NT (N).Nkind = N_Indexed_Component);
  2856.       Set_List1_With_Parent (N, Val);
  2857.    end Set_Expressions;
  2858.  
  2859.    procedure Set_First_Bit
  2860.       (N : Node_Id; Val : Node_Id) is
  2861.    begin
  2862.       pragma Assert (False
  2863.           or else NT (N).Nkind = N_Component_Clause);
  2864.       Set_Node3_With_Parent (N, Val);
  2865.    end Set_First_Bit;
  2866.  
  2867.    procedure Set_First_Inlined_Subprogram
  2868.       (N : Node_Id; Val : Entity_Id) is
  2869.    begin
  2870.       pragma Assert (False
  2871.           or else NT (N).Nkind = N_Compilation_Unit);
  2872.       Set_Node5 (N, Val);  -- No parent, this is a semantic field
  2873.    end Set_First_Inlined_Subprogram;
  2874.  
  2875.    procedure Set_First_Itype
  2876.       (N : Node_Id; Val : Entity_Id) is
  2877.    begin
  2878.       pragma Assert (False
  2879.           or else NT (N).Nkind in N_Has_Itypes);
  2880.       Set_Node2 (N, Val);  -- No parent, this is a semantic field
  2881.    end Set_First_Itype;
  2882.  
  2883.    procedure Set_First_Name
  2884.       (N : Node_Id; Val : Boolean := True) is
  2885.    begin
  2886.       pragma Assert (False
  2887.           or else NT (N).Nkind = N_With_Clause);
  2888.       Set_Flag5 (N, Val);
  2889.    end Set_First_Name;
  2890.  
  2891.    procedure Set_First_Named_Actual
  2892.       (N : Node_Id; Val : Node_Id) is
  2893.    begin
  2894.       pragma Assert (False
  2895.           or else NT (N).Nkind = N_Entry_Call_Statement
  2896.           or else NT (N).Nkind = N_Function_Call
  2897.           or else NT (N).Nkind = N_Procedure_Call_Statement);
  2898.       Set_Node4 (N, Val); -- Note: semantic node, parent pointer not set
  2899.    end Set_First_Named_Actual;
  2900.  
  2901.    procedure Set_First_Real_Statement
  2902.       (N : Node_Id; Val : Node_Id) is
  2903.    begin
  2904.       pragma Assert (False
  2905.           or else NT (N).Nkind = N_Handled_Sequence_Of_Statements);
  2906.       Set_Node2 (N, Val); -- Note: semantic node, parent pointer not set
  2907.    end Set_First_Real_Statement;
  2908.  
  2909.    procedure Set_First_Subtype_Link
  2910.       (N : Node_Id; Val : Entity_Id) is
  2911.    begin
  2912.       pragma Assert (False
  2913.           or else NT (N).Nkind = N_Freeze_Entity);
  2914.       Set_Node5 (N, Val); -- Note: semantic node, parent pointer not set
  2915.    end Set_First_Subtype_Link;
  2916.  
  2917.    procedure Set_Float_Truncate
  2918.       (N : Node_Id; Val : Boolean := True) is
  2919.    begin
  2920.       pragma Assert (False
  2921.           or else NT (N).Nkind = N_Type_Conversion);
  2922.       Set_Flag11 (N, Val);
  2923.    end Set_Float_Truncate;
  2924.  
  2925.    procedure Set_Following_Pragmas
  2926.       (N : Node_Id; Val : List_Id) is
  2927.    begin
  2928.       pragma Assert (False
  2929.           or else NT (N).Nkind = N_Compilation_Unit);
  2930.       Set_List3_With_Parent (N, Val);
  2931.    end Set_Following_Pragmas;
  2932.  
  2933.    procedure Set_Formal_Type_Definition
  2934.       (N : Node_Id; Val : Node_Id) is
  2935.    begin
  2936.       pragma Assert (False
  2937.           or else NT (N).Nkind = N_Formal_Type_Declaration);
  2938.       Set_Node3_With_Parent (N, Val);
  2939.    end Set_Formal_Type_Definition;
  2940.  
  2941.    procedure Set_Forwards_OK
  2942.       (N : Node_Id; Val : Boolean := True) is
  2943.    begin
  2944.       pragma Assert (False
  2945.           or else NT (N).Nkind = N_Assignment_Statement);
  2946.       Set_Flag5 (N, Val);
  2947.    end Set_Forwards_OK;
  2948.  
  2949.    procedure Set_Generic_Associations
  2950.       (N : Node_Id; Val : List_Id) is
  2951.    begin
  2952.       pragma Assert (False
  2953.           or else NT (N).Nkind = N_Formal_Package_Declaration
  2954.           or else NT (N).Nkind = N_Function_Instantiation
  2955.           or else NT (N).Nkind = N_Package_Instantiation
  2956.           or else NT (N).Nkind = N_Procedure_Instantiation);
  2957.       Set_List3_With_Parent (N, Val);
  2958.    end Set_Generic_Associations;
  2959.  
  2960.    procedure Set_Generic_Formal_Declarations
  2961.       (N : Node_Id; Val : List_Id) is
  2962.    begin
  2963.       pragma Assert (False
  2964.           or else NT (N).Nkind = N_Generic_Package_Declaration
  2965.           or else NT (N).Nkind = N_Generic_Subprogram_Declaration);
  2966.       Set_List3_With_Parent (N, Val);
  2967.    end Set_Generic_Formal_Declarations;
  2968.  
  2969.    procedure Set_Generic_Parent
  2970.       (N : Node_Id; Val : Node_Id) is
  2971.    begin
  2972.       pragma Assert (False
  2973.           or else NT (N).Nkind = N_Function_Specification
  2974.           or else NT (N).Nkind = N_Package_Specification
  2975.           or else NT (N).Nkind = N_Procedure_Specification);
  2976.       Set_Node5 (N, Val);
  2977.    end Set_Generic_Parent;
  2978.  
  2979.    procedure Set_Handled_Statement_Sequence
  2980.       (N : Node_Id; Val : Node_Id) is
  2981.    begin
  2982.       pragma Assert (False
  2983.           or else NT (N).Nkind = N_Accept_Statement
  2984.           or else NT (N).Nkind = N_Block_Statement
  2985.           or else NT (N).Nkind = N_Entry_Body
  2986.           or else NT (N).Nkind = N_Package_Body
  2987.           or else NT (N).Nkind = N_Subprogram_Body
  2988.           or else NT (N).Nkind = N_Task_Body);
  2989.       Set_Node4_With_Parent (N, Val);
  2990.    end Set_Handled_Statement_Sequence;
  2991.  
  2992.    procedure Set_Has_Created_Identifier
  2993.       (N : Node_Id; Val : Boolean := True) is
  2994.    begin
  2995.       pragma Assert (False
  2996.           or else NT (N).Nkind = N_Block_Statement
  2997.           or else NT (N).Nkind = N_Loop_Statement);
  2998.       Set_Flag1 (N, Val);
  2999.    end Set_Has_Created_Identifier;
  3000.  
  3001.    procedure Set_Has_Dynamic_Itype
  3002.       (N : Node_Id; Val : Boolean := True) is
  3003.    begin
  3004.       pragma Assert (False
  3005.           or else NT (N).Nkind in N_Has_Itypes);
  3006.       Set_Flag14 (N, Val);
  3007.    end Set_Has_Dynamic_Itype;
  3008.  
  3009.    procedure Set_Has_No_Elab_Code
  3010.       (N : Node_Id; Val : Boolean := True) is
  3011.    begin
  3012.       pragma Assert (False
  3013.           or else NT (N).Nkind = N_Compilation_Unit);
  3014.       Set_Flag17 (N, Val);
  3015.    end Set_Has_No_Elab_Code;
  3016.  
  3017.    procedure Set_Has_No_Side_Effects
  3018.       (N : Node_Id; Val : Boolean := True) is
  3019.    begin
  3020.       pragma Assert (False
  3021.           or else NT (N).Nkind in N_Subexpr);
  3022.       Set_Flag8 (N, Val);
  3023.    end Set_Has_No_Side_Effects;
  3024.  
  3025.    procedure Set_Has_Priority_Pragma
  3026.       (N : Node_Id; Val : Boolean := True) is
  3027.    begin
  3028.       pragma Assert (False
  3029.           or else NT (N).Nkind = N_Protected_Definition
  3030.           or else NT (N).Nkind = N_Subprogram_Body
  3031.           or else NT (N).Nkind = N_Task_Definition);
  3032.       Set_Flag6 (N, Val);
  3033.    end Set_Has_Priority_Pragma;
  3034.  
  3035.    procedure Set_Has_Private_View
  3036.       (N : Node_Id; Val : Boolean := True) is
  3037.    begin
  3038.       pragma Assert (False
  3039.          or else NT (N).Nkind in N_Op
  3040.          or else NT (N).Nkind = N_Character_Literal
  3041.          or else NT (N).Nkind = N_Expanded_Name
  3042.          or else NT (N).Nkind = N_Identifier
  3043.          or else NT (N).Nkind = N_Operator_Symbol);
  3044.       Set_Flag11 (N, Val);
  3045.    end Set_Has_Private_View;
  3046.  
  3047.    procedure Set_Has_Storage_Size_Pragma
  3048.       (N : Node_Id; Val : Boolean := True) is
  3049.    begin
  3050.       pragma Assert (False
  3051.           or else NT (N).Nkind = N_Task_Definition);
  3052.       Set_Flag5 (N, Val);
  3053.    end Set_Has_Storage_Size_Pragma;
  3054.  
  3055.    procedure Set_High_Bound
  3056.       (N : Node_Id; Val : Node_Id) is
  3057.    begin
  3058.       pragma Assert (False
  3059.           or else NT (N).Nkind = N_Range
  3060.           or else NT (N).Nkind = N_Real_Range_Specification
  3061.           or else NT (N).Nkind = N_Signed_Integer_Type_Definition);
  3062.       Set_Node2_With_Parent (N, Val);
  3063.    end Set_High_Bound;
  3064.  
  3065.    procedure Set_Homonym
  3066.       (N : Node_Id; Val : Node_Id) is
  3067.    begin
  3068.       pragma Assert (False
  3069.           or else NT (N).Nkind = N_Defining_Character_Literal
  3070.           or else NT (N).Nkind = N_Defining_Identifier
  3071.           or else NT (N).Nkind = N_Defining_Operator_Symbol);
  3072.       Set_Node4 (N, Val); -- no parent, semantic field
  3073.    end Set_Homonym;
  3074.  
  3075.    procedure Set_Identifier
  3076.       (N : Node_Id; Val : Node_Id) is
  3077.    begin
  3078.       pragma Assert (False
  3079.           or else NT (N).Nkind = N_At_Clause
  3080.           or else NT (N).Nkind = N_Block_Statement
  3081.           or else NT (N).Nkind = N_Designator
  3082.           or else NT (N).Nkind = N_Enumeration_Representation_Clause
  3083.           or else NT (N).Nkind = N_Handled_Sequence_Of_Statements
  3084.           or else NT (N).Nkind = N_Label
  3085.           or else NT (N).Nkind = N_Loop_Statement
  3086.           or else NT (N).Nkind = N_Record_Representation_Clause);
  3087.       Set_Node1_With_Parent (N, Val);
  3088.    end Set_Identifier;
  3089.  
  3090.    procedure Set_Implicit_With
  3091.       (N : Node_Id; Val : Boolean := True) is
  3092.    begin
  3093.       pragma Assert (False
  3094.           or else NT (N).Nkind = N_With_Clause);
  3095.       Set_Flag17 (N, Val);
  3096.    end Set_Implicit_With;
  3097.  
  3098.    procedure Set_In_Present
  3099.       (N : Node_Id; Val : Boolean := True) is
  3100.    begin
  3101.       pragma Assert (False
  3102.           or else NT (N).Nkind = N_Formal_Object_Declaration
  3103.           or else NT (N).Nkind = N_Parameter_Specification);
  3104.       Set_Flag1 (N, Val);
  3105.    end Set_In_Present;
  3106.  
  3107.    procedure Set_Intval
  3108.       (N : Node_Id; Val : Uint) is
  3109.    begin
  3110.       pragma Assert (False
  3111.           or else NT (N).Nkind = N_Integer_Literal);
  3112.       Set_Uint3 (N, Val);
  3113.    end Set_Intval;
  3114.  
  3115.    procedure Set_Is_Controlling_Actual
  3116.       (N : Node_Id; Val : Boolean := True) is
  3117.    begin
  3118.       pragma Assert (False
  3119.           or else NT (N).Nkind in N_Subexpr);
  3120.       Set_Flag16 (N, Val);
  3121.    end Set_Is_Controlling_Actual;
  3122.  
  3123.    procedure Set_Is_Current_Instance
  3124.       (N : Node_Id; Val : Boolean := True) is
  3125.    begin
  3126.       pragma Assert (False
  3127.           or else NT (N).Nkind = N_Expanded_Name
  3128.           or else NT (N).Nkind = N_Identifier);
  3129.       Set_Flag14 (N, Val);
  3130.    end Set_Is_Current_Instance;
  3131.  
  3132.    procedure Set_Is_Overloaded
  3133.       (N : Node_Id; Val : Boolean := True) is
  3134.    begin
  3135.       pragma Assert (False
  3136.           or else NT (N).Nkind in N_Subexpr);
  3137.       Set_Flag5 (N, Val);
  3138.    end Set_Is_Overloaded;
  3139.  
  3140.    procedure Set_Is_Static_Expression
  3141.       (N : Node_Id; Val : Boolean := True) is
  3142.    begin
  3143.       pragma Assert (False
  3144.           or else NT (N).Nkind in N_Subexpr);
  3145.       Set_Flag6 (N, Val);
  3146.    end Set_Is_Static_Expression;
  3147.  
  3148.    procedure Set_Is_Task_Master
  3149.       (N : Node_Id; Val : Boolean := True) is
  3150.    begin
  3151.       pragma Assert (False
  3152.           or else NT (N).Nkind = N_Block_Statement
  3153.           or else NT (N).Nkind = N_Subprogram_Body
  3154.           or else NT (N).Nkind = N_Task_Body);
  3155.       Set_Flag5 (N, Val);
  3156.    end Set_Is_Task_Master;
  3157.  
  3158.    procedure Set_Iteration_Scheme
  3159.       (N : Node_Id; Val : Node_Id) is
  3160.    begin
  3161.       pragma Assert (False
  3162.           or else NT (N).Nkind = N_Loop_Statement);
  3163.       Set_Node2_With_Parent (N, Val);
  3164.    end Set_Iteration_Scheme;
  3165.  
  3166.    procedure Set_Label
  3167.       (N : Node_Id; Val : Node_Id) is
  3168.    begin
  3169.       pragma Assert (False
  3170.           or else NT (N).Nkind = N_Implicit_Label_Declaration);
  3171.       Set_Node2 (N, Val);
  3172.    end Set_Label;
  3173.  
  3174.    procedure Set_Last_Bit
  3175.       (N : Node_Id; Val : Node_Id) is
  3176.    begin
  3177.       pragma Assert (False
  3178.           or else NT (N).Nkind = N_Component_Clause);
  3179.       Set_Node4_With_Parent (N, Val);
  3180.    end Set_Last_Bit;
  3181.  
  3182.    procedure Set_Last_Name
  3183.       (N : Node_Id; Val : Boolean := True) is
  3184.    begin
  3185.       pragma Assert (False
  3186.           or else NT (N).Nkind = N_With_Clause);
  3187.       Set_Flag6 (N, Val);
  3188.    end Set_Last_Name;
  3189.  
  3190.    procedure Set_Library_Unit
  3191.       (N : Node_Id; Val : Node_Id) is
  3192.    begin
  3193.       pragma Assert (False
  3194.           or else NT (N).Nkind = N_Compilation_Unit
  3195.           or else NT (N).Nkind = N_Package_Body_Stub
  3196.           or else NT (N).Nkind = N_Protected_Body_Stub
  3197.           or else NT (N).Nkind = N_Subprogram_Body_Stub
  3198.           or else NT (N).Nkind = N_Task_Body_Stub
  3199.           or else NT (N).Nkind = N_With_Clause);
  3200.       Set_Node4 (N, Val); -- No parent, semantic field
  3201.    end Set_Library_Unit;
  3202.  
  3203.    procedure Set_Left_Opnd
  3204.       (N : Node_Id; Val : Node_Id) is
  3205.    begin
  3206.       pragma Assert (False
  3207.           or else NT (N).Nkind = N_And_Then
  3208.           or else NT (N).Nkind = N_In
  3209.           or else NT (N).Nkind = N_Not_In
  3210.           or else NT (N).Nkind = N_Or_Else
  3211.           or else NT (N).Nkind in N_Binary_Op);
  3212.       Set_Node2_With_Parent (N, Val);
  3213.    end Set_Left_Opnd;
  3214.  
  3215.    procedure Set_Literals
  3216.       (N : Node_Id; Val : List_Id) is
  3217.    begin
  3218.       pragma Assert (False
  3219.           or else NT (N).Nkind = N_Enumeration_Type_Definition);
  3220.       Set_List1_With_Parent (N, Val);
  3221.    end Set_Literals;
  3222.  
  3223.    procedure Set_Limited_Present
  3224.       (N : Node_Id; Val : Boolean := True) is
  3225.    begin
  3226.       pragma Assert (False
  3227.           or else NT (N).Nkind = N_Formal_Private_Type_Definition
  3228.           or else NT (N).Nkind = N_Private_Type_Declaration
  3229.           or else NT (N).Nkind = N_Record_Definition);
  3230.       Set_Flag17 (N, Val);
  3231.    end Set_Limited_Present;
  3232.  
  3233.    procedure Set_Loop_Parameter_Specification
  3234.       (N : Node_Id; Val : Node_Id) is
  3235.    begin
  3236.       pragma Assert (False
  3237.           or else NT (N).Nkind = N_Iteration_Scheme);
  3238.       Set_Node1_With_Parent (N, Val);
  3239.    end Set_Loop_Parameter_Specification;
  3240.  
  3241.    procedure Set_Low_Bound
  3242.       (N : Node_Id; Val : Node_Id) is
  3243.    begin
  3244.       pragma Assert (False
  3245.           or else NT (N).Nkind = N_Range
  3246.           or else NT (N).Nkind = N_Real_Range_Specification
  3247.           or else NT (N).Nkind = N_Signed_Integer_Type_Definition);
  3248.       Set_Node1_With_Parent (N, Val);
  3249.    end Set_Low_Bound;
  3250.  
  3251.    procedure Set_Mod_Clause
  3252.       (N : Node_Id; Val : Node_Id) is
  3253.    begin
  3254.       pragma Assert (False
  3255.           or else NT (N).Nkind = N_Record_Representation_Clause);
  3256.       Set_Node2_With_Parent (N, Val);
  3257.    end Set_Mod_Clause;
  3258.  
  3259.    procedure Set_More_Ids
  3260.       (N : Node_Id; Val : Boolean := True) is
  3261.    begin
  3262.       pragma Assert (False
  3263.           or else NT (N).Nkind = N_Component_Declaration
  3264.           or else NT (N).Nkind = N_Discriminant_Specification
  3265.           or else NT (N).Nkind = N_Exception_Declaration
  3266.           or else NT (N).Nkind = N_Formal_Object_Declaration
  3267.           or else NT (N).Nkind = N_Number_Declaration
  3268.           or else NT (N).Nkind = N_Object_Declaration
  3269.           or else NT (N).Nkind = N_Parameter_Specification);
  3270.       Set_Flag5 (N, Val);
  3271.    end Set_More_Ids;
  3272.  
  3273.    procedure Set_Name
  3274.       (N : Node_Id; Val : Node_Id) is
  3275.    begin
  3276.       pragma Assert (False
  3277.           or else NT (N).Nkind = N_Assignment_Statement
  3278.           or else NT (N).Nkind = N_Attribute_Definition_Clause
  3279.           or else NT (N).Nkind = N_Defining_Program_Unit_Name
  3280.           or else NT (N).Nkind = N_Designator
  3281.           or else NT (N).Nkind = N_Entry_Call_Statement
  3282.           or else NT (N).Nkind = N_Exception_Renaming_Declaration
  3283.           or else NT (N).Nkind = N_Exit_Statement
  3284.           or else NT (N).Nkind = N_Formal_Package_Declaration
  3285.           or else NT (N).Nkind = N_Function_Call
  3286.           or else NT (N).Nkind = N_Function_Instantiation
  3287.           or else NT (N).Nkind = N_Generic_Function_Renaming_Declaration
  3288.           or else NT (N).Nkind = N_Generic_Package_Renaming_Declaration
  3289.           or else NT (N).Nkind = N_Generic_Procedure_Renaming_Declaration
  3290.           or else NT (N).Nkind = N_Goto_Statement
  3291.           or else NT (N).Nkind = N_Object_Renaming_Declaration
  3292.           or else NT (N).Nkind = N_Package_Instantiation
  3293.           or else NT (N).Nkind = N_Package_Renaming_Declaration
  3294.           or else NT (N).Nkind = N_Procedure_Call_Statement
  3295.           or else NT (N).Nkind = N_Procedure_Instantiation
  3296.           or else NT (N).Nkind = N_Raise_Statement
  3297.           or else NT (N).Nkind = N_Requeue_Statement
  3298.           or else NT (N).Nkind = N_Subprogram_Renaming_Declaration
  3299.           or else NT (N).Nkind = N_Subunit
  3300.           or else NT (N).Nkind = N_Variant_Part
  3301.           or else NT (N).Nkind = N_With_Clause);
  3302.       Set_Node2_With_Parent (N, Val);
  3303.    end Set_Name;
  3304.  
  3305.    procedure Set_Names
  3306.       (N : Node_Id; Val : List_Id) is
  3307.    begin
  3308.       pragma Assert (False
  3309.           or else NT (N).Nkind = N_Abort_Statement
  3310.           or else NT (N).Nkind = N_Use_Package_Clause);
  3311.       Set_List2_With_Parent (N, Val);
  3312.    end Set_Names;
  3313.  
  3314.    procedure Set_Next_Entity
  3315.       (N : Node_Id; Val : Node_Id) is
  3316.    begin
  3317.       pragma Assert (False
  3318.           or else NT (N).Nkind = N_Defining_Character_Literal
  3319.           or else NT (N).Nkind = N_Defining_Identifier
  3320.           or else NT (N).Nkind = N_Defining_Operator_Symbol);
  3321.       Set_Node2 (N, Val); -- no parent, semantic field
  3322.    end Set_Next_Entity;
  3323.  
  3324.    procedure Set_Next_Interp
  3325.       (N : Node_Id; Val : Node_Id) is
  3326.    begin
  3327.       pragma Assert (False
  3328.           or else NT (N).Nkind = N_Interpretation);
  3329.       Set_Node2 (N, Val); -- no parent, semantic field
  3330.    end Set_Next_Interp;
  3331.  
  3332.    procedure Set_Next_Named_Actual
  3333.       (N : Node_Id; Val : Node_Id) is
  3334.    begin
  3335.       pragma Assert (False
  3336.           or else NT (N).Nkind = N_Parameter_Association);
  3337.       Set_Node4 (N, Val); -- Note: semantic node, no parent pointer needed
  3338.    end Set_Next_Named_Actual;
  3339.  
  3340.    procedure Set_Next_Use_Clause
  3341.       (N : Node_Id; Val : Node_Id) is
  3342.    begin
  3343.       pragma Assert (False
  3344.           or else NT (N).Nkind = N_Use_Package_Clause
  3345.           or else NT (N).Nkind = N_Use_Type_Clause);
  3346.       Set_Node3 (N, Val); -- Note: semantic node, no parent pointer needed
  3347.    end Set_Next_Use_Clause;
  3348.  
  3349.    procedure Set_No_Default_Init
  3350.       (N : Node_Id; Val : Boolean := True) is
  3351.    begin
  3352.       pragma Assert (False
  3353.           or else NT (N).Nkind = N_Object_Declaration);
  3354.       Set_Flag7 (N, Val);
  3355.    end Set_No_Default_Init;
  3356.  
  3357.    procedure Set_No_Defer
  3358.       (N : Node_Id; Val : Boolean := True) is
  3359.    begin
  3360.       pragma Assert (False
  3361.           or else NT (N).Nkind = N_Raise_Statement);
  3362.       Set_Flag1 (N, Val);
  3363.    end Set_No_Defer;
  3364.  
  3365.    procedure Set_Null_Present
  3366.       (N : Node_Id; Val : Boolean := True) is
  3367.    begin
  3368.       pragma Assert (False
  3369.           or else NT (N).Nkind = N_Component_List
  3370.           or else NT (N).Nkind = N_Record_Definition);
  3371.       Set_Flag3 (N, Val);
  3372.    end Set_Null_Present;
  3373.  
  3374.    procedure Set_Null_Record_Present
  3375.       (N : Node_Id; Val : Boolean := True) is
  3376.    begin
  3377.       pragma Assert (False
  3378.           or else NT (N).Nkind = N_Aggregate
  3379.           or else NT (N).Nkind = N_Extension_Aggregate);
  3380.       Set_Flag17 (N, Val);
  3381.    end Set_Null_Record_Present;
  3382.  
  3383.    procedure Set_Object_Definition
  3384.       (N : Node_Id; Val : Node_Id) is
  3385.    begin
  3386.       pragma Assert (False
  3387.           or else NT (N).Nkind = N_Object_Declaration);
  3388.       Set_Node4_With_Parent (N, Val);
  3389.    end Set_Object_Definition;
  3390.  
  3391.    procedure Set_Object_Definition_Itypes
  3392.       (N : Node_Id; Val : Node_Id) is
  3393.    begin
  3394.       pragma Assert (False
  3395.           or else NT (N).Nkind = N_Object_Declaration);
  3396.       Set_Node5 (N, Val); -- no parent, semantic node
  3397.    end Set_Object_Definition_Itypes;
  3398.  
  3399.    procedure Set_Others_Discrete_Choices
  3400.       (N : Node_Id; Val : List_Id) is
  3401.    begin
  3402.       pragma Assert (False
  3403.           or else NT (N).Nkind = N_Others_Choice);
  3404.       Set_List1_With_Parent (N, Val);
  3405.    end Set_Others_Discrete_Choices;
  3406.  
  3407.    procedure Set_Out_Present
  3408.       (N : Node_Id; Val : Boolean := True) is
  3409.    begin
  3410.       pragma Assert (False
  3411.           or else NT (N).Nkind = N_Formal_Object_Declaration
  3412.           or else NT (N).Nkind = N_Parameter_Specification);
  3413.       Set_Flag17 (N, Val);
  3414.    end Set_Out_Present;
  3415.  
  3416.    procedure Set_Parameter_Associations
  3417.       (N : Node_Id; Val : List_Id) is
  3418.    begin
  3419.       pragma Assert (False
  3420.           or else NT (N).Nkind = N_Entry_Call_Statement
  3421.           or else NT (N).Nkind = N_Function_Call
  3422.           or else NT (N).Nkind = N_Procedure_Call_Statement);
  3423.       Set_List3_With_Parent (N, Val);
  3424.    end Set_Parameter_Associations;
  3425.  
  3426.    procedure Set_Parameter_Specifications
  3427.       (N : Node_Id; Val : List_Id) is
  3428.    begin
  3429.       pragma Assert (False
  3430.           or else NT (N).Nkind = N_Accept_Statement
  3431.           or else NT (N).Nkind = N_Access_Function_Definition
  3432.           or else NT (N).Nkind = N_Access_Procedure_Definition
  3433.           or else NT (N).Nkind = N_Entry_Body_Formal_Part
  3434.           or else NT (N).Nkind = N_Entry_Declaration
  3435.           or else NT (N).Nkind = N_Function_Specification
  3436.           or else NT (N).Nkind = N_Procedure_Specification);
  3437.       Set_List3_With_Parent (N, Val);
  3438.    end Set_Parameter_Specifications;
  3439.  
  3440.    procedure Set_Parameter_Type
  3441.       (N : Node_Id; Val : Node_Id) is
  3442.    begin
  3443.       pragma Assert (False
  3444.           or else NT (N).Nkind = N_Parameter_Specification);
  3445.       Set_Node2_With_Parent (N, Val);
  3446.    end Set_Parameter_Type;
  3447.  
  3448.    procedure Set_Parent_Spec
  3449.       (N : Node_Id; Val : Node_Id) is
  3450.    begin
  3451.       pragma Assert (False
  3452.           or else NT (N).Nkind = N_Function_Instantiation
  3453.           or else NT (N).Nkind = N_Generic_Function_Renaming_Declaration
  3454.           or else NT (N).Nkind = N_Generic_Package_Declaration
  3455.           or else NT (N).Nkind = N_Generic_Package_Renaming_Declaration
  3456.           or else NT (N).Nkind = N_Generic_Procedure_Renaming_Declaration
  3457.           or else NT (N).Nkind = N_Generic_Subprogram_Declaration
  3458.           or else NT (N).Nkind = N_Package_Declaration
  3459.           or else NT (N).Nkind = N_Package_Instantiation
  3460.           or else NT (N).Nkind = N_Package_Renaming_Declaration
  3461.           or else NT (N).Nkind = N_Procedure_Instantiation
  3462.           or else NT (N).Nkind = N_Subprogram_Declaration
  3463.           or else NT (N).Nkind = N_Subprogram_Renaming_Declaration);
  3464.       Set_Node4 (N, Val); -- semantic node, no parent pointer
  3465.    end Set_Parent_Spec;
  3466.  
  3467.    procedure Set_Position
  3468.       (N : Node_Id; Val : Node_Id) is
  3469.    begin
  3470.       pragma Assert (False
  3471.           or else NT (N).Nkind = N_Component_Clause);
  3472.       Set_Node2 (N, Val); -- semantic node, no parent pointer
  3473.    end Set_Position;
  3474.  
  3475.    procedure Set_Pragma_Argument_Associations
  3476.       (N : Node_Id; Val : List_Id) is
  3477.    begin
  3478.       pragma Assert (False
  3479.           or else NT (N).Nkind = N_Pragma);
  3480.       Set_List2_With_Parent (N, Val);
  3481.    end Set_Pragma_Argument_Associations;
  3482.  
  3483.    procedure Set_Prefix
  3484.       (N : Node_Id; Val : Node_Id) is
  3485.    begin
  3486.       pragma Assert (False
  3487.           or else NT (N).Nkind = N_Attribute_Reference
  3488.           or else NT (N).Nkind = N_Expanded_Name
  3489.           or else NT (N).Nkind = N_Explicit_Dereference
  3490.           or else NT (N).Nkind = N_Indexed_Component
  3491.           or else NT (N).Nkind = N_Reference
  3492.           or else NT (N).Nkind = N_Selected_Component
  3493.           or else NT (N).Nkind = N_Slice);
  3494.       Set_Node3_With_Parent (N, Val);
  3495.    end Set_Prefix;
  3496.  
  3497.    procedure Set_Prev_Ids
  3498.       (N : Node_Id; Val : Boolean := True) is
  3499.    begin
  3500.       pragma Assert (False
  3501.           or else NT (N).Nkind = N_Component_Declaration
  3502.           or else NT (N).Nkind = N_Discriminant_Specification
  3503.           or else NT (N).Nkind = N_Exception_Declaration
  3504.           or else NT (N).Nkind = N_Formal_Object_Declaration
  3505.           or else NT (N).Nkind = N_Number_Declaration
  3506.           or else NT (N).Nkind = N_Object_Declaration
  3507.           or else NT (N).Nkind = N_Parameter_Specification);
  3508.       Set_Flag6 (N, Val);
  3509.    end Set_Prev_Ids;
  3510.  
  3511.    procedure Set_Private_Declarations
  3512.       (N : Node_Id; Val : List_Id) is
  3513.    begin
  3514.       pragma Assert (False
  3515.           or else NT (N).Nkind = N_Package_Specification
  3516.           or else NT (N).Nkind = N_Protected_Definition
  3517.           or else NT (N).Nkind = N_Task_Definition);
  3518.       Set_List4_With_Parent (N, Val);
  3519.    end Set_Private_Declarations;
  3520.  
  3521.    procedure Set_Private_Present
  3522.       (N : Node_Id; Val : Boolean := True) is
  3523.    begin
  3524.       pragma Assert (False
  3525.           or else NT (N).Nkind = N_Compilation_Unit
  3526.           or else NT (N).Nkind = N_Formal_Derived_Type_Definition);
  3527.       Set_Flag1 (N, Val);
  3528.    end Set_Private_Present;
  3529.  
  3530.    procedure Set_Procedure_To_Call
  3531.       (N : Node_Id; Val : Node_Id) is
  3532.    begin
  3533.       pragma Assert (False
  3534.           or else NT (N).Nkind = N_Allocator
  3535.           or else NT (N).Nkind = N_Free_Statement
  3536.           or else NT (N).Nkind = N_Return_Statement);
  3537.       Set_Node4 (N, Val); -- semantic node, no parent
  3538.    end Set_Procedure_To_Call;
  3539.  
  3540.    procedure Set_Proper_Body
  3541.       (N : Node_Id; Val : Node_Id) is
  3542.    begin
  3543.       pragma Assert (False
  3544.           or else NT (N).Nkind = N_Subunit);
  3545.       Set_Node1_With_Parent (N, Val);
  3546.    end Set_Proper_Body;
  3547.  
  3548.    procedure Set_Protected_Definition
  3549.       (N : Node_Id; Val : Node_Id) is
  3550.    begin
  3551.       pragma Assert (False
  3552.           or else NT (N).Nkind = N_Protected_Type_Declaration
  3553.           or else NT (N).Nkind = N_Single_Protected_Declaration);
  3554.       Set_Node3_With_Parent (N, Val);
  3555.    end Set_Protected_Definition;
  3556.  
  3557.    procedure Set_Protected_Present
  3558.       (N : Node_Id; Val : Boolean := True) is
  3559.    begin
  3560.       pragma Assert (False
  3561.           or else NT (N).Nkind = N_Access_Function_Definition
  3562.           or else NT (N).Nkind = N_Access_Procedure_Definition);
  3563.       Set_Flag1 (N, Val);
  3564.    end Set_Protected_Present;
  3565.  
  3566.    procedure Set_Raises_Constraint_Error
  3567.       (N : Node_Id; Val : Boolean := True) is
  3568.    begin
  3569.       pragma Assert (False
  3570.           or else NT (N).Nkind in N_Subexpr);
  3571.       Set_Flag7 (N, Val);
  3572.    end Set_Raises_Constraint_Error;
  3573.  
  3574.    procedure Set_Range_Constraint
  3575.       (N : Node_Id; Val : Node_Id) is
  3576.    begin
  3577.       pragma Assert (False
  3578.           or else NT (N).Nkind = N_Delta_Constraint
  3579.           or else NT (N).Nkind = N_Digits_Constraint);
  3580.       Set_Node4_With_Parent (N, Val);
  3581.    end Set_Range_Constraint;
  3582.  
  3583.    procedure Set_Range_Expression
  3584.       (N : Node_Id; Val : Node_Id) is
  3585.    begin
  3586.       pragma Assert (False
  3587.           or else NT (N).Nkind = N_Range_Constraint);
  3588.       Set_Node4_With_Parent (N, Val);
  3589.    end Set_Range_Expression;
  3590.  
  3591.    procedure Set_Realval
  3592.      (N : Node_Id; Val : Ureal) is
  3593.    begin
  3594.       pragma Assert (False
  3595.           or else NT (N).Nkind = N_Real_Literal);
  3596.       Set_Ureal3 (N, Val);
  3597.    end Set_Realval;
  3598.  
  3599.    procedure Set_Real_Range_Specification
  3600.       (N : Node_Id; Val : Node_Id) is
  3601.    begin
  3602.       pragma Assert (False
  3603.           or else NT (N).Nkind = N_Decimal_Fixed_Point_Definition
  3604.           or else NT (N).Nkind = N_Floating_Point_Definition
  3605.           or else NT (N).Nkind = N_Ordinary_Fixed_Point_Definition);
  3606.       Set_Node4_With_Parent (N, Val);
  3607.    end Set_Real_Range_Specification;
  3608.  
  3609.    procedure Set_Record_Extension_Part
  3610.       (N : Node_Id; Val : Node_Id) is
  3611.    begin
  3612.       pragma Assert (False
  3613.           or else NT (N).Nkind = N_Derived_Type_Definition);
  3614.       Set_Node3_With_Parent (N, Val);
  3615.    end Set_Record_Extension_Part;
  3616.  
  3617.    procedure Set_Redundant_Use
  3618.       (N : Node_Id; Val : Boolean := True) is
  3619.    begin
  3620.       pragma Assert (False
  3621.           or else NT (N).Nkind = N_Expanded_Name
  3622.           or else NT (N).Nkind = N_Identifier);
  3623.       Set_Flag3 (N, Val);
  3624.    end Set_Redundant_Use;
  3625.  
  3626.    procedure Set_Return_Type
  3627.       (N : Node_Id; Val : Node_Id) is
  3628.    begin
  3629.       pragma Assert (False
  3630.           or else NT (N).Nkind = N_Return_Statement);
  3631.       Set_Node2 (N, Val); -- semantic node, no parent set
  3632.    end Set_Return_Type;
  3633.  
  3634.    procedure Set_Reverse_Present
  3635.       (N : Node_Id; Val : Boolean := True) is
  3636.    begin
  3637.       pragma Assert (False
  3638.           or else NT (N).Nkind = N_Loop_Parameter_Specification);
  3639.       Set_Flag1 (N, Val);
  3640.    end Set_Reverse_Present;
  3641.  
  3642.    procedure Set_Right_Opnd
  3643.       (N : Node_Id; Val : Node_Id) is
  3644.    begin
  3645.       pragma Assert (False
  3646.           or else NT (N).Nkind = N_And_Then
  3647.           or else NT (N).Nkind = N_In
  3648.           or else NT (N).Nkind = N_Not_In
  3649.           or else NT (N).Nkind = N_Or_Else
  3650.           or else NT (N).Nkind in N_Op);
  3651.       Set_Node3_With_Parent (N, Val);
  3652.    end Set_Right_Opnd;
  3653.  
  3654.    procedure Set_Rounded_Result
  3655.       (N : Node_Id; Val : Boolean := True) is
  3656.    begin
  3657.       pragma Assert (False
  3658.           or else NT (N).Nkind = N_Op_Divide
  3659.           or else NT (N).Nkind = N_Op_Multiply
  3660.           or else NT (N).Nkind = N_Type_Conversion);
  3661.       Set_Flag12 (N, Val);
  3662.    end Set_Rounded_Result;
  3663.  
  3664.    procedure Set_Scope
  3665.       (N : Node_Id; Val : Node_Id) is
  3666.    begin
  3667.       pragma Assert (False
  3668.           or else NT (N).Nkind = N_Defining_Character_Literal
  3669.           or else NT (N).Nkind = N_Defining_Identifier
  3670.           or else NT (N).Nkind = N_Defining_Operator_Symbol);
  3671.       Set_Node3 (N, Val); -- no parent, semantic field
  3672.    end Set_Scope;
  3673.  
  3674.    procedure Set_Select_Alternatives
  3675.       (N : Node_Id; Val : List_Id) is
  3676.    begin
  3677.       pragma Assert (False
  3678.           or else NT (N).Nkind = N_Selective_Accept);
  3679.       Set_List1_With_Parent (N, Val);
  3680.    end Set_Select_Alternatives;
  3681.  
  3682.    procedure Set_Selector_Name
  3683.       (N : Node_Id; Val : Node_Id) is
  3684.    begin
  3685.       pragma Assert (False
  3686.           or else NT (N).Nkind = N_Expanded_Name
  3687.           or else NT (N).Nkind = N_Generic_Association
  3688.           or else NT (N).Nkind = N_Parameter_Association
  3689.           or else NT (N).Nkind = N_Selected_Component);
  3690.       Set_Node2_With_Parent (N, Val);
  3691.    end Set_Selector_Name;
  3692.  
  3693.    procedure Set_Selector_Names
  3694.       (N : Node_Id; Val : List_Id) is
  3695.    begin
  3696.       pragma Assert (False
  3697.           or else NT (N).Nkind = N_Discriminant_Association);
  3698.       Set_List1_With_Parent (N, Val);
  3699.    end Set_Selector_Names;
  3700.  
  3701.    procedure Set_Specification
  3702.       (N : Node_Id; Val : Node_Id) is
  3703.    begin
  3704.       pragma Assert (False
  3705.           or else NT (N).Nkind = N_Abstract_Subprogram_Declaration
  3706.           or else NT (N).Nkind = N_Formal_Subprogram_Declaration
  3707.           or else NT (N).Nkind = N_Generic_Package_Declaration
  3708.           or else NT (N).Nkind = N_Generic_Subprogram_Declaration
  3709.           or else NT (N).Nkind = N_Package_Declaration
  3710.           or else NT (N).Nkind = N_Subprogram_Body
  3711.           or else NT (N).Nkind = N_Subprogram_Body_Stub
  3712.           or else NT (N).Nkind = N_Subprogram_Declaration
  3713.           or else NT (N).Nkind = N_Subprogram_Renaming_Declaration);
  3714.       Set_Node1_With_Parent (N, Val);
  3715.    end Set_Specification;
  3716.  
  3717.    procedure Set_Statements
  3718.       (N : Node_Id; Val : List_Id) is
  3719.    begin
  3720.       pragma Assert (False
  3721.           or else NT (N).Nkind = N_Abortable_Part
  3722.           or else NT (N).Nkind = N_Accept_Alternative
  3723.           or else NT (N).Nkind = N_Case_Statement_Alternative
  3724.           or else NT (N).Nkind = N_Delay_Alternative
  3725.           or else NT (N).Nkind = N_Entry_Call_Alternative
  3726.           or else NT (N).Nkind = N_Exception_Handler
  3727.           or else NT (N).Nkind = N_Handled_Sequence_Of_Statements
  3728.           or else NT (N).Nkind = N_Loop_Statement
  3729.           or else NT (N).Nkind = N_Triggering_Alternative);
  3730.       Set_List3_With_Parent (N, Val);
  3731.    end Set_Statements;
  3732.  
  3733.    procedure Set_Storage_Pool
  3734.       (N : Node_Id; Val : Node_Id) is
  3735.    begin
  3736.       pragma Assert (False
  3737.           or else NT (N).Nkind = N_Allocator
  3738.           or else NT (N).Nkind = N_Free_Statement
  3739.           or else NT (N).Nkind = N_Return_Statement);
  3740.       Set_Node1 (N, Val); -- semantic node, must not set Parent
  3741.    end Set_Storage_Pool;
  3742.  
  3743.    procedure Set_Strval
  3744.       (N : Node_Id; Val : String_Id) is
  3745.    begin
  3746.       pragma Assert (False
  3747.           or else NT (N).Nkind = N_Operator_Symbol
  3748.           or else NT (N).Nkind = N_String_Literal);
  3749.       Set_Str3 (N, Val);
  3750.    end Set_Strval;
  3751.  
  3752.    procedure Set_Subtype_Indication
  3753.       (N : Node_Id; Val : Node_Id) is
  3754.    begin
  3755.       pragma Assert (False
  3756.           or else NT (N).Nkind = N_Access_To_Object_Definition
  3757.           or else NT (N).Nkind = N_Component_Declaration
  3758.           or else NT (N).Nkind = N_Constrained_Array_Definition
  3759.           or else NT (N).Nkind = N_Derived_Type_Definition
  3760.           or else NT (N).Nkind = N_Private_Extension_Declaration
  3761.           or else NT (N).Nkind = N_Subtype_Declaration
  3762.           or else NT (N).Nkind = N_Unconstrained_Array_Definition);
  3763.       Set_Node5_With_Parent (N, Val);
  3764.    end Set_Subtype_Indication;
  3765.  
  3766.    procedure Set_Subtype_Mark
  3767.       (N : Node_Id; Val : Node_Id) is
  3768.    begin
  3769.       pragma Assert (False
  3770.           or else NT (N).Nkind = N_Access_Definition
  3771.           or else NT (N).Nkind = N_Access_Function_Definition
  3772.           or else NT (N).Nkind = N_Formal_Derived_Type_Definition
  3773.           or else NT (N).Nkind = N_Formal_Object_Declaration
  3774.           or else NT (N).Nkind = N_Function_Specification
  3775.           or else NT (N).Nkind = N_Object_Renaming_Declaration
  3776.           or else NT (N).Nkind = N_Qualified_Expression
  3777.           or else NT (N).Nkind = N_Subtype_Indication
  3778.           or else NT (N).Nkind = N_Type_Conversion
  3779.           or else NT (N).Nkind = N_Unchecked_Type_Conversion);
  3780.       Set_Node4_With_Parent (N, Val);
  3781.    end Set_Subtype_Mark;
  3782.  
  3783.    procedure Set_Subtype_Marks
  3784.       (N : Node_Id; Val : List_Id) is
  3785.    begin
  3786.       pragma Assert (False
  3787.           or else NT (N).Nkind = N_Unconstrained_Array_Definition
  3788.           or else NT (N).Nkind = N_Use_Type_Clause);
  3789.       Set_List2_With_Parent (N, Val);
  3790.    end Set_Subtype_Marks;
  3791.  
  3792.    procedure Set_Tagged_Present
  3793.       (N : Node_Id; Val : Boolean := True) is
  3794.    begin
  3795.       pragma Assert (False
  3796.           or else NT (N).Nkind = N_Formal_Private_Type_Definition
  3797.           or else NT (N).Nkind = N_Private_Type_Declaration
  3798.           or else NT (N).Nkind = N_Record_Definition);
  3799.       Set_Flag1 (N, Val);
  3800.    end Set_Tagged_Present;
  3801.  
  3802.    procedure Set_Task_Definition
  3803.       (N : Node_Id; Val : Node_Id) is
  3804.    begin
  3805.       pragma Assert (False
  3806.           or else NT (N).Nkind = N_Single_Task_Declaration
  3807.           or else NT (N).Nkind = N_Task_Type_Declaration);
  3808.       Set_Node3_With_Parent (N, Val);
  3809.    end Set_Task_Definition;
  3810.  
  3811.    procedure Set_Then_Actions
  3812.       (N : Node_Id; Val : List_Id) is
  3813.    begin
  3814.       pragma Assert (False
  3815.           or else NT (N).Nkind = N_Conditional_Expression);
  3816.       Set_List2 (N, Val); -- no parent, semantic field
  3817.    end Set_Then_Actions;
  3818.  
  3819.    procedure Set_Then_Statements
  3820.       (N : Node_Id; Val : List_Id) is
  3821.    begin
  3822.       pragma Assert (False
  3823.           or else NT (N).Nkind = N_Elsif_Part
  3824.           or else NT (N).Nkind = N_If_Statement);
  3825.       Set_List2_With_Parent (N, Val);
  3826.    end Set_Then_Statements;
  3827.  
  3828.    procedure Set_Treat_Fixed_As_Integer
  3829.       (N : Node_Id; Val : Boolean := True) is
  3830.    begin
  3831.       pragma Assert (False
  3832.           or else NT (N).Nkind = N_Op_Divide
  3833.           or else NT (N).Nkind = N_Op_Mod
  3834.           or else NT (N).Nkind = N_Op_Multiply
  3835.           or else NT (N).Nkind = N_Op_Rem);
  3836.       Set_Flag14 (N, Val);
  3837.    end Set_Treat_Fixed_As_Integer;
  3838.  
  3839.    procedure Set_Triggering_Alternative
  3840.       (N : Node_Id; Val : Node_Id) is
  3841.    begin
  3842.       pragma Assert (False
  3843.           or else NT (N).Nkind = N_Asynchronous_Select);
  3844.       Set_Node1_With_Parent (N, Val);
  3845.    end Set_Triggering_Alternative;
  3846.  
  3847.    procedure Set_Triggering_Statement
  3848.       (N : Node_Id; Val : Node_Id) is
  3849.    begin
  3850.       pragma Assert (False
  3851.           or else NT (N).Nkind = N_Triggering_Alternative);
  3852.       Set_Node1_With_Parent (N, Val);
  3853.    end Set_Triggering_Statement;
  3854.  
  3855.    procedure Set_TSS_Elist
  3856.       (N : Node_Id; Val : Elist_Id) is
  3857.    begin
  3858.       pragma Assert (False
  3859.           or else NT (N).Nkind = N_Freeze_Entity);
  3860.       Set_Elist3 (N, Val); -- Note: semantic node, parent pointer not set
  3861.    end Set_TSS_Elist;
  3862.  
  3863.    procedure Set_Type_Definition
  3864.       (N : Node_Id; Val : Node_Id) is
  3865.    begin
  3866.       pragma Assert (False
  3867.           or else NT (N).Nkind = N_Full_Type_Declaration);
  3868.       Set_Node3_With_Parent (N, Val);
  3869.    end Set_Type_Definition;
  3870.  
  3871.    procedure Set_Unit
  3872.       (N : Node_Id; Val : Node_Id) is
  3873.    begin
  3874.       pragma Assert (False
  3875.           or else NT (N).Nkind = N_Compilation_Unit);
  3876.       Set_Node2_With_Parent (N, Val);
  3877.    end Set_Unit;
  3878.  
  3879.    procedure Set_Unknown_Discriminants_Present
  3880.       (N : Node_Id; Val : Boolean := True) is
  3881.    begin
  3882.       pragma Assert (False
  3883.           or else NT (N).Nkind = N_Formal_Type_Declaration
  3884.           or else NT (N).Nkind = N_Incomplete_Type_Declaration
  3885.           or else NT (N).Nkind = N_Private_Extension_Declaration
  3886.           or else NT (N).Nkind = N_Private_Type_Declaration);
  3887.       Set_Flag3 (N, Val);
  3888.    end Set_Unknown_Discriminants_Present;
  3889.  
  3890.    procedure Set_Variant_Part
  3891.       (N : Node_Id; Val : Node_Id) is
  3892.    begin
  3893.       pragma Assert (False
  3894.           or else NT (N).Nkind = N_Component_List);
  3895.       Set_Node4_With_Parent (N, Val);
  3896.    end Set_Variant_Part;
  3897.  
  3898.    procedure Set_Variants
  3899.       (N : Node_Id; Val : List_Id) is
  3900.    begin
  3901.       pragma Assert (False
  3902.           or else NT (N).Nkind = N_Variant_Part);
  3903.       Set_List1_With_Parent (N, Val);
  3904.    end Set_Variants;
  3905.  
  3906.    procedure Set_Visible_Declarations
  3907.       (N : Node_Id; Val : List_Id) is
  3908.    begin
  3909.       pragma Assert (False
  3910.           or else NT (N).Nkind = N_Package_Specification
  3911.           or else NT (N).Nkind = N_Protected_Definition
  3912.           or else NT (N).Nkind = N_Task_Definition);
  3913.       Set_List2_With_Parent (N, Val);
  3914.    end Set_Visible_Declarations;
  3915.  
  3916. end Sinfo;
  3917.