diff options
-rw-r--r-- | src/psl/psl-dump_tree.adb | 248 |
1 files changed, 68 insertions, 180 deletions
diff --git a/src/psl/psl-dump_tree.adb b/src/psl/psl-dump_tree.adb index db636db..4101b94 100644 --- a/src/psl/psl-dump_tree.adb +++ b/src/psl/psl-dump_tree.adb @@ -102,7 +102,7 @@ package body PSL.Dump_Tree is procedure Disp_Location (Loc : Location_Type) is begin - Put (PSL.Errors.Get_Location_Str (Loc)); + Put (PSL.Errors.Image (Loc)); end Disp_Location; -- procedure Disp_String_Id (N : Node) is @@ -115,8 +115,8 @@ package body PSL.Dump_Tree is -- Subprograms. procedure Disp_Tree (N : Node; Indent : Natural; Full : boolean := False) is + Chain : Node; begin - Disp_Indent (Indent); Disp_Node_Number (N); Put (": "); if N = Null_Node then @@ -125,7 +125,7 @@ package body PSL.Dump_Tree is end if; Put_Line (Nkind'Image (Get_Kind (N))); Disp_Indent (Indent); - Put ("loc: "); + Put (" loc: "); Disp_Location (Get_Location (N)); New_Line; case Get_Kind (N) is @@ -133,7 +133,6 @@ package body PSL.Dump_Tree is if not Full then return; end if; - null; when N_Vmode => Disp_Header ("Identifier", Indent + 1); Disp_Identifier (N); @@ -141,13 +140,14 @@ package body PSL.Dump_Tree is return; end if; Disp_Header ("Instance", Indent + 1); - New_Line; Disp_Tree (Get_Instance (N), Indent + 1, Full); Disp_Header ("Item_Chain", Indent + 1); - New_Line; Disp_Tree (Get_Item_Chain (N), Indent + 1, Full); - Disp_Tree (Get_Chain (N), Indent, Full); - null; + Chain := Get_Chain (N); + if Chain /= Null_Node then + Disp_Indent (Indent); + Disp_Tree (Chain, Indent, Full); + end if; when N_Vunit => Disp_Header ("Identifier", Indent + 1); Disp_Identifier (N); @@ -155,13 +155,14 @@ package body PSL.Dump_Tree is return; end if; Disp_Header ("Instance", Indent + 1); - New_Line; Disp_Tree (Get_Instance (N), Indent + 1, Full); Disp_Header ("Item_Chain", Indent + 1); - New_Line; Disp_Tree (Get_Item_Chain (N), Indent + 1, Full); - Disp_Tree (Get_Chain (N), Indent, Full); - null; + Chain := Get_Chain (N); + if Chain /= Null_Node then + Disp_Indent (Indent); + Disp_Tree (Chain, Indent, Full); + end if; when N_Vprop => Disp_Header ("Identifier", Indent + 1); Disp_Identifier (N); @@ -169,13 +170,14 @@ package body PSL.Dump_Tree is return; end if; Disp_Header ("Instance", Indent + 1); - New_Line; Disp_Tree (Get_Instance (N), Indent + 1, Full); Disp_Header ("Item_Chain", Indent + 1); - New_Line; Disp_Tree (Get_Item_Chain (N), Indent + 1, Full); - Disp_Tree (Get_Chain (N), Indent, Full); - null; + Chain := Get_Chain (N); + if Chain /= Null_Node then + Disp_Indent (Indent); + Disp_Tree (Chain, Indent, Full); + end if; when N_Hdl_Mod_Name => Disp_Header ("Identifier", Indent + 1); Disp_Identifier (N); @@ -183,9 +185,7 @@ package body PSL.Dump_Tree is return; end if; Disp_Header ("Prefix", Indent + 1); - New_Line; Disp_Tree (Get_Prefix (N), Indent + 1, Full); - null; when N_Assert_Directive => Disp_Header ("Label", Indent + 1); Disp_Label (N); @@ -193,16 +193,17 @@ package body PSL.Dump_Tree is return; end if; Disp_Header ("String", Indent + 1); - New_Line; Disp_Tree (Get_String (N), Indent + 1, Full); Disp_Header ("Property", Indent + 1); - New_Line; Disp_Tree (Get_Property (N), Indent + 1, Full); Disp_Header ("NFA", Indent + 1); Disp_NFA (Get_NFA (N)); New_Line; - Disp_Tree (Get_Chain (N), Indent, Full); - null; + Chain := Get_Chain (N); + if Chain /= Null_Node then + Disp_Indent (Indent); + Disp_Tree (Chain, Indent, Full); + end if; when N_Property_Declaration => Disp_Header ("Identifier", Indent + 1); Disp_Identifier (N); @@ -210,16 +211,16 @@ package body PSL.Dump_Tree is return; end if; Disp_Header ("Property", Indent + 1); - New_Line; Disp_Tree (Get_Property (N), Indent + 1, Full); Disp_Header ("Global_Clock", Indent + 1); - New_Line; Disp_Tree (Get_Global_Clock (N), Indent + 1, Full); Disp_Header ("Parameter_List", Indent + 1); - New_Line; Disp_Tree (Get_Parameter_List (N), Indent + 1, Full); - Disp_Tree (Get_Chain (N), Indent, Full); - null; + Chain := Get_Chain (N); + if Chain /= Null_Node then + Disp_Indent (Indent); + Disp_Tree (Chain, Indent, Full); + end if; when N_Sequence_Declaration => Disp_Header ("Identifier", Indent + 1); Disp_Identifier (N); @@ -227,13 +228,14 @@ package body PSL.Dump_Tree is return; end if; Disp_Header ("Parameter_List", Indent + 1); - New_Line; Disp_Tree (Get_Parameter_List (N), Indent + 1, Full); Disp_Header ("Sequence", Indent + 1); - New_Line; Disp_Tree (Get_Sequence (N), Indent + 1, Full); - Disp_Tree (Get_Chain (N), Indent, Full); - null; + Chain := Get_Chain (N); + if Chain /= Null_Node then + Disp_Indent (Indent); + Disp_Tree (Chain, Indent, Full); + end if; when N_Endpoint_Declaration => Disp_Header ("Identifier", Indent + 1); Disp_Identifier (N); @@ -241,13 +243,14 @@ package body PSL.Dump_Tree is return; end if; Disp_Header ("Parameter_List", Indent + 1); - New_Line; Disp_Tree (Get_Parameter_List (N), Indent + 1, Full); Disp_Header ("Sequence", Indent + 1); - New_Line; Disp_Tree (Get_Sequence (N), Indent + 1, Full); - Disp_Tree (Get_Chain (N), Indent, Full); - null; + Chain := Get_Chain (N); + if Chain /= Null_Node then + Disp_Indent (Indent); + Disp_Tree (Chain, Indent, Full); + end if; when N_Const_Parameter => Disp_Header ("Identifier", Indent + 1); Disp_Identifier (N); @@ -255,10 +258,12 @@ package body PSL.Dump_Tree is return; end if; Disp_Header ("Actual", Indent + 1); - New_Line; Disp_Tree (Get_Actual (N), Indent + 1, Full); - Disp_Tree (Get_Chain (N), Indent, Full); - null; + Chain := Get_Chain (N); + if Chain /= Null_Node then + Disp_Indent (Indent); + Disp_Tree (Chain, Indent, Full); + end if; when N_Boolean_Parameter => Disp_Header ("Identifier", Indent + 1); Disp_Identifier (N); @@ -266,10 +271,12 @@ package body PSL.Dump_Tree is return; end if; Disp_Header ("Actual", Indent + 1); - New_Line; Disp_Tree (Get_Actual (N), Indent + 1, Full); - Disp_Tree (Get_Chain (N), Indent, Full); - null; + Chain := Get_Chain (N); + if Chain /= Null_Node then + Disp_Indent (Indent); + Disp_Tree (Chain, Indent, Full); + end if; when N_Property_Parameter => Disp_Header ("Identifier", Indent + 1); Disp_Identifier (N); @@ -277,10 +284,12 @@ package body PSL.Dump_Tree is return; end if; Disp_Header ("Actual", Indent + 1); - New_Line; Disp_Tree (Get_Actual (N), Indent + 1, Full); - Disp_Tree (Get_Chain (N), Indent, Full); - null; + Chain := Get_Chain (N); + if Chain /= Null_Node then + Disp_Indent (Indent); + Disp_Tree (Chain, Indent, Full); + end if; when N_Sequence_Parameter => Disp_Header ("Identifier", Indent + 1); Disp_Identifier (N); @@ -288,247 +297,193 @@ package body PSL.Dump_Tree is return; end if; Disp_Header ("Actual", Indent + 1); - New_Line; Disp_Tree (Get_Actual (N), Indent + 1, Full); - Disp_Tree (Get_Chain (N), Indent, Full); - null; + Chain := Get_Chain (N); + if Chain /= Null_Node then + Disp_Indent (Indent); + Disp_Tree (Chain, Indent, Full); + end if; when N_Sequence_Instance => if not Full then return; end if; Disp_Header ("Declaration", Indent + 1); - New_Line; Disp_Tree (Get_Declaration (N), Indent + 1, False); Disp_Header ("Association_Chain", Indent + 1); - New_Line; Disp_Tree (Get_Association_Chain (N), Indent + 1, Full); - null; when N_Endpoint_Instance => if not Full then return; end if; Disp_Header ("Declaration", Indent + 1); - New_Line; Disp_Tree (Get_Declaration (N), Indent + 1, False); Disp_Header ("Association_Chain", Indent + 1); - New_Line; Disp_Tree (Get_Association_Chain (N), Indent + 1, Full); - null; when N_Property_Instance => if not Full then return; end if; Disp_Header ("Declaration", Indent + 1); - New_Line; Disp_Tree (Get_Declaration (N), Indent + 1, False); Disp_Header ("Association_Chain", Indent + 1); - New_Line; Disp_Tree (Get_Association_Chain (N), Indent + 1, Full); - null; when N_Actual => if not Full then return; end if; Disp_Header ("Actual", Indent + 1); - New_Line; Disp_Tree (Get_Actual (N), Indent + 1, Full); Disp_Header ("Formal", Indent + 1); - New_Line; Disp_Tree (Get_Formal (N), Indent + 1, Full); - Disp_Tree (Get_Chain (N), Indent, Full); - null; + Chain := Get_Chain (N); + if Chain /= Null_Node then + Disp_Indent (Indent); + Disp_Tree (Chain, Indent, Full); + end if; when N_Clock_Event => if not Full then return; end if; Disp_Header ("Property", Indent + 1); - New_Line; Disp_Tree (Get_Property (N), Indent + 1, Full); Disp_Header ("Boolean", Indent + 1); - New_Line; Disp_Tree (Get_Boolean (N), Indent + 1, Full); - null; when N_Always => if not Full then return; end if; Disp_Header ("Property", Indent + 1); - New_Line; Disp_Tree (Get_Property (N), Indent + 1, Full); - null; when N_Never => if not Full then return; end if; Disp_Header ("Property", Indent + 1); - New_Line; Disp_Tree (Get_Property (N), Indent + 1, Full); - null; when N_Eventually => if not Full then return; end if; Disp_Header ("Property", Indent + 1); - New_Line; Disp_Tree (Get_Property (N), Indent + 1, Full); - null; when N_Strong => if not Full then return; end if; Disp_Header ("Property", Indent + 1); - New_Line; Disp_Tree (Get_Property (N), Indent + 1, Full); - null; when N_Imp_Seq => if not Full then return; end if; Disp_Header ("Property", Indent + 1); - New_Line; Disp_Tree (Get_Property (N), Indent + 1, Full); Disp_Header ("Sequence", Indent + 1); - New_Line; Disp_Tree (Get_Sequence (N), Indent + 1, Full); - null; when N_Overlap_Imp_Seq => if not Full then return; end if; Disp_Header ("Property", Indent + 1); - New_Line; Disp_Tree (Get_Property (N), Indent + 1, Full); Disp_Header ("Sequence", Indent + 1); - New_Line; Disp_Tree (Get_Sequence (N), Indent + 1, Full); - null; when N_Log_Imp_Prop => if not Full then return; end if; Disp_Header ("Left", Indent + 1); - New_Line; Disp_Tree (Get_Left (N), Indent + 1, Full); Disp_Header ("Right", Indent + 1); - New_Line; Disp_Tree (Get_Right (N), Indent + 1, Full); - null; when N_Next => if not Full then return; end if; Disp_Header ("Property", Indent + 1); - New_Line; Disp_Tree (Get_Property (N), Indent + 1, Full); Disp_Header ("Strong_Flag", Indent + 1); Disp_Boolean (Get_Strong_Flag (N)); New_Line; Disp_Header ("Number", Indent + 1); - New_Line; Disp_Tree (Get_Number (N), Indent + 1, Full); - null; when N_Next_A => if not Full then return; end if; Disp_Header ("Property", Indent + 1); - New_Line; Disp_Tree (Get_Property (N), Indent + 1, Full); Disp_Header ("Strong_Flag", Indent + 1); Disp_Boolean (Get_Strong_Flag (N)); New_Line; Disp_Header ("Low_Bound", Indent + 1); - New_Line; Disp_Tree (Get_Low_Bound (N), Indent + 1, Full); Disp_Header ("High_Bound", Indent + 1); - New_Line; Disp_Tree (Get_High_Bound (N), Indent + 1, Full); - null; when N_Next_E => if not Full then return; end if; Disp_Header ("Property", Indent + 1); - New_Line; Disp_Tree (Get_Property (N), Indent + 1, Full); Disp_Header ("Strong_Flag", Indent + 1); Disp_Boolean (Get_Strong_Flag (N)); New_Line; Disp_Header ("Low_Bound", Indent + 1); - New_Line; Disp_Tree (Get_Low_Bound (N), Indent + 1, Full); Disp_Header ("High_Bound", Indent + 1); - New_Line; Disp_Tree (Get_High_Bound (N), Indent + 1, Full); - null; when N_Next_Event => if not Full then return; end if; Disp_Header ("Property", Indent + 1); - New_Line; Disp_Tree (Get_Property (N), Indent + 1, Full); Disp_Header ("Boolean", Indent + 1); - New_Line; Disp_Tree (Get_Boolean (N), Indent + 1, Full); Disp_Header ("Strong_Flag", Indent + 1); Disp_Boolean (Get_Strong_Flag (N)); New_Line; Disp_Header ("Number", Indent + 1); - New_Line; Disp_Tree (Get_Number (N), Indent + 1, Full); - null; when N_Next_Event_A => if not Full then return; end if; Disp_Header ("Property", Indent + 1); - New_Line; Disp_Tree (Get_Property (N), Indent + 1, Full); Disp_Header ("Boolean", Indent + 1); - New_Line; Disp_Tree (Get_Boolean (N), Indent + 1, Full); Disp_Header ("Strong_Flag", Indent + 1); Disp_Boolean (Get_Strong_Flag (N)); New_Line; Disp_Header ("Low_Bound", Indent + 1); - New_Line; Disp_Tree (Get_Low_Bound (N), Indent + 1, Full); Disp_Header ("High_Bound", Indent + 1); - New_Line; Disp_Tree (Get_High_Bound (N), Indent + 1, Full); - null; when N_Next_Event_E => if not Full then return; end if; Disp_Header ("Property", Indent + 1); - New_Line; Disp_Tree (Get_Property (N), Indent + 1, Full); Disp_Header ("Boolean", Indent + 1); - New_Line; Disp_Tree (Get_Boolean (N), Indent + 1, Full); Disp_Header ("Strong_Flag", Indent + 1); Disp_Boolean (Get_Strong_Flag (N)); New_Line; Disp_Header ("Low_Bound", Indent + 1); - New_Line; Disp_Tree (Get_Low_Bound (N), Indent + 1, Full); Disp_Header ("High_Bound", Indent + 1); - New_Line; Disp_Tree (Get_High_Bound (N), Indent + 1, Full); - null; when N_Abort => if not Full then return; end if; Disp_Header ("Property", Indent + 1); - New_Line; Disp_Tree (Get_Property (N), Indent + 1, Full); Disp_Header ("Boolean", Indent + 1); - New_Line; Disp_Tree (Get_Boolean (N), Indent + 1, Full); - null; when N_Until => if not Full then return; @@ -537,15 +492,12 @@ package body PSL.Dump_Tree is Disp_Boolean (Get_Strong_Flag (N)); New_Line; Disp_Header ("Left", Indent + 1); - New_Line; Disp_Tree (Get_Left (N), Indent + 1, Full); Disp_Header ("Right", Indent + 1); - New_Line; Disp_Tree (Get_Right (N), Indent + 1, Full); Disp_Header ("Inclusive_Flag", Indent + 1); Disp_Boolean (Get_Inclusive_Flag (N)); New_Line; - null; when N_Before => if not Full then return; @@ -554,167 +506,123 @@ package body PSL.Dump_Tree is Disp_Boolean (Get_Strong_Flag (N)); New_Line; Disp_Header ("Left", Indent + 1); - New_Line; Disp_Tree (Get_Left (N), Indent + 1, Full); Disp_Header ("Right", Indent + 1); - New_Line; Disp_Tree (Get_Right (N), Indent + 1, Full); Disp_Header ("Inclusive_Flag", Indent + 1); Disp_Boolean (Get_Inclusive_Flag (N)); New_Line; - null; when N_Or_Prop => if not Full then return; end if; Disp_Header ("Left", Indent + 1); - New_Line; Disp_Tree (Get_Left (N), Indent + 1, Full); Disp_Header ("Right", Indent + 1); - New_Line; Disp_Tree (Get_Right (N), Indent + 1, Full); - null; when N_And_Prop => if not Full then return; end if; Disp_Header ("Left", Indent + 1); - New_Line; Disp_Tree (Get_Left (N), Indent + 1, Full); Disp_Header ("Right", Indent + 1); - New_Line; Disp_Tree (Get_Right (N), Indent + 1, Full); - null; when N_Braced_SERE => if not Full then return; end if; Disp_Header ("SERE", Indent + 1); - New_Line; Disp_Tree (Get_SERE (N), Indent + 1, Full); - null; when N_Concat_SERE => if not Full then return; end if; Disp_Header ("Left", Indent + 1); - New_Line; Disp_Tree (Get_Left (N), Indent + 1, Full); Disp_Header ("Right", Indent + 1); - New_Line; Disp_Tree (Get_Right (N), Indent + 1, Full); - null; when N_Fusion_SERE => if not Full then return; end if; Disp_Header ("Left", Indent + 1); - New_Line; Disp_Tree (Get_Left (N), Indent + 1, Full); Disp_Header ("Right", Indent + 1); - New_Line; Disp_Tree (Get_Right (N), Indent + 1, Full); - null; when N_Within_SERE => if not Full then return; end if; Disp_Header ("Left", Indent + 1); - New_Line; Disp_Tree (Get_Left (N), Indent + 1, Full); Disp_Header ("Right", Indent + 1); - New_Line; Disp_Tree (Get_Right (N), Indent + 1, Full); - null; when N_Match_And_Seq => if not Full then return; end if; Disp_Header ("Left", Indent + 1); - New_Line; Disp_Tree (Get_Left (N), Indent + 1, Full); Disp_Header ("Right", Indent + 1); - New_Line; Disp_Tree (Get_Right (N), Indent + 1, Full); - null; when N_And_Seq => if not Full then return; end if; Disp_Header ("Left", Indent + 1); - New_Line; Disp_Tree (Get_Left (N), Indent + 1, Full); Disp_Header ("Right", Indent + 1); - New_Line; Disp_Tree (Get_Right (N), Indent + 1, Full); - null; when N_Or_Seq => if not Full then return; end if; Disp_Header ("Left", Indent + 1); - New_Line; Disp_Tree (Get_Left (N), Indent + 1, Full); Disp_Header ("Right", Indent + 1); - New_Line; Disp_Tree (Get_Right (N), Indent + 1, Full); - null; when N_Star_Repeat_Seq => if not Full then return; end if; Disp_Header ("Sequence", Indent + 1); - New_Line; Disp_Tree (Get_Sequence (N), Indent + 1, Full); Disp_Header ("Low_Bound", Indent + 1); - New_Line; Disp_Tree (Get_Low_Bound (N), Indent + 1, Full); Disp_Header ("High_Bound", Indent + 1); - New_Line; Disp_Tree (Get_High_Bound (N), Indent + 1, Full); - null; when N_Goto_Repeat_Seq => if not Full then return; end if; Disp_Header ("Sequence", Indent + 1); - New_Line; Disp_Tree (Get_Sequence (N), Indent + 1, Full); Disp_Header ("Low_Bound", Indent + 1); - New_Line; Disp_Tree (Get_Low_Bound (N), Indent + 1, Full); Disp_Header ("High_Bound", Indent + 1); - New_Line; Disp_Tree (Get_High_Bound (N), Indent + 1, Full); - null; when N_Plus_Repeat_Seq => if not Full then return; end if; Disp_Header ("Sequence", Indent + 1); - New_Line; Disp_Tree (Get_Sequence (N), Indent + 1, Full); - null; when N_Equal_Repeat_Seq => if not Full then return; end if; Disp_Header ("Sequence", Indent + 1); - New_Line; Disp_Tree (Get_Sequence (N), Indent + 1, Full); Disp_Header ("Low_Bound", Indent + 1); - New_Line; Disp_Tree (Get_Low_Bound (N), Indent + 1, Full); Disp_Header ("High_Bound", Indent + 1); - New_Line; Disp_Tree (Get_High_Bound (N), Indent + 1, Full); - null; when N_Not_Bool => if not Full then return; end if; Disp_Header ("Boolean", Indent + 1); - New_Line; Disp_Tree (Get_Boolean (N), Indent + 1, Full); Disp_Header ("Presence", Indent + 1); Disp_PSL_Presence_Kind (Get_Presence (N)); @@ -723,18 +631,14 @@ package body PSL.Dump_Tree is Disp_Uns32 (Get_Hash (N)); New_Line; Disp_Header ("Hash_Link", Indent + 1); - New_Line; Disp_Tree (Get_Hash_Link (N), Indent + 1, Full); - null; when N_And_Bool => if not Full then return; end if; Disp_Header ("Left", Indent + 1); - New_Line; Disp_Tree (Get_Left (N), Indent + 1, Full); Disp_Header ("Right", Indent + 1); - New_Line; Disp_Tree (Get_Right (N), Indent + 1, Full); Disp_Header ("Presence", Indent + 1); Disp_PSL_Presence_Kind (Get_Presence (N)); @@ -743,18 +647,14 @@ package body PSL.Dump_Tree is Disp_Uns32 (Get_Hash (N)); New_Line; Disp_Header ("Hash_Link", Indent + 1); - New_Line; Disp_Tree (Get_Hash_Link (N), Indent + 1, Full); - null; when N_Or_Bool => if not Full then return; end if; Disp_Header ("Left", Indent + 1); - New_Line; Disp_Tree (Get_Left (N), Indent + 1, Full); Disp_Header ("Right", Indent + 1); - New_Line; Disp_Tree (Get_Right (N), Indent + 1, Full); Disp_Header ("Presence", Indent + 1); Disp_PSL_Presence_Kind (Get_Presence (N)); @@ -763,18 +663,14 @@ package body PSL.Dump_Tree is Disp_Uns32 (Get_Hash (N)); New_Line; Disp_Header ("Hash_Link", Indent + 1); - New_Line; Disp_Tree (Get_Hash_Link (N), Indent + 1, Full); - null; when N_Imp_Bool => if not Full then return; end if; Disp_Header ("Left", Indent + 1); - New_Line; Disp_Tree (Get_Left (N), Indent + 1, Full); Disp_Header ("Right", Indent + 1); - New_Line; Disp_Tree (Get_Right (N), Indent + 1, Full); Disp_Header ("Presence", Indent + 1); Disp_PSL_Presence_Kind (Get_Presence (N)); @@ -783,9 +679,7 @@ package body PSL.Dump_Tree is Disp_Uns32 (Get_Hash (N)); New_Line; Disp_Header ("Hash_Link", Indent + 1); - New_Line; Disp_Tree (Get_Hash_Link (N), Indent + 1, Full); - null; when N_HDL_Expr => if not Full then return; @@ -803,19 +697,15 @@ package body PSL.Dump_Tree is Disp_Uns32 (Get_Hash (N)); New_Line; Disp_Header ("Hash_Link", Indent + 1); - New_Line; Disp_Tree (Get_Hash_Link (N), Indent + 1, Full); - null; when N_False => if not Full then return; end if; - null; when N_True => if not Full then return; end if; - null; when N_EOS => if not Full then return; @@ -827,9 +717,7 @@ package body PSL.Dump_Tree is Disp_Uns32 (Get_Hash (N)); New_Line; Disp_Header ("Hash_Link", Indent + 1); - New_Line; Disp_Tree (Get_Hash_Link (N), Indent + 1, Full); - null; when N_Name => Disp_Header ("Identifier", Indent + 1); Disp_Identifier (N); @@ -837,17 +725,18 @@ package body PSL.Dump_Tree is return; end if; Disp_Header ("Decl", Indent + 1); - New_Line; Disp_Tree (Get_Decl (N), Indent + 1, Full); - null; when N_Name_Decl => Disp_Header ("Identifier", Indent + 1); Disp_Identifier (N); if not Full then return; end if; - Disp_Tree (Get_Chain (N), Indent, Full); - null; + Chain := Get_Chain (N); + if Chain /= Null_Node then + Disp_Indent (Indent); + Disp_Tree (Chain, Indent, Full); + end if; when N_Number => if not Full then return; @@ -855,7 +744,6 @@ package body PSL.Dump_Tree is Disp_Header ("Value", Indent + 1); Disp_Uns32 (Get_Value (N)); New_Line; - null; end case; end Disp_Tree; |