OSDN Git Service

2012-01-10 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ada / treepr.ads
1 ------------------------------------------------------------------------------
2 --                                                                          --
3 --                         GNAT COMPILER COMPONENTS                         --
4 --                                                                          --
5 --                               T R E E P R                                --
6 --                                                                          --
7 --                                 S p e c                                  --
8 --                                                                          --
9 --          Copyright (C) 1992-2011, Free Software Foundation, Inc.         --
10 --                                                                          --
11 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
12 -- terms of the  GNU General Public License as published  by the Free Soft- --
13 -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
14 -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
15 -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
16 -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
17 -- for  more details.  You should have  received  a copy of the GNU General --
18 -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
19 -- http://www.gnu.org/licenses for a complete copy of the license.          --
20 --                                                                          --
21 -- GNAT was originally developed  by the GNAT team at  New York University. --
22 -- Extensive contributions were provided by Ada Core Technologies Inc.      --
23 --                                                                          --
24 ------------------------------------------------------------------------------
25
26 with Types; use Types;
27 package Treepr is
28
29 --  This package provides printing routines for the abstract syntax tree
30 --  These routines are intended only for debugging use.
31
32    procedure Tree_Dump;
33    --  This routine is called from the GNAT main program to dump trees as
34    --  requested by debug options (including tree of Standard if requested).
35
36    procedure Print_Tree_Node (N : Node_Id; Label : String := "");
37    --  Prints a single tree node, without printing descendants. The Label
38    --  string is used to preface each line of the printed output.
39
40    procedure Print_Node_Briefly (N : Node_Id);
41    --  Terse version of Print_Tree_Node
42
43    procedure Print_Tree_List (L : List_Id);
44    --  Prints a single node list, without printing the descendants of any
45    --  of the nodes in the list
46
47    procedure Print_Tree_Elist (E : Elist_Id);
48    --  Prints a single node list, without printing the descendants of any
49    --  of the nodes in the list
50
51    procedure Print_Node_Subtree (N : Node_Id);
52    --  Prints the subtree routed at a specified tree node, including all
53    --  referenced descendants.
54
55    procedure Print_List_Subtree (L : List_Id);
56    --  Prints the subtree consisting of the given node list and all its
57    --  referenced descendants.
58
59    procedure Print_Elist_Subtree (E : Elist_Id);
60    --  Prints the subtree consisting of the given element list and all its
61    --  referenced descendants.
62
63    --  The following debugging procedures are intended to be called from gdb
64
65    procedure pp (N : Union_Id);
66    pragma Export (Ada, pp);
67    --  Prints a node, node list, uint, or anything else that falls under
68    --  Union_Id.
69
70    procedure ppp (N : Node_Id);
71    pragma Export (Ada, ppp);
72    --  Same as Print_Node_Subtree
73
74    --  The following are no longer needed; you can use pp or ppp instead
75
76    procedure pe (E : Elist_Id);
77    pragma Export (Ada, pe);
78    --  Same as Print_Tree_Elist
79
80    procedure pl (L : Int);
81    pragma Export (Ada, pl);
82    --  Same as Print_Tree_List, except that you can use e.g. 66 instead of
83    --  -99999966. In other words for the positive case we fill out to 8 digits
84    --  on the left and add a minus sign. This just saves some typing in the
85    --  debugger.
86
87    procedure pn (N : Union_Id);
88    pragma Export (Ada, pn);
89    --  Same as pp
90
91    procedure pt (N : Node_Id);
92    pragma Export (Ada, pt);
93    --  Same as ppp
94
95 end Treepr;