include/ChangeLog:
[official-gcc.git] / gcc / ada / treeprs.ads
blob6ec3c1d57517655e79aaaf8dd1003380170f246d
1 ------------------------------------------------------------------------------
2 -- --
3 -- GNAT COMPILER COMPONENTS --
4 -- --
5 -- T R E E P R S --
6 -- --
7 -- S p e c --
8 -- --
9 -- Generated by xtreeprs revision using --
10 -- sinfo.ads revision 1.439 --
11 -- treeprs.adt revision 1.17 --
12 -- --
13 -- Copyright (C) 1992-1997 Free Software Foundation, Inc. --
14 -- --
15 -- GNAT is free software; you can redistribute it and/or modify it under --
16 -- terms of the GNU General Public License as published by the Free Soft- --
17 -- ware Foundation; either version 2, or (at your option) any later ver- --
18 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
19 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
20 -- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
21 -- for more details. You should have received a copy of the GNU General --
22 -- Public License distributed with GNAT; see file COPYING. If not, write --
23 -- to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, --
24 -- MA 02111-1307, USA. --
25 -- --
26 -- GNAT was originally developed by the GNAT team at New York University. --
27 -- Extensive contributions were provided by Ada Core Technologies Inc. --
28 -- --
29 ------------------------------------------------------------------------------
32 -- This package contains the declaration of the string used by the Tree_Print
33 -- package. It must be updated whenever the arrangements of the field names
34 -- in package Sinfo is changed. The utility program XTREEPRS is used to
35 -- do this update correctly using the template treeprs.adt as input.
37 with Sinfo; use Sinfo;
39 package Treeprs is
41 --------------------------------
42 -- String Data for Node Print --
43 --------------------------------
45 -- String data for print out. The Pchars array is a long string with the
46 -- the entry for each node type consisting of a single blank, followed by
47 -- a series of entries, one for each Op or Flag field used for the node.
48 -- Each entry has a single character which identifies the field, followed
49 -- by the synonym name. The starting location for a given node type is
50 -- found from the corresponding entry in the Pchars_Pos_Array.
52 -- The following characters identify the field. These are characters
53 -- which could never occur in a field name, so they also mark the
54 -- end of the previous name.
56 subtype Fchar is Character range '#' .. '9';
58 F_Field1 : constant Fchar := '#'; -- Character'Val (16#23#)
59 F_Field2 : constant Fchar := '$'; -- Character'Val (16#24#)
60 F_Field3 : constant Fchar := '%'; -- Character'Val (16#25#)
61 F_Field4 : constant Fchar := '&'; -- Character'Val (16#26#)
62 F_Field5 : constant Fchar := '''; -- Character'Val (16#27#)
63 F_Flag1 : constant Fchar := '('; -- Character'Val (16#28#)
64 F_Flag2 : constant Fchar := ')'; -- Character'Val (16#29#)
65 F_Flag3 : constant Fchar := '*'; -- Character'Val (16#2A#)
66 F_Flag4 : constant Fchar := '+'; -- Character'Val (16#2B#)
67 F_Flag5 : constant Fchar := ','; -- Character'Val (16#2C#)
68 F_Flag6 : constant Fchar := '-'; -- Character'Val (16#2D#)
69 F_Flag7 : constant Fchar := '.'; -- Character'Val (16#2E#)
70 F_Flag8 : constant Fchar := '/'; -- Character'Val (16#2F#)
71 F_Flag9 : constant Fchar := '0'; -- Character'Val (16#30#)
72 F_Flag10 : constant Fchar := '1'; -- Character'Val (16#31#)
73 F_Flag11 : constant Fchar := '2'; -- Character'Val (16#32#)
74 F_Flag12 : constant Fchar := '3'; -- Character'Val (16#33#)
75 F_Flag13 : constant Fchar := '4'; -- Character'Val (16#34#)
76 F_Flag14 : constant Fchar := '5'; -- Character'Val (16#35#)
77 F_Flag15 : constant Fchar := '6'; -- Character'Val (16#36#)
78 F_Flag16 : constant Fchar := '7'; -- Character'Val (16#37#)
79 F_Flag17 : constant Fchar := '8'; -- Character'Val (16#38#)
80 F_Flag18 : constant Fchar := '9'; -- Character'Val (16#39#)
82 -- Note this table does not include entity field and flags whose access
83 -- functions are in Einfo (these are handled by the Print_Entity_Info
84 -- procedure in Treepr, which uses the routines in Einfo to get the
85 -- proper symbolic information). In addition, the following fields are
86 -- handled by Treepr, and do not appear in the Pchars array:
88 -- Analyzed
89 -- Cannot_Be_Constant
90 -- Chars
91 -- Comes_From_Source
92 -- Error_Posted
93 -- Etype
94 -- Is_Controlling_Actual
95 -- Is_Overloaded
96 -- Is_Static_Expression
97 -- Left_Opnd
98 -- Must_Check_Expr
99 -- Must_Not_Freeze
100 -- No_Overflow_Expr
101 -- Paren_Count
102 -- Raises_Constraint_Error
103 -- Right_Opnd
105 Pchars : constant String :=
106 -- Unused_At_Start
107 "" &
108 -- At_Clause
109 "#Identifier%Expression" &
110 -- Component_Clause
111 "#Component_Name$Position%First_Bit&Last_Bit" &
112 -- Enumeration_Representation_Clause
113 "#Identifier%Array_Aggregate&Next_Rep_Item" &
114 -- Mod_Clause
115 "%Expression&Pragmas_Before" &
116 -- Record_Representation_Clause
117 "#Identifier$Mod_Clause%Component_Clauses&Next_Rep_Item" &
118 -- Attribute_Definition_Clause
119 "$Name%Expression&Next_Rep_Item+From_At_Mod" &
120 -- Empty
121 "" &
122 -- Pragma
123 "$Pragma_Argument_Associations%Debug_Statement&Next_Rep_Item" &
124 -- Pragma_Argument_Association
125 "%Expression" &
126 -- Error
127 "" &
128 -- Defining_Character_Literal
129 "$Next_Entity%Scope" &
130 -- Defining_Identifier
131 "$Next_Entity%Scope" &
132 -- Defining_Operator_Symbol
133 "$Next_Entity%Scope" &
134 -- Expanded_Name
135 "%Prefix$Selector_Name&Entity&Associated_Node4Redundant_Use2Has_Privat" &
136 "e_View" &
137 -- Identifier
138 "&Entity&Associated_Node$Original_Discriminant4Redundant_Use2Has_Priva" &
139 "te_View" &
140 -- Operator_Symbol
141 "%Strval&Entity&Associated_Node2Has_Private_View" &
142 -- Character_Literal
143 "$Char_Literal_Value&Entity&Associated_Node2Has_Private_View" &
144 -- Op_Add
145 "" &
146 -- Op_Concat
147 "4Is_Component_Left_Opnd5Is_Component_Right_Opnd" &
148 -- Op_Divide
149 "5Treat_Fixed_As_Integer4Do_Division_Check9Rounded_Result" &
150 -- Op_Expon
151 "4Is_Power_Of_2_For_Shift" &
152 -- Op_Mod
153 "5Treat_Fixed_As_Integer4Do_Division_Check" &
154 -- Op_Multiply
155 "5Treat_Fixed_As_Integer9Rounded_Result" &
156 -- Op_Rem
157 "5Treat_Fixed_As_Integer4Do_Division_Check" &
158 -- Op_Subtract
159 "" &
160 -- Op_And
161 "+Do_Length_Check" &
162 -- Op_Eq
163 "" &
164 -- Op_Ge
165 "" &
166 -- Op_Gt
167 "" &
168 -- Op_Le
169 "" &
170 -- Op_Lt
171 "" &
172 -- Op_Ne
173 "" &
174 -- Op_Or
175 "+Do_Length_Check" &
176 -- Op_Xor
177 "+Do_Length_Check" &
178 -- Op_Rotate_Left
179 "+Shift_Count_OK" &
180 -- Op_Rotate_Right
181 "+Shift_Count_OK" &
182 -- Op_Shift_Left
183 "+Shift_Count_OK" &
184 -- Op_Shift_Right
185 "+Shift_Count_OK" &
186 -- Op_Shift_Right_Arithmetic
187 "+Shift_Count_OK" &
188 -- Op_Abs
189 "" &
190 -- Op_Minus
191 "" &
192 -- Op_Not
193 "" &
194 -- Op_Plus
195 "" &
196 -- Attribute_Reference
197 "%Prefix$Attribute_Name#Expressions&Entity&Associated_Node2Do_Access_C" &
198 "heck8Do_Overflow_Check4Redundant_Use+OK_For_Stream5Must_Be_Byte_Al" &
199 "igned" &
200 -- And_Then
201 "#Actions" &
202 -- Conditional_Expression
203 "#Expressions$Then_Actions%Else_Actions" &
204 -- Explicit_Dereference
205 "%Prefix2Do_Access_Check" &
206 -- Function_Call
207 "$Name%Parameter_Associations&First_Named_Actual#Controlling_Argument4" &
208 "Do_Tag_Check8Parameter_List_Truncated9ABE_Is_Certain" &
209 -- In
210 "" &
211 -- Indexed_Component
212 "%Prefix#Expressions2Do_Access_Check" &
213 -- Integer_Literal
214 "%Intval4Print_In_Hex" &
215 -- Not_In
216 "" &
217 -- Null
218 "" &
219 -- Or_Else
220 "#Actions" &
221 -- Procedure_Call_Statement
222 "$Name%Parameter_Associations&First_Named_Actual#Controlling_Argument4" &
223 "Do_Tag_Check8Parameter_List_Truncated9ABE_Is_Certain" &
224 -- Qualified_Expression
225 "&Subtype_Mark%Expression" &
226 -- Raise_Constraint_Error
227 "#Condition%Reason" &
228 -- Raise_Program_Error
229 "#Condition%Reason" &
230 -- Raise_Storage_Error
231 "#Condition%Reason" &
232 -- Aggregate
233 "#Expressions$Component_Associations8Null_Record_Present%Aggregate_Bou" &
234 "nds&Associated_Node+Static_Processing_OK9Compile_Time_Known_Aggreg" &
235 "ate2Expansion_Delayed" &
236 -- Allocator
237 "%Expression#Storage_Pool&Procedure_To_Call4No_Initialization8Do_Stora" &
238 "ge_Check" &
239 -- Extension_Aggregate
240 "%Ancestor_Part&Associated_Node#Expressions$Component_Associations8Nul" &
241 "l_Record_Present2Expansion_Delayed" &
242 -- Range
243 "#Low_Bound$High_Bound2Includes_Infinities" &
244 -- Real_Literal
245 "%Realval&Corresponding_Integer_Value2Is_Machine_Number" &
246 -- Reference
247 "%Prefix" &
248 -- Selected_Component
249 "%Prefix$Selector_Name&Associated_Node2Do_Access_Check4Do_Discriminant" &
250 "_Check" &
251 -- Slice
252 "%Prefix&Discrete_Range2Do_Access_Check" &
253 -- String_Literal
254 "%Strval2Has_Wide_Character" &
255 -- Subprogram_Info
256 "#Identifier" &
257 -- Type_Conversion
258 "&Subtype_Mark%Expression8Do_Overflow_Check4Do_Tag_Check+Do_Length_Che" &
259 "ck2Float_Truncate9Rounded_Result5Conversion_OK" &
260 -- Unchecked_Expression
261 "%Expression" &
262 -- Unchecked_Type_Conversion
263 "&Subtype_Mark%Expression2Kill_Range_Check" &
264 -- Subtype_Indication
265 "&Subtype_Mark%Constraint/Must_Not_Freeze" &
266 -- Component_Declaration
267 "#Defining_Identifier+Aliased_Present'Subtype_Indication%Expression,Mo" &
268 "re_Ids-Prev_Ids" &
269 -- Entry_Declaration
270 "#Defining_Identifier&Discrete_Subtype_Definition%Parameter_Specificat" &
271 "ions" &
272 -- Formal_Object_Declaration
273 "#Defining_Identifier6In_Present8Out_Present&Subtype_Mark%Expression,M" &
274 "ore_Ids-Prev_Ids" &
275 -- Formal_Type_Declaration
276 "#Defining_Identifier%Formal_Type_Definition&Discriminant_Specificatio" &
277 "ns4Unknown_Discriminants_Present" &
278 -- Full_Type_Declaration
279 "#Defining_Identifier&Discriminant_Specifications%Type_Definition2Disc" &
280 "r_Check_Funcs_Built" &
281 -- Incomplete_Type_Declaration
282 "#Defining_Identifier&Discriminant_Specifications4Unknown_Discriminant" &
283 "s_Present" &
284 -- Loop_Parameter_Specification
285 "#Defining_Identifier6Reverse_Present&Discrete_Subtype_Definition" &
286 -- Object_Declaration
287 "#Defining_Identifier+Aliased_Present8Constant_Present&Object_Definiti" &
288 "on%Expression$Handler_List_Entry'Corresponding_Generic_Association" &
289 ",More_Ids-Prev_Ids4No_Initialization6Assignment_OK2Exception_Junk5" &
290 "Delay_Finalize_Attach7Is_Subprogram_Descriptor" &
291 -- Protected_Type_Declaration
292 "#Defining_Identifier&Discriminant_Specifications%Protected_Definition" &
293 "'Corresponding_Body" &
294 -- Private_Extension_Declaration
295 "#Defining_Identifier&Discriminant_Specifications4Unknown_Discriminant" &
296 "s_Present+Abstract_Present'Subtype_Indication" &
297 -- Private_Type_Declaration
298 "#Defining_Identifier&Discriminant_Specifications4Unknown_Discriminant" &
299 "s_Present+Abstract_Present6Tagged_Present8Limited_Present" &
300 -- Subtype_Declaration
301 "#Defining_Identifier'Subtype_Indication&Generic_Parent_Type2Exception" &
302 "_Junk" &
303 -- Function_Specification
304 "#Defining_Unit_Name$Elaboration_Boolean%Parameter_Specifications&Subt" &
305 "ype_Mark'Generic_Parent" &
306 -- Procedure_Specification
307 "#Defining_Unit_Name$Elaboration_Boolean%Parameter_Specifications'Gene" &
308 "ric_Parent" &
309 -- Entry_Index_Specification
310 "#Defining_Identifier&Discrete_Subtype_Definition" &
311 -- Freeze_Entity
312 "&Entity$Access_Types_To_Process%TSS_Elist#Actions'First_Subtype_Link" &
313 -- Access_Function_Definition
314 "6Protected_Present%Parameter_Specifications&Subtype_Mark" &
315 -- Access_Procedure_Definition
316 "6Protected_Present%Parameter_Specifications" &
317 -- Task_Type_Declaration
318 "#Defining_Identifier$Task_Body_Procedure&Discriminant_Specifications%" &
319 "Task_Definition'Corresponding_Body" &
320 -- Package_Body_Stub
321 "#Defining_Identifier&Library_Unit'Corresponding_Body" &
322 -- Protected_Body_Stub
323 "#Defining_Identifier&Library_Unit'Corresponding_Body" &
324 -- Subprogram_Body_Stub
325 "#Specification&Library_Unit'Corresponding_Body" &
326 -- Task_Body_Stub
327 "#Defining_Identifier&Library_Unit'Corresponding_Body" &
328 -- Function_Instantiation
329 "#Defining_Unit_Name$Name%Generic_Associations&Parent_Spec'Instance_Sp" &
330 "ec9ABE_Is_Certain" &
331 -- Package_Instantiation
332 "#Defining_Unit_Name$Name%Generic_Associations&Parent_Spec'Instance_Sp" &
333 "ec9ABE_Is_Certain" &
334 -- Procedure_Instantiation
335 "#Defining_Unit_Name$Name&Parent_Spec%Generic_Associations'Instance_Sp" &
336 "ec9ABE_Is_Certain" &
337 -- Package_Body
338 "#Defining_Unit_Name$Declarations&Handled_Statement_Sequence'Correspon" &
339 "ding_Spec4Was_Originally_Stub" &
340 -- Subprogram_Body
341 "#Specification$Declarations&Handled_Statement_Sequence%Activation_Cha" &
342 "in_Entity'Corresponding_Spec+Acts_As_Spec6Bad_Is_Detected8Do_Stora" &
343 "ge_Check-Has_Priority_Pragma.Is_Protected_Subprogram_Body,Is_Task_" &
344 "Master4Was_Originally_Stub" &
345 -- Protected_Body
346 "#Defining_Identifier$Declarations&End_Label'Corresponding_Spec4Was_Or" &
347 "iginally_Stub" &
348 -- Task_Body
349 "#Defining_Identifier$Declarations&Handled_Statement_Sequence,Is_Task_" &
350 "Master%Activation_Chain_Entity'Corresponding_Spec4Was_Originally_S" &
351 "tub" &
352 -- Implicit_Label_Declaration
353 "#Defining_Identifier$Label_Construct" &
354 -- Package_Declaration
355 "#Specification'Corresponding_Body&Parent_Spec%Activation_Chain_Entity" &
356 -- Single_Task_Declaration
357 "#Defining_Identifier%Task_Definition" &
358 -- Subprogram_Declaration
359 "#Specification%Body_To_Inline'Corresponding_Body&Parent_Spec" &
360 -- Use_Package_Clause
361 "$Names%Next_Use_Clause&Hidden_By_Use_Clause" &
362 -- Generic_Package_Declaration
363 "#Specification'Corresponding_Body$Generic_Formal_Declarations&Parent_" &
364 "Spec%Activation_Chain_Entity" &
365 -- Generic_Subprogram_Declaration
366 "#Specification'Corresponding_Body$Generic_Formal_Declarations&Parent_" &
367 "Spec" &
368 -- Constrained_Array_Definition
369 "$Discrete_Subtype_Definitions+Aliased_Present'Subtype_Indication" &
370 -- Unconstrained_Array_Definition
371 "$Subtype_Marks+Aliased_Present'Subtype_Indication" &
372 -- Exception_Renaming_Declaration
373 "#Defining_Identifier$Name" &
374 -- Object_Renaming_Declaration
375 "#Defining_Identifier&Subtype_Mark$Name'Corresponding_Generic_Associat" &
376 "ion" &
377 -- Package_Renaming_Declaration
378 "#Defining_Unit_Name$Name&Parent_Spec" &
379 -- Subprogram_Renaming_Declaration
380 "#Specification$Name&Parent_Spec'Corresponding_Spec" &
381 -- Generic_Function_Renaming_Declaration
382 "#Defining_Unit_Name$Name&Parent_Spec" &
383 -- Generic_Package_Renaming_Declaration
384 "#Defining_Unit_Name$Name&Parent_Spec" &
385 -- Generic_Procedure_Renaming_Declaration
386 "#Defining_Unit_Name$Name&Parent_Spec" &
387 -- Abort_Statement
388 "$Names" &
389 -- Accept_Statement
390 "#Entry_Direct_Name'Entry_Index%Parameter_Specifications&Handled_State" &
391 "ment_Sequence$Declarations" &
392 -- Assignment_Statement
393 "$Name%Expression4Do_Tag_Check+Do_Length_Check,Forwards_OK-Backwards_O" &
394 "K.No_Ctrl_Actions" &
395 -- Asynchronous_Select
396 "#Triggering_Alternative$Abortable_Part" &
397 -- Block_Statement
398 "#Identifier$Declarations&Handled_Statement_Sequence,Is_Task_Master%Ac" &
399 "tivation_Chain_Entity6Has_Created_Identifier-Is_Task_Allocation_Bl" &
400 "ock.Is_Asynchronous_Call_Block" &
401 -- Case_Statement
402 "%Expression&Alternatives'End_Span" &
403 -- Code_Statement
404 "%Expression" &
405 -- Conditional_Entry_Call
406 "#Entry_Call_Alternative&Else_Statements" &
407 -- Delay_Relative_Statement
408 "%Expression" &
409 -- Delay_Until_Statement
410 "%Expression" &
411 -- Entry_Call_Statement
412 "$Name%Parameter_Associations&First_Named_Actual" &
413 -- Free_Statement
414 "%Expression#Storage_Pool&Procedure_To_Call" &
415 -- Goto_Statement
416 "$Name2Exception_Junk" &
417 -- Loop_Statement
418 "#Identifier$Iteration_Scheme%Statements&End_Label6Has_Created_Identif" &
419 "ier" &
420 -- Null_Statement
421 "" &
422 -- Raise_Statement
423 "$Name" &
424 -- Requeue_Statement
425 "$Name6Abort_Present" &
426 -- Return_Statement
427 "%Expression#Storage_Pool&Procedure_To_Call4Do_Tag_Check$Return_Type,B" &
428 "y_Ref" &
429 -- Selective_Accept
430 "#Select_Alternatives&Else_Statements" &
431 -- Timed_Entry_Call
432 "#Entry_Call_Alternative&Delay_Alternative" &
433 -- Exit_Statement
434 "$Name#Condition" &
435 -- If_Statement
436 "#Condition$Then_Statements%Elsif_Parts&Else_Statements'End_Span" &
437 -- Accept_Alternative
438 "$Accept_Statement#Condition%Statements&Pragmas_Before'Accept_Handler_" &
439 "Records" &
440 -- Delay_Alternative
441 "$Delay_Statement#Condition%Statements&Pragmas_Before" &
442 -- Elsif_Part
443 "#Condition$Then_Statements%Condition_Actions" &
444 -- Entry_Body_Formal_Part
445 "&Entry_Index_Specification%Parameter_Specifications#Condition" &
446 -- Iteration_Scheme
447 "#Condition%Condition_Actions&Loop_Parameter_Specification" &
448 -- Terminate_Alternative
449 "#Condition&Pragmas_Before'Pragmas_After" &
450 -- Abortable_Part
451 "%Statements" &
452 -- Abstract_Subprogram_Declaration
453 "#Specification" &
454 -- Access_Definition
455 "&Subtype_Mark" &
456 -- Access_To_Object_Definition
457 "6All_Present'Subtype_Indication8Constant_Present" &
458 -- Case_Statement_Alternative
459 "&Discrete_Choices%Statements" &
460 -- Compilation_Unit
461 "&Library_Unit#Context_Items6Private_Present$Unit'Aux_Decls_Node8Has_N" &
462 "o_Elaboration_Code4Body_Required+Acts_As_Spec%First_Inlined_Subpro" &
463 "gram" &
464 -- Compilation_Unit_Aux
465 "$Declarations#Actions'Pragmas_After" &
466 -- Component_Association
467 "#Choices$Loop_Actions%Expression" &
468 -- Component_List
469 "%Component_Items&Variant_Part4Null_Present" &
470 -- Derived_Type_Definition
471 "+Abstract_Present'Subtype_Indication%Record_Extension_Part" &
472 -- Decimal_Fixed_Point_Definition
473 "%Delta_Expression$Digits_Expression&Real_Range_Specification" &
474 -- Defining_Program_Unit_Name
475 "$Name#Defining_Identifier" &
476 -- Delta_Constraint
477 "%Delta_Expression&Range_Constraint" &
478 -- Designator
479 "$Name#Identifier" &
480 -- Digits_Constraint
481 "$Digits_Expression&Range_Constraint" &
482 -- Discriminant_Association
483 "#Selector_Names%Expression" &
484 -- Discriminant_Specification
485 "#Defining_Identifier'Discriminant_Type%Expression,More_Ids-Prev_Ids" &
486 -- Enumeration_Type_Definition
487 "#Literals&End_Label" &
488 -- Entry_Body
489 "#Defining_Identifier'Entry_Body_Formal_Part$Declarations&Handled_Stat" &
490 "ement_Sequence%Activation_Chain_Entity" &
491 -- Entry_Call_Alternative
492 "#Entry_Call_Statement%Statements&Pragmas_Before" &
493 -- Exception_Declaration
494 "#Defining_Identifier%Expression,More_Ids-Prev_Ids" &
495 -- Exception_Handler
496 "$Choice_Parameter&Exception_Choices%Statements,Zero_Cost_Handling" &
497 -- Floating_Point_Definition
498 "$Digits_Expression&Real_Range_Specification" &
499 -- Formal_Decimal_Fixed_Point_Definition
500 "" &
501 -- Formal_Derived_Type_Definition
502 "&Subtype_Mark6Private_Present+Abstract_Present" &
503 -- Formal_Discrete_Type_Definition
504 "" &
505 -- Formal_Floating_Point_Definition
506 "" &
507 -- Formal_Modular_Type_Definition
508 "" &
509 -- Formal_Ordinary_Fixed_Point_Definition
510 "" &
511 -- Formal_Package_Declaration
512 "#Defining_Identifier$Name%Generic_Associations6Box_Present'Instance_S" &
513 "pec9ABE_Is_Certain" &
514 -- Formal_Private_Type_Definition
515 "+Abstract_Present6Tagged_Present8Limited_Present" &
516 -- Formal_Signed_Integer_Type_Definition
517 "" &
518 -- Formal_Subprogram_Declaration
519 "#Specification$Default_Name6Box_Present" &
520 -- Generic_Association
521 "$Selector_Name#Explicit_Generic_Actual_Parameter" &
522 -- Handled_Sequence_Of_Statements
523 "%Statements&End_Label'Exception_Handlers#At_End_Proc$First_Real_State" &
524 "ment,Zero_Cost_Handling" &
525 -- Index_Or_Discriminant_Constraint
526 "#Constraints" &
527 -- Itype_Reference
528 "#Itype" &
529 -- Label
530 "#Identifier2Exception_Junk" &
531 -- Modular_Type_Definition
532 "%Expression" &
533 -- Number_Declaration
534 "#Defining_Identifier%Expression,More_Ids-Prev_Ids" &
535 -- Ordinary_Fixed_Point_Definition
536 "%Delta_Expression&Real_Range_Specification" &
537 -- Others_Choice
538 "#Others_Discrete_Choices2All_Others" &
539 -- Package_Specification
540 "#Defining_Unit_Name$Visible_Declarations%Private_Declarations&End_Lab" &
541 "el'Generic_Parent" &
542 -- Parameter_Association
543 "$Selector_Name%Explicit_Actual_Parameter&Next_Named_Actual" &
544 -- Parameter_Specification
545 "#Defining_Identifier6In_Present8Out_Present$Parameter_Type%Expression" &
546 "4Do_Accessibility_Check,More_Ids-Prev_Ids'Default_Expression" &
547 -- Protected_Definition
548 "$Visible_Declarations%Private_Declarations&End_Label-Has_Priority_Pra" &
549 "gma" &
550 -- Range_Constraint
551 "&Range_Expression" &
552 -- Real_Range_Specification
553 "#Low_Bound$High_Bound" &
554 -- Record_Definition
555 "&End_Label+Abstract_Present6Tagged_Present8Limited_Present#Component_" &
556 "List4Null_Present" &
557 -- Signed_Integer_Type_Definition
558 "#Low_Bound$High_Bound" &
559 -- Single_Protected_Declaration
560 "#Defining_Identifier%Protected_Definition" &
561 -- Subunit
562 "$Name#Proper_Body%Corresponding_Stub" &
563 -- Task_Definition
564 "$Visible_Declarations%Private_Declarations&End_Label-Has_Priority_Pra" &
565 "gma,Has_Storage_Size_Pragma.Has_Task_Info_Pragma/Has_Task_Name_Pra" &
566 "gma" &
567 -- Triggering_Alternative
568 "#Triggering_Statement%Statements&Pragmas_Before" &
569 -- Use_Type_Clause
570 "$Subtype_Marks%Next_Use_Clause&Hidden_By_Use_Clause" &
571 -- Validate_Unchecked_Conversion
572 "#Source_Type$Target_Type" &
573 -- Variant
574 "&Discrete_Choices#Component_List$Enclosing_Variant%Present_Expr'Dchec" &
575 "k_Function" &
576 -- Variant_Part
577 "$Name#Variants" &
578 -- With_Clause
579 "$Name&Library_Unit'Corresponding_Spec,First_Name-Last_Name4Context_In" &
580 "stalled+Elaborate_Present6Elaborate_All_Present8Implicit_With.Unre" &
581 "ferenced_In_Spec/No_Entities_Ref_In_Spec" &
582 -- With_Type_Clause
583 "$Name6Tagged_Present" &
584 -- Unused_At_End
587 type Pchar_Pos_Array is array (Node_Kind) of Positive;
588 Pchar_Pos : constant Pchar_Pos_Array := Pchar_Pos_Array'(
589 N_Unused_At_Start => 1,
590 N_At_Clause => 1,
591 N_Component_Clause => 23,
592 N_Enumeration_Representation_Clause => 66,
593 N_Mod_Clause => 107,
594 N_Record_Representation_Clause => 133,
595 N_Attribute_Definition_Clause => 187,
596 N_Empty => 229,
597 N_Pragma => 229,
598 N_Pragma_Argument_Association => 288,
599 N_Error => 299,
600 N_Defining_Character_Literal => 299,
601 N_Defining_Identifier => 317,
602 N_Defining_Operator_Symbol => 335,
603 N_Expanded_Name => 353,
604 N_Identifier => 428,
605 N_Operator_Symbol => 504,
606 N_Character_Literal => 551,
607 N_Op_Add => 610,
608 N_Op_Concat => 610,
609 N_Op_Divide => 657,
610 N_Op_Expon => 713,
611 N_Op_Mod => 737,
612 N_Op_Multiply => 778,
613 N_Op_Rem => 816,
614 N_Op_Subtract => 857,
615 N_Op_And => 857,
616 N_Op_Eq => 873,
617 N_Op_Ge => 873,
618 N_Op_Gt => 873,
619 N_Op_Le => 873,
620 N_Op_Lt => 873,
621 N_Op_Ne => 873,
622 N_Op_Or => 873,
623 N_Op_Xor => 889,
624 N_Op_Rotate_Left => 905,
625 N_Op_Rotate_Right => 920,
626 N_Op_Shift_Left => 935,
627 N_Op_Shift_Right => 950,
628 N_Op_Shift_Right_Arithmetic => 965,
629 N_Op_Abs => 980,
630 N_Op_Minus => 980,
631 N_Op_Not => 980,
632 N_Op_Plus => 980,
633 N_Attribute_Reference => 980,
634 N_And_Then => 1120,
635 N_Conditional_Expression => 1128,
636 N_Explicit_Dereference => 1166,
637 N_Function_Call => 1189,
638 N_In => 1310,
639 N_Indexed_Component => 1310,
640 N_Integer_Literal => 1345,
641 N_Not_In => 1365,
642 N_Null => 1365,
643 N_Or_Else => 1365,
644 N_Procedure_Call_Statement => 1373,
645 N_Qualified_Expression => 1494,
646 N_Raise_Constraint_Error => 1518,
647 N_Raise_Program_Error => 1535,
648 N_Raise_Storage_Error => 1552,
649 N_Aggregate => 1569,
650 N_Allocator => 1725,
651 N_Extension_Aggregate => 1802,
652 N_Range => 1905,
653 N_Real_Literal => 1946,
654 N_Reference => 2000,
655 N_Selected_Component => 2007,
656 N_Slice => 2082,
657 N_String_Literal => 2120,
658 N_Subprogram_Info => 2146,
659 N_Type_Conversion => 2157,
660 N_Unchecked_Expression => 2272,
661 N_Unchecked_Type_Conversion => 2283,
662 N_Subtype_Indication => 2324,
663 N_Component_Declaration => 2364,
664 N_Entry_Declaration => 2448,
665 N_Formal_Object_Declaration => 2521,
666 N_Formal_Type_Declaration => 2606,
667 N_Full_Type_Declaration => 2707,
668 N_Incomplete_Type_Declaration => 2795,
669 N_Loop_Parameter_Specification => 2873,
670 N_Object_Declaration => 2937,
671 N_Protected_Type_Declaration => 3184,
672 N_Private_Extension_Declaration => 3272,
673 N_Private_Type_Declaration => 3386,
674 N_Subtype_Declaration => 3512,
675 N_Function_Specification => 3586,
676 N_Procedure_Specification => 3678,
677 N_Entry_Index_Specification => 3757,
678 N_Freeze_Entity => 3805,
679 N_Access_Function_Definition => 3873,
680 N_Access_Procedure_Definition => 3929,
681 N_Task_Type_Declaration => 3972,
682 N_Package_Body_Stub => 4075,
683 N_Protected_Body_Stub => 4127,
684 N_Subprogram_Body_Stub => 4179,
685 N_Task_Body_Stub => 4225,
686 N_Function_Instantiation => 4277,
687 N_Package_Instantiation => 4363,
688 N_Procedure_Instantiation => 4449,
689 N_Package_Body => 4535,
690 N_Subprogram_Body => 4633,
691 N_Protected_Body => 4860,
692 N_Task_Body => 4942,
693 N_Implicit_Label_Declaration => 5080,
694 N_Package_Declaration => 5116,
695 N_Single_Task_Declaration => 5185,
696 N_Subprogram_Declaration => 5221,
697 N_Use_Package_Clause => 5281,
698 N_Generic_Package_Declaration => 5324,
699 N_Generic_Subprogram_Declaration => 5421,
700 N_Constrained_Array_Definition => 5494,
701 N_Unconstrained_Array_Definition => 5558,
702 N_Exception_Renaming_Declaration => 5607,
703 N_Object_Renaming_Declaration => 5632,
704 N_Package_Renaming_Declaration => 5704,
705 N_Subprogram_Renaming_Declaration => 5740,
706 N_Generic_Function_Renaming_Declaration => 5790,
707 N_Generic_Package_Renaming_Declaration => 5826,
708 N_Generic_Procedure_Renaming_Declaration => 5862,
709 N_Abort_Statement => 5898,
710 N_Accept_Statement => 5904,
711 N_Assignment_Statement => 5999,
712 N_Asynchronous_Select => 6085,
713 N_Block_Statement => 6123,
714 N_Case_Statement => 6288,
715 N_Code_Statement => 6321,
716 N_Conditional_Entry_Call => 6332,
717 N_Delay_Relative_Statement => 6371,
718 N_Delay_Until_Statement => 6382,
719 N_Entry_Call_Statement => 6393,
720 N_Free_Statement => 6440,
721 N_Goto_Statement => 6482,
722 N_Loop_Statement => 6502,
723 N_Null_Statement => 6574,
724 N_Raise_Statement => 6574,
725 N_Requeue_Statement => 6579,
726 N_Return_Statement => 6598,
727 N_Selective_Accept => 6672,
728 N_Timed_Entry_Call => 6708,
729 N_Exit_Statement => 6749,
730 N_If_Statement => 6764,
731 N_Accept_Alternative => 6827,
732 N_Delay_Alternative => 6903,
733 N_Elsif_Part => 6955,
734 N_Entry_Body_Formal_Part => 6999,
735 N_Iteration_Scheme => 7060,
736 N_Terminate_Alternative => 7117,
737 N_Abortable_Part => 7156,
738 N_Abstract_Subprogram_Declaration => 7167,
739 N_Access_Definition => 7181,
740 N_Access_To_Object_Definition => 7194,
741 N_Case_Statement_Alternative => 7242,
742 N_Compilation_Unit => 7270,
743 N_Compilation_Unit_Aux => 7409,
744 N_Component_Association => 7444,
745 N_Component_List => 7476,
746 N_Derived_Type_Definition => 7518,
747 N_Decimal_Fixed_Point_Definition => 7576,
748 N_Defining_Program_Unit_Name => 7636,
749 N_Delta_Constraint => 7661,
750 N_Designator => 7695,
751 N_Digits_Constraint => 7711,
752 N_Discriminant_Association => 7746,
753 N_Discriminant_Specification => 7772,
754 N_Enumeration_Type_Definition => 7839,
755 N_Entry_Body => 7858,
756 N_Entry_Call_Alternative => 7965,
757 N_Exception_Declaration => 8012,
758 N_Exception_Handler => 8061,
759 N_Floating_Point_Definition => 8126,
760 N_Formal_Decimal_Fixed_Point_Definition => 8169,
761 N_Formal_Derived_Type_Definition => 8169,
762 N_Formal_Discrete_Type_Definition => 8215,
763 N_Formal_Floating_Point_Definition => 8215,
764 N_Formal_Modular_Type_Definition => 8215,
765 N_Formal_Ordinary_Fixed_Point_Definition => 8215,
766 N_Formal_Package_Declaration => 8215,
767 N_Formal_Private_Type_Definition => 8302,
768 N_Formal_Signed_Integer_Type_Definition => 8350,
769 N_Formal_Subprogram_Declaration => 8350,
770 N_Generic_Association => 8389,
771 N_Handled_Sequence_Of_Statements => 8437,
772 N_Index_Or_Discriminant_Constraint => 8529,
773 N_Itype_Reference => 8541,
774 N_Label => 8547,
775 N_Modular_Type_Definition => 8573,
776 N_Number_Declaration => 8584,
777 N_Ordinary_Fixed_Point_Definition => 8633,
778 N_Others_Choice => 8675,
779 N_Package_Specification => 8710,
780 N_Parameter_Association => 8796,
781 N_Parameter_Specification => 8854,
782 N_Protected_Definition => 8983,
783 N_Range_Constraint => 9055,
784 N_Real_Range_Specification => 9072,
785 N_Record_Definition => 9093,
786 N_Signed_Integer_Type_Definition => 9179,
787 N_Single_Protected_Declaration => 9200,
788 N_Subunit => 9241,
789 N_Task_Definition => 9277,
790 N_Triggering_Alternative => 9415,
791 N_Use_Type_Clause => 9462,
792 N_Validate_Unchecked_Conversion => 9513,
793 N_Variant => 9537,
794 N_Variant_Part => 9616,
795 N_With_Clause => 9630,
796 N_With_Type_Clause => 9805,
797 N_Unused_At_End => 9825);
799 end Treeprs;