| ------------------------------------------------------------------------------ |
| -- -- |
| -- GNAT COMPILER COMPONENTS -- |
| -- -- |
| -- T R E E P R S -- |
| -- -- |
| -- T e m p l a t e -- |
| -- -- |
| -- Copyright (C) 1992-2013, Free Software Foundation, Inc. -- |
| -- -- |
| -- GNAT is free software; you can redistribute it and/or modify it under -- |
| -- terms of the GNU General Public License as published by the Free Soft- -- |
| -- ware Foundation; either version 3, or (at your option) any later ver- -- |
| -- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- |
| -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- |
| -- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -- |
| -- for more details. You should have received a copy of the GNU General -- |
| -- Public License distributed with GNAT; see file COPYING3. If not, go to -- |
| -- http://www.gnu.org/licenses for a complete copy of the license. -- |
| -- -- |
| -- GNAT was originally developed by the GNAT team at New York University. -- |
| -- Extensive contributions were provided by Ada Core Technologies Inc. -- |
| -- -- |
| ------------------------------------------------------------------------------ |
| -- This file is a template used as input to the utility program XTreeprs, |
| -- which reads this template, and the spec of Sinfo (sinfo.ads) and generates |
| -- the spec for the Treeprs package (file treeprs.ads) |
| |
| -- This package contains the declaration of the string used by the Tree_Print |
| -- package. It must be updated whenever the arrangements of the field names |
| -- in package Sinfo is changed. The utility program XTREEPRS is used to |
| -- do this update correctly using the template treeprs.adt as input. |
| |
| with Sinfo; use Sinfo; |
| |
| package Treeprs is |
| |
| -------------------------------- |
| -- String Data for Node Print -- |
| -------------------------------- |
| |
| -- String data for print out. The Pchars array is a long string with the |
| -- the entry for each node type consisting of a single blank, followed by |
| -- a series of entries, one for each Op or Flag field used for the node. |
| -- Each entry has a single character which identifies the field, followed |
| -- by the synonym name. The starting location for a given node type is |
| -- found from the corresponding entry in the Pchars_Pos_Array. |
| |
| -- The following characters identify the field. These are characters which |
| -- could never occur in a field name, so they also mark the end of the |
| -- previous name. |
| |
| -- Note the following definitions do not include Flag0. This will have to |
| -- be addressed if we ever need to use Flag0 (it's not currently used). |
| |
| subtype Fchar is Character range '#' .. '9'; |
| |
| F_Field1 : constant Fchar := '#'; -- Character'Val (16#23#) |
| F_Field2 : constant Fchar := '$'; -- Character'Val (16#24#) |
| F_Field3 : constant Fchar := '%'; -- Character'Val (16#25#) |
| F_Field4 : constant Fchar := '&'; -- Character'Val (16#26#) |
| F_Field5 : constant Fchar := '''; -- Character'Val (16#27#) |
| F_Flag1 : constant Fchar := '('; -- Character'Val (16#28#) |
| F_Flag2 : constant Fchar := ')'; -- Character'Val (16#29#) |
| F_Flag3 : constant Fchar := '*'; -- Character'Val (16#2A#) |
| F_Flag4 : constant Fchar := '+'; -- Character'Val (16#2B#) |
| F_Flag5 : constant Fchar := ','; -- Character'Val (16#2C#) |
| F_Flag6 : constant Fchar := '-'; -- Character'Val (16#2D#) |
| F_Flag7 : constant Fchar := '.'; -- Character'Val (16#2E#) |
| F_Flag8 : constant Fchar := '/'; -- Character'Val (16#2F#) |
| F_Flag9 : constant Fchar := '0'; -- Character'Val (16#30#) |
| F_Flag10 : constant Fchar := '1'; -- Character'Val (16#31#) |
| F_Flag11 : constant Fchar := '2'; -- Character'Val (16#32#) |
| F_Flag12 : constant Fchar := '3'; -- Character'Val (16#33#) |
| F_Flag13 : constant Fchar := '4'; -- Character'Val (16#34#) |
| F_Flag14 : constant Fchar := '5'; -- Character'Val (16#35#) |
| F_Flag15 : constant Fchar := '6'; -- Character'Val (16#36#) |
| F_Flag16 : constant Fchar := '7'; -- Character'Val (16#37#) |
| F_Flag17 : constant Fchar := '8'; -- Character'Val (16#38#) |
| F_Flag18 : constant Fchar := '9'; -- Character'Val (16#39#) |
| |
| -- Note this table does not include entity field and flags whose access |
| -- functions are in Einfo (these are handled by the Print_Entity_Info |
| -- procedure in Treepr, which uses the routines in Einfo to get the proper |
| -- symbolic information). In addition, the following fields are handled by |
| -- Treepr, and do not appear in the Pchars array: |
| |
| -- Analyzed |
| -- Cannot_Be_Constant |
| -- Chars |
| -- Comes_From_Source |
| -- Error_Posted |
| -- Etype |
| -- Is_Controlling_Actual |
| -- Is_Overloaded |
| -- Is_Static_Expression |
| -- Left_Opnd |
| -- Must_Check_Expr |
| -- Must_Not_Freeze |
| -- No_Overflow_Expr |
| -- Paren_Count |
| -- Raises_Constraint_Error |
| -- Right_Opnd |
| |
| !!TEMPLATE INSERTION POINT |
| |
| end Treeprs; |