From 01c2c43682b84418fd5089d990941977664858dd Mon Sep 17 00:00:00 2001 From: charlet Date: Thu, 13 Dec 2007 10:56:34 +0000 Subject: (Nkind_In): New functions. Add support for new flags. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130887 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ada/atree.ads | 196 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 175 insertions(+), 21 deletions(-) (limited to 'gcc/ada/atree.ads') diff --git a/gcc/ada/atree.ads b/gcc/ada/atree.ads index 5e2cba6857c..b99d34939bc 100644 --- a/gcc/ada/atree.ads +++ b/gcc/ada/atree.ads @@ -491,18 +491,6 @@ package Atree is -- entity ID values of the two entities are interchanged. Neither of the -- two entities may be list members. - procedure Delete_Node (Node : Node_Id); - -- The node, which must not be a list member, is deleted from the tree and - -- its type is set to N_Unused_At_End. It is an error (not necessarily - -- detected) to reference this node after it has been deleted. The - -- implementation of the body of Atree is free to reuse the node to - -- satisfy future node allocation requests, but is not required to do so. - - procedure Delete_Tree (Node : Node_Id); - -- The entire syntactic subtree referenced by Node (i.e. the given node - -- and all its syntactic descendents) are deleted as described above for - -- Delete_Node. - function Extend_Node (Node : Node_Id) return Entity_Id; -- This function returns a copy of its input node with an extension -- added. The fields of the extension are set to Empty. Due to the way @@ -593,6 +581,68 @@ package Atree is -- Tests given Id for inequality with the Empty node. This allows notations -- like "if Present (Statement)" as opposed to "if Statement /= Empty". + -- Node_Kind tests, like the functions in Sinfo, but the first argument is + -- a Node_Id, and the tested field is Nkind (N). + + function Nkind_In + (N : Node_Id; + V1 : Node_Kind; + V2 : Node_Kind) return Boolean; + + function Nkind_In + (N : Node_Id; + V1 : Node_Kind; + V2 : Node_Kind; + V3 : Node_Kind) return Boolean; + + function Nkind_In + (N : Node_Id; + V1 : Node_Kind; + V2 : Node_Kind; + V3 : Node_Kind; + V4 : Node_Kind) return Boolean; + + function Nkind_In + (N : Node_Id; + V1 : Node_Kind; + V2 : Node_Kind; + V3 : Node_Kind; + V4 : Node_Kind; + V5 : Node_Kind) return Boolean; + + function Nkind_In + (N : Node_Id; + V1 : Node_Kind; + V2 : Node_Kind; + V3 : Node_Kind; + V4 : Node_Kind; + V5 : Node_Kind; + V6 : Node_Kind) return Boolean; + + function Nkind_In + (N : Node_Id; + V1 : Node_Kind; + V2 : Node_Kind; + V3 : Node_Kind; + V4 : Node_Kind; + V5 : Node_Kind; + V6 : Node_Kind; + V7 : Node_Kind) return Boolean; + + function Nkind_In + (N : Node_Id; + V1 : Node_Kind; + V2 : Node_Kind; + V3 : Node_Kind; + V4 : Node_Kind; + V5 : Node_Kind; + V6 : Node_Kind; + V7 : Node_Kind; + V8 : Node_Kind) return Boolean; + + pragma Inline (Nkind_In); + -- Inline all above functions + ----------------------------- -- Entity Access Functions -- ----------------------------- @@ -644,12 +694,15 @@ package Atree is -- The following procedures apply only to Entity_Id values, i.e. -- to extended nodes. + procedure Basic_Set_Convention (E : Entity_Id; Val : Convention_Id); + pragma Inline (Basic_Set_Convention); + -- Clients should use Sem_Util.Set_Convention rather than calling this + -- routine directly, as Set_Convention also deals with the special + -- processing required for access types. + procedure Set_Ekind (E : Entity_Id; Val : Entity_Kind); pragma Inline (Set_Ekind); - procedure Set_Convention (E : Entity_Id; Val : Convention_Id); - pragma Inline (Set_Convention); - --------------------------- -- Tree Rewrite Routines -- --------------------------- @@ -759,11 +812,10 @@ package Atree is -- Generic Field Access Routines -- ----------------------------------- - -- This subpackage provides the functions for accessing and procedures - -- for setting fields that are normally referenced by their logical - -- synonyms defined in packages Sinfo and Einfo. As previously - -- described the implementations of these packages use the package - -- Atree.Unchecked_Access. + -- This subpackage provides the functions for accessing and procedures for + -- setting fields that are normally referenced by their logical synonyms + -- defined in packages Sinfo and Einfo. The implementations of these + -- packages use the package Atree.Unchecked_Access. package Unchecked_Access is @@ -1753,6 +1805,57 @@ package Atree is function Flag230 (N : Node_Id) return Boolean; pragma Inline (Flag230); + function Flag231 (N : Node_Id) return Boolean; + pragma Inline (Flag231); + + function Flag232 (N : Node_Id) return Boolean; + pragma Inline (Flag232); + + function Flag233 (N : Node_Id) return Boolean; + pragma Inline (Flag233); + + function Flag234 (N : Node_Id) return Boolean; + pragma Inline (Flag234); + + function Flag235 (N : Node_Id) return Boolean; + pragma Inline (Flag235); + + function Flag236 (N : Node_Id) return Boolean; + pragma Inline (Flag236); + + function Flag237 (N : Node_Id) return Boolean; + pragma Inline (Flag237); + + function Flag238 (N : Node_Id) return Boolean; + pragma Inline (Flag238); + + function Flag239 (N : Node_Id) return Boolean; + pragma Inline (Flag239); + + function Flag240 (N : Node_Id) return Boolean; + pragma Inline (Flag240); + + function Flag241 (N : Node_Id) return Boolean; + pragma Inline (Flag241); + + function Flag242 (N : Node_Id) return Boolean; + pragma Inline (Flag242); + + function Flag243 (N : Node_Id) return Boolean; + pragma Inline (Flag243); + + function Flag244 (N : Node_Id) return Boolean; + pragma Inline (Flag244); + + function Flag245 (N : Node_Id) return Boolean; + pragma Inline (Flag245); + + function Flag246 (N : Node_Id) return Boolean; + pragma Inline (Flag246); + + function Flag247 (N : Node_Id) return Boolean; + pragma Inline (Flag247); + -- Procedures to set value of indicated field procedure Set_Nkind (N : Node_Id; Val : Node_Kind); @@ -2727,6 +2830,57 @@ package Atree is procedure Set_Flag230 (N : Node_Id; Val : Boolean); pragma Inline (Set_Flag230); + procedure Set_Flag231 (N : Node_Id; Val : Boolean); + pragma Inline (Set_Flag231); + + procedure Set_Flag232 (N : Node_Id; Val : Boolean); + pragma Inline (Set_Flag232); + + procedure Set_Flag233 (N : Node_Id; Val : Boolean); + pragma Inline (Set_Flag233); + + procedure Set_Flag234 (N : Node_Id; Val : Boolean); + pragma Inline (Set_Flag234); + + procedure Set_Flag235 (N : Node_Id; Val : Boolean); + pragma Inline (Set_Flag235); + + procedure Set_Flag236 (N : Node_Id; Val : Boolean); + pragma Inline (Set_Flag236); + + procedure Set_Flag237 (N : Node_Id; Val : Boolean); + pragma Inline (Set_Flag237); + + procedure Set_Flag238 (N : Node_Id; Val : Boolean); + pragma Inline (Set_Flag238); + + procedure Set_Flag239 (N : Node_Id; Val : Boolean); + pragma Inline (Set_Flag239); + + procedure Set_Flag240 (N : Node_Id; Val : Boolean); + pragma Inline (Set_Flag240); + + procedure Set_Flag241 (N : Node_Id; Val : Boolean); + pragma Inline (Set_Flag241); + + procedure Set_Flag242 (N : Node_Id; Val : Boolean); + pragma Inline (Set_Flag242); + + procedure Set_Flag243 (N : Node_Id; Val : Boolean); + pragma Inline (Set_Flag243); + + procedure Set_Flag244 (N : Node_Id; Val : Boolean); + pragma Inline (Set_Flag244); + + procedure Set_Flag245 (N : Node_Id; Val : Boolean); + pragma Inline (Set_Flag245); + + procedure Set_Flag246 (N : Node_Id; Val : Boolean); + pragma Inline (Set_Flag246); + + procedure Set_Flag247 (N : Node_Id; Val : Boolean); + pragma Inline (Set_Flag247); + -- The following versions of Set_Noden also set the parent -- pointer of the referenced node if it is non_Empty @@ -2943,7 +3097,7 @@ package Atree is -- Field6-10 Holds Field24-Field28 -- Field11 Holds Flag184-Flag215 - -- Field12 Holds Flag216-Flag230 + -- Field12 Holds Flag216-Flag247 end case; end record; -- cgit v1.2.1