* c-decl.c (duplicate_decls): Conditionalize DECL_SAVED_TREE copy.
[official-gcc.git] / gcc / ada / treeprs.ads
blob3e9ac81ecda92b0b31994c308f9fd8c719e05a6f
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 1.1 using --
10 -- sinfo.ads revision 1.2 --
11 -- treeprs.adt revision 1.1 --
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 -- It is now maintained by Ada Core Technologies Inc (http://www.gnat.com). --
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&Entity4Redundant_Use2Has_Private_View" &
136 -- Identifier
137 "&Entity$Original_Discriminant4Redundant_Use2Has_Private_View" &
138 -- Operator_Symbol
139 "%Strval&Entity2Has_Private_View" &
140 -- Character_Literal
141 "$Char_Literal_Value&Entity2Has_Private_View" &
142 -- Op_Add
143 "" &
144 -- Op_Concat
145 "4Is_Component_Left_Opnd5Is_Component_Right_Opnd" &
146 -- Op_Divide
147 "5Treat_Fixed_As_Integer4Do_Division_Check9Rounded_Result" &
148 -- Op_Expon
149 "4Is_Power_Of_2_For_Shift" &
150 -- Op_Mod
151 "5Treat_Fixed_As_Integer4Do_Division_Check" &
152 -- Op_Multiply
153 "5Treat_Fixed_As_Integer9Rounded_Result" &
154 -- Op_Rem
155 "5Treat_Fixed_As_Integer4Do_Division_Check" &
156 -- Op_Subtract
157 "" &
158 -- Op_And
159 "+Do_Length_Check" &
160 -- Op_Eq
161 "" &
162 -- Op_Ge
163 "" &
164 -- Op_Gt
165 "" &
166 -- Op_Le
167 "" &
168 -- Op_Lt
169 "" &
170 -- Op_Ne
171 "" &
172 -- Op_Or
173 "+Do_Length_Check" &
174 -- Op_Xor
175 "+Do_Length_Check" &
176 -- Op_Rotate_Left
177 "+Shift_Count_OK" &
178 -- Op_Rotate_Right
179 "+Shift_Count_OK" &
180 -- Op_Shift_Left
181 "+Shift_Count_OK" &
182 -- Op_Shift_Right
183 "+Shift_Count_OK" &
184 -- Op_Shift_Right_Arithmetic
185 "+Shift_Count_OK" &
186 -- Op_Abs
187 "" &
188 -- Op_Minus
189 "" &
190 -- Op_Not
191 "" &
192 -- Op_Plus
193 "" &
194 -- Attribute_Reference
195 "%Prefix$Attribute_Name#Expressions&Entity2Do_Access_Check8Do_Overflow" &
196 "_Check4Redundant_Use+OK_For_Stream" &
197 -- And_Then
198 "#Actions" &
199 -- Conditional_Expression
200 "#Expressions$Then_Actions%Else_Actions" &
201 -- Explicit_Dereference
202 "%Prefix2Do_Access_Check" &
203 -- Function_Call
204 "$Name%Parameter_Associations&First_Named_Actual#Controlling_Argument4" &
205 "Do_Tag_Check8Parameter_List_Truncated9ABE_Is_Certain" &
206 -- In
207 "" &
208 -- Indexed_Component
209 "%Prefix#Expressions2Do_Access_Check" &
210 -- Integer_Literal
211 "%Intval4Print_In_Hex" &
212 -- Not_In
213 "" &
214 -- Null
215 "" &
216 -- Or_Else
217 "#Actions" &
218 -- Procedure_Call_Statement
219 "$Name%Parameter_Associations&First_Named_Actual#Controlling_Argument4" &
220 "Do_Tag_Check8Parameter_List_Truncated9ABE_Is_Certain" &
221 -- Qualified_Expression
222 "&Subtype_Mark%Expression" &
223 -- Raise_Constraint_Error
224 "#Condition" &
225 -- Raise_Program_Error
226 "#Condition" &
227 -- Raise_Storage_Error
228 "#Condition" &
229 -- Aggregate
230 "#Expressions$Component_Associations8Null_Record_Present%Aggregate_Bou" &
231 "nds+Static_Processing_OK9Compile_Time_Known_Aggregate2Expansion_De" &
232 "layed" &
233 -- Allocator
234 "%Expression#Storage_Pool&Procedure_To_Call4No_Initialization8Do_Stora" &
235 "ge_Check" &
236 -- Extension_Aggregate
237 "%Ancestor_Part#Expressions$Component_Associations8Null_Record_Present" &
238 "2Expansion_Delayed" &
239 -- Range
240 "#Low_Bound$High_Bound2Includes_Infinities" &
241 -- Real_Literal
242 "%Realval&Corresponding_Integer_Value2Is_Machine_Number" &
243 -- Reference
244 "%Prefix" &
245 -- Selected_Component
246 "%Prefix$Selector_Name2Do_Access_Check4Do_Discriminant_Check" &
247 -- Slice
248 "%Prefix&Discrete_Range2Do_Access_Check" &
249 -- String_Literal
250 "%Strval2Has_Wide_Character" &
251 -- Subprogram_Info
252 "#Identifier" &
253 -- Type_Conversion
254 "&Subtype_Mark%Expression8Do_Overflow_Check4Do_Tag_Check+Do_Length_Che" &
255 "ck2Float_Truncate9Rounded_Result5Conversion_OK" &
256 -- Unchecked_Expression
257 "%Expression" &
258 -- Unchecked_Type_Conversion
259 "&Subtype_Mark%Expression2Kill_Range_Check" &
260 -- Subtype_Indication
261 "&Subtype_Mark%Constraint/Must_Not_Freeze" &
262 -- Component_Declaration
263 "#Defining_Identifier+Aliased_Present'Subtype_Indication%Expression,Mo" &
264 "re_Ids-Prev_Ids" &
265 -- Entry_Declaration
266 "#Defining_Identifier&Discrete_Subtype_Definition%Parameter_Specificat" &
267 "ions" &
268 -- Formal_Object_Declaration
269 "#Defining_Identifier6In_Present8Out_Present&Subtype_Mark%Expression,M" &
270 "ore_Ids-Prev_Ids" &
271 -- Formal_Type_Declaration
272 "#Defining_Identifier%Formal_Type_Definition&Discriminant_Specificatio" &
273 "ns4Unknown_Discriminants_Present" &
274 -- Full_Type_Declaration
275 "#Defining_Identifier&Discriminant_Specifications%Type_Definition2Disc" &
276 "r_Check_Funcs_Built" &
277 -- Incomplete_Type_Declaration
278 "#Defining_Identifier&Discriminant_Specifications4Unknown_Discriminant" &
279 "s_Present" &
280 -- Loop_Parameter_Specification
281 "#Defining_Identifier6Reverse_Present&Discrete_Subtype_Definition" &
282 -- Object_Declaration
283 "#Defining_Identifier+Aliased_Present8Constant_Present&Object_Definiti" &
284 "on%Expression$Handler_List_Entry'Corresponding_Generic_Association" &
285 ",More_Ids-Prev_Ids4No_Initialization6Assignment_OK2Exception_Junk5" &
286 "Delay_Finalize_Attach7Is_Subprogram_Descriptor" &
287 -- Protected_Type_Declaration
288 "#Defining_Identifier&Discriminant_Specifications%Protected_Definition" &
289 "'Corresponding_Body" &
290 -- Private_Extension_Declaration
291 "#Defining_Identifier&Discriminant_Specifications4Unknown_Discriminant" &
292 "s_Present+Abstract_Present'Subtype_Indication" &
293 -- Private_Type_Declaration
294 "#Defining_Identifier&Discriminant_Specifications4Unknown_Discriminant" &
295 "s_Present+Abstract_Present6Tagged_Present8Limited_Present" &
296 -- Subtype_Declaration
297 "#Defining_Identifier'Subtype_Indication&Generic_Parent_Type2Exception" &
298 "_Junk" &
299 -- Function_Specification
300 "#Defining_Unit_Name$Elaboration_Boolean%Parameter_Specifications&Subt" &
301 "ype_Mark'Generic_Parent" &
302 -- Procedure_Specification
303 "#Defining_Unit_Name$Elaboration_Boolean%Parameter_Specifications'Gene" &
304 "ric_Parent" &
305 -- Entry_Index_Specification
306 "#Defining_Identifier&Discrete_Subtype_Definition" &
307 -- Freeze_Entity
308 "&Entity$Access_Types_To_Process%TSS_Elist#Actions'First_Subtype_Link" &
309 -- Access_Function_Definition
310 "6Protected_Present%Parameter_Specifications&Subtype_Mark" &
311 -- Access_Procedure_Definition
312 "6Protected_Present%Parameter_Specifications" &
313 -- Task_Type_Declaration
314 "#Defining_Identifier$Task_Body_Procedure&Discriminant_Specifications%" &
315 "Task_Definition'Corresponding_Body" &
316 -- Package_Body_Stub
317 "#Defining_Identifier&Library_Unit'Corresponding_Body" &
318 -- Protected_Body_Stub
319 "#Defining_Identifier&Library_Unit'Corresponding_Body" &
320 -- Subprogram_Body_Stub
321 "#Specification&Library_Unit'Corresponding_Body" &
322 -- Task_Body_Stub
323 "#Defining_Identifier&Library_Unit'Corresponding_Body" &
324 -- Function_Instantiation
325 "#Defining_Unit_Name$Name%Generic_Associations&Parent_Spec'Instance_Sp" &
326 "ec9ABE_Is_Certain" &
327 -- Package_Instantiation
328 "#Defining_Unit_Name$Name%Generic_Associations&Parent_Spec'Instance_Sp" &
329 "ec9ABE_Is_Certain" &
330 -- Procedure_Instantiation
331 "#Defining_Unit_Name$Name&Parent_Spec%Generic_Associations'Instance_Sp" &
332 "ec9ABE_Is_Certain" &
333 -- Package_Body
334 "#Defining_Unit_Name$Declarations&Handled_Statement_Sequence'Correspon" &
335 "ding_Spec4Was_Originally_Stub" &
336 -- Subprogram_Body
337 "#Specification$Declarations&Handled_Statement_Sequence%Activation_Cha" &
338 "in_Entity'Corresponding_Spec+Acts_As_Spec6Bad_Is_Detected8Do_Stora" &
339 "ge_Check-Has_Priority_Pragma.Is_Protected_Subprogram_Body,Is_Task_" &
340 "Master4Was_Originally_Stub" &
341 -- Protected_Body
342 "#Defining_Identifier$Declarations&End_Label'Corresponding_Spec4Was_Or" &
343 "iginally_Stub" &
344 -- Task_Body
345 "#Defining_Identifier$Declarations&Handled_Statement_Sequence,Is_Task_" &
346 "Master%Activation_Chain_Entity'Corresponding_Spec4Was_Originally_S" &
347 "tub" &
348 -- Implicit_Label_Declaration
349 "#Defining_Identifier$Label_Construct" &
350 -- Package_Declaration
351 "#Specification'Corresponding_Body&Parent_Spec%Activation_Chain_Entity" &
352 -- Single_Task_Declaration
353 "#Defining_Identifier%Task_Definition" &
354 -- Subprogram_Declaration
355 "#Specification%Body_To_Inline'Corresponding_Body&Parent_Spec" &
356 -- Use_Package_Clause
357 "$Names%Next_Use_Clause&Hidden_By_Use_Clause" &
358 -- Generic_Package_Declaration
359 "#Specification'Corresponding_Body$Generic_Formal_Declarations&Parent_" &
360 "Spec%Activation_Chain_Entity" &
361 -- Generic_Subprogram_Declaration
362 "#Specification'Corresponding_Body$Generic_Formal_Declarations&Parent_" &
363 "Spec" &
364 -- Constrained_Array_Definition
365 "$Discrete_Subtype_Definitions+Aliased_Present'Subtype_Indication" &
366 -- Unconstrained_Array_Definition
367 "$Subtype_Marks+Aliased_Present'Subtype_Indication" &
368 -- Exception_Renaming_Declaration
369 "#Defining_Identifier$Name" &
370 -- Object_Renaming_Declaration
371 "#Defining_Identifier&Subtype_Mark$Name'Corresponding_Generic_Associat" &
372 "ion" &
373 -- Package_Renaming_Declaration
374 "#Defining_Unit_Name$Name&Parent_Spec" &
375 -- Subprogram_Renaming_Declaration
376 "#Specification$Name&Parent_Spec'Corresponding_Spec" &
377 -- Generic_Function_Renaming_Declaration
378 "#Defining_Unit_Name$Name&Parent_Spec" &
379 -- Generic_Package_Renaming_Declaration
380 "#Defining_Unit_Name$Name&Parent_Spec" &
381 -- Generic_Procedure_Renaming_Declaration
382 "#Defining_Unit_Name$Name&Parent_Spec" &
383 -- Abort_Statement
384 "$Names" &
385 -- Accept_Statement
386 "#Entry_Direct_Name'Entry_Index%Parameter_Specifications&Handled_State" &
387 "ment_Sequence$Declarations" &
388 -- Assignment_Statement
389 "$Name%Expression4Do_Tag_Check+Do_Length_Check,Forwards_OK-Backwards_O" &
390 "K.No_Ctrl_Actions" &
391 -- Asynchronous_Select
392 "#Triggering_Alternative$Abortable_Part" &
393 -- Block_Statement
394 "#Identifier$Declarations&Handled_Statement_Sequence,Is_Task_Master%Ac" &
395 "tivation_Chain_Entity6Has_Created_Identifier-Is_Task_Allocation_Bl" &
396 "ock.Is_Asynchronous_Call_Block" &
397 -- Case_Statement
398 "%Expression&Alternatives'End_Span" &
399 -- Code_Statement
400 "%Expression" &
401 -- Conditional_Entry_Call
402 "#Entry_Call_Alternative&Else_Statements" &
403 -- Delay_Relative_Statement
404 "%Expression" &
405 -- Delay_Until_Statement
406 "%Expression" &
407 -- Entry_Call_Statement
408 "$Name%Parameter_Associations&First_Named_Actual" &
409 -- Free_Statement
410 "%Expression#Storage_Pool&Procedure_To_Call" &
411 -- Goto_Statement
412 "$Name2Exception_Junk" &
413 -- Loop_Statement
414 "#Identifier$Iteration_Scheme%Statements&End_Label6Has_Created_Identif" &
415 "ier" &
416 -- Null_Statement
417 "" &
418 -- Raise_Statement
419 "$Name" &
420 -- Requeue_Statement
421 "$Name6Abort_Present" &
422 -- Return_Statement
423 "%Expression#Storage_Pool&Procedure_To_Call4Do_Tag_Check$Return_Type,B" &
424 "y_Ref" &
425 -- Selective_Accept
426 "#Select_Alternatives&Else_Statements" &
427 -- Timed_Entry_Call
428 "#Entry_Call_Alternative&Delay_Alternative" &
429 -- Exit_Statement
430 "$Name#Condition" &
431 -- If_Statement
432 "#Condition$Then_Statements%Elsif_Parts&Else_Statements'End_Span" &
433 -- Accept_Alternative
434 "$Accept_Statement#Condition%Statements&Pragmas_Before'Accept_Handler_" &
435 "Records" &
436 -- Delay_Alternative
437 "$Delay_Statement#Condition%Statements&Pragmas_Before" &
438 -- Elsif_Part
439 "#Condition$Then_Statements%Condition_Actions" &
440 -- Entry_Body_Formal_Part
441 "&Entry_Index_Specification%Parameter_Specifications#Condition" &
442 -- Iteration_Scheme
443 "#Condition%Condition_Actions&Loop_Parameter_Specification" &
444 -- Terminate_Alternative
445 "#Condition&Pragmas_Before'Pragmas_After" &
446 -- Abortable_Part
447 "%Statements" &
448 -- Abstract_Subprogram_Declaration
449 "#Specification" &
450 -- Access_Definition
451 "&Subtype_Mark" &
452 -- Access_To_Object_Definition
453 "6All_Present'Subtype_Indication8Constant_Present" &
454 -- Case_Statement_Alternative
455 "&Discrete_Choices%Statements" &
456 -- Compilation_Unit
457 "&Library_Unit#Context_Items6Private_Present$Unit'Aux_Decls_Node8Has_N" &
458 "o_Elaboration_Code4Body_Required+Acts_As_Spec%First_Inlined_Subpro" &
459 "gram" &
460 -- Compilation_Unit_Aux
461 "$Declarations#Actions'Pragmas_After" &
462 -- Component_Association
463 "#Choices$Loop_Actions%Expression" &
464 -- Component_List
465 "%Component_Items&Variant_Part4Null_Present" &
466 -- Derived_Type_Definition
467 "+Abstract_Present'Subtype_Indication%Record_Extension_Part" &
468 -- Decimal_Fixed_Point_Definition
469 "%Delta_Expression$Digits_Expression&Real_Range_Specification" &
470 -- Defining_Program_Unit_Name
471 "$Name#Defining_Identifier" &
472 -- Delta_Constraint
473 "%Delta_Expression&Range_Constraint" &
474 -- Designator
475 "$Name#Identifier" &
476 -- Digits_Constraint
477 "$Digits_Expression&Range_Constraint" &
478 -- Discriminant_Association
479 "#Selector_Names%Expression" &
480 -- Discriminant_Specification
481 "#Defining_Identifier'Discriminant_Type%Expression,More_Ids-Prev_Ids" &
482 -- Enumeration_Type_Definition
483 "#Literals" &
484 -- Entry_Body
485 "#Defining_Identifier'Entry_Body_Formal_Part$Declarations&Handled_Stat" &
486 "ement_Sequence%Activation_Chain_Entity" &
487 -- Entry_Call_Alternative
488 "#Entry_Call_Statement%Statements&Pragmas_Before" &
489 -- Exception_Declaration
490 "#Defining_Identifier%Expression,More_Ids-Prev_Ids" &
491 -- Exception_Handler
492 "$Choice_Parameter&Exception_Choices%Statements,Zero_Cost_Handling" &
493 -- Floating_Point_Definition
494 "$Digits_Expression&Real_Range_Specification" &
495 -- Formal_Decimal_Fixed_Point_Definition
496 "" &
497 -- Formal_Derived_Type_Definition
498 "&Subtype_Mark6Private_Present+Abstract_Present" &
499 -- Formal_Discrete_Type_Definition
500 "" &
501 -- Formal_Floating_Point_Definition
502 "" &
503 -- Formal_Modular_Type_Definition
504 "" &
505 -- Formal_Ordinary_Fixed_Point_Definition
506 "" &
507 -- Formal_Package_Declaration
508 "#Defining_Identifier$Name%Generic_Associations6Box_Present'Instance_S" &
509 "pec9ABE_Is_Certain" &
510 -- Formal_Private_Type_Definition
511 "+Abstract_Present6Tagged_Present8Limited_Present" &
512 -- Formal_Signed_Integer_Type_Definition
513 "" &
514 -- Formal_Subprogram_Declaration
515 "#Specification$Default_Name6Box_Present" &
516 -- Generic_Association
517 "$Selector_Name#Explicit_Generic_Actual_Parameter" &
518 -- Handled_Sequence_Of_Statements
519 "%Statements&End_Label'Exception_Handlers#At_End_Proc$First_Real_State" &
520 "ment,Zero_Cost_Handling" &
521 -- Index_Or_Discriminant_Constraint
522 "#Constraints" &
523 -- Itype_Reference
524 "#Itype" &
525 -- Label
526 "#Identifier2Exception_Junk" &
527 -- Modular_Type_Definition
528 "%Expression" &
529 -- Number_Declaration
530 "#Defining_Identifier%Expression,More_Ids-Prev_Ids" &
531 -- Ordinary_Fixed_Point_Definition
532 "%Delta_Expression&Real_Range_Specification" &
533 -- Others_Choice
534 "#Others_Discrete_Choices2All_Others" &
535 -- Package_Specification
536 "#Defining_Unit_Name$Visible_Declarations%Private_Declarations&End_Lab" &
537 "el'Generic_Parent" &
538 -- Parameter_Association
539 "$Selector_Name%Explicit_Actual_Parameter&Next_Named_Actual" &
540 -- Parameter_Specification
541 "#Defining_Identifier6In_Present8Out_Present$Parameter_Type%Expression" &
542 "4Do_Accessibility_Check,More_Ids-Prev_Ids'Default_Expression" &
543 -- Protected_Definition
544 "$Visible_Declarations%Private_Declarations&End_Label-Has_Priority_Pra" &
545 "gma" &
546 -- Range_Constraint
547 "&Range_Expression" &
548 -- Real_Range_Specification
549 "#Low_Bound$High_Bound" &
550 -- Record_Definition
551 "&End_Label+Abstract_Present6Tagged_Present8Limited_Present#Component_" &
552 "List4Null_Present" &
553 -- Signed_Integer_Type_Definition
554 "#Low_Bound$High_Bound" &
555 -- Single_Protected_Declaration
556 "#Defining_Identifier%Protected_Definition" &
557 -- Subunit
558 "$Name#Proper_Body%Corresponding_Stub" &
559 -- Task_Definition
560 "$Visible_Declarations%Private_Declarations&End_Label-Has_Priority_Pra" &
561 "gma,Has_Storage_Size_Pragma.Has_Task_Info_Pragma/Has_Task_Name_Pra" &
562 "gma" &
563 -- Triggering_Alternative
564 "#Triggering_Statement%Statements&Pragmas_Before" &
565 -- Use_Type_Clause
566 "$Subtype_Marks%Next_Use_Clause&Hidden_By_Use_Clause" &
567 -- Validate_Unchecked_Conversion
568 "#Source_Type$Target_Type" &
569 -- Variant
570 "&Discrete_Choices#Component_List$Enclosing_Variant%Present_Expr'Dchec" &
571 "k_Function" &
572 -- Variant_Part
573 "$Name#Variants" &
574 -- With_Clause
575 "$Name&Library_Unit'Corresponding_Spec,First_Name-Last_Name4Context_In" &
576 "stalled+Elaborate_Present6Elaborate_All_Present8Implicit_With.Unre" &
577 "ferenced_In_Spec/No_Entities_Ref_In_Spec" &
578 -- With_Type_Clause
579 "$Name6Tagged_Present" &
580 -- Unused_At_End
583 type Pchar_Pos_Array is array (Node_Kind) of Positive;
584 Pchar_Pos : constant Pchar_Pos_Array := Pchar_Pos_Array'(
585 N_Unused_At_Start => 1,
586 N_At_Clause => 1,
587 N_Component_Clause => 23,
588 N_Enumeration_Representation_Clause => 66,
589 N_Mod_Clause => 107,
590 N_Record_Representation_Clause => 133,
591 N_Attribute_Definition_Clause => 187,
592 N_Empty => 229,
593 N_Pragma => 229,
594 N_Pragma_Argument_Association => 288,
595 N_Error => 299,
596 N_Defining_Character_Literal => 299,
597 N_Defining_Identifier => 317,
598 N_Defining_Operator_Symbol => 335,
599 N_Expanded_Name => 353,
600 N_Identifier => 412,
601 N_Operator_Symbol => 472,
602 N_Character_Literal => 503,
603 N_Op_Add => 546,
604 N_Op_Concat => 546,
605 N_Op_Divide => 593,
606 N_Op_Expon => 649,
607 N_Op_Mod => 673,
608 N_Op_Multiply => 714,
609 N_Op_Rem => 752,
610 N_Op_Subtract => 793,
611 N_Op_And => 793,
612 N_Op_Eq => 809,
613 N_Op_Ge => 809,
614 N_Op_Gt => 809,
615 N_Op_Le => 809,
616 N_Op_Lt => 809,
617 N_Op_Ne => 809,
618 N_Op_Or => 809,
619 N_Op_Xor => 825,
620 N_Op_Rotate_Left => 841,
621 N_Op_Rotate_Right => 856,
622 N_Op_Shift_Left => 871,
623 N_Op_Shift_Right => 886,
624 N_Op_Shift_Right_Arithmetic => 901,
625 N_Op_Abs => 916,
626 N_Op_Minus => 916,
627 N_Op_Not => 916,
628 N_Op_Plus => 916,
629 N_Attribute_Reference => 916,
630 N_And_Then => 1019,
631 N_Conditional_Expression => 1027,
632 N_Explicit_Dereference => 1065,
633 N_Function_Call => 1088,
634 N_In => 1209,
635 N_Indexed_Component => 1209,
636 N_Integer_Literal => 1244,
637 N_Not_In => 1264,
638 N_Null => 1264,
639 N_Or_Else => 1264,
640 N_Procedure_Call_Statement => 1272,
641 N_Qualified_Expression => 1393,
642 N_Raise_Constraint_Error => 1417,
643 N_Raise_Program_Error => 1427,
644 N_Raise_Storage_Error => 1437,
645 N_Aggregate => 1447,
646 N_Allocator => 1587,
647 N_Extension_Aggregate => 1664,
648 N_Range => 1751,
649 N_Real_Literal => 1792,
650 N_Reference => 1846,
651 N_Selected_Component => 1853,
652 N_Slice => 1912,
653 N_String_Literal => 1950,
654 N_Subprogram_Info => 1976,
655 N_Type_Conversion => 1987,
656 N_Unchecked_Expression => 2102,
657 N_Unchecked_Type_Conversion => 2113,
658 N_Subtype_Indication => 2154,
659 N_Component_Declaration => 2194,
660 N_Entry_Declaration => 2278,
661 N_Formal_Object_Declaration => 2351,
662 N_Formal_Type_Declaration => 2436,
663 N_Full_Type_Declaration => 2537,
664 N_Incomplete_Type_Declaration => 2625,
665 N_Loop_Parameter_Specification => 2703,
666 N_Object_Declaration => 2767,
667 N_Protected_Type_Declaration => 3014,
668 N_Private_Extension_Declaration => 3102,
669 N_Private_Type_Declaration => 3216,
670 N_Subtype_Declaration => 3342,
671 N_Function_Specification => 3416,
672 N_Procedure_Specification => 3508,
673 N_Entry_Index_Specification => 3587,
674 N_Freeze_Entity => 3635,
675 N_Access_Function_Definition => 3703,
676 N_Access_Procedure_Definition => 3759,
677 N_Task_Type_Declaration => 3802,
678 N_Package_Body_Stub => 3905,
679 N_Protected_Body_Stub => 3957,
680 N_Subprogram_Body_Stub => 4009,
681 N_Task_Body_Stub => 4055,
682 N_Function_Instantiation => 4107,
683 N_Package_Instantiation => 4193,
684 N_Procedure_Instantiation => 4279,
685 N_Package_Body => 4365,
686 N_Subprogram_Body => 4463,
687 N_Protected_Body => 4690,
688 N_Task_Body => 4772,
689 N_Implicit_Label_Declaration => 4910,
690 N_Package_Declaration => 4946,
691 N_Single_Task_Declaration => 5015,
692 N_Subprogram_Declaration => 5051,
693 N_Use_Package_Clause => 5111,
694 N_Generic_Package_Declaration => 5154,
695 N_Generic_Subprogram_Declaration => 5251,
696 N_Constrained_Array_Definition => 5324,
697 N_Unconstrained_Array_Definition => 5388,
698 N_Exception_Renaming_Declaration => 5437,
699 N_Object_Renaming_Declaration => 5462,
700 N_Package_Renaming_Declaration => 5534,
701 N_Subprogram_Renaming_Declaration => 5570,
702 N_Generic_Function_Renaming_Declaration => 5620,
703 N_Generic_Package_Renaming_Declaration => 5656,
704 N_Generic_Procedure_Renaming_Declaration => 5692,
705 N_Abort_Statement => 5728,
706 N_Accept_Statement => 5734,
707 N_Assignment_Statement => 5829,
708 N_Asynchronous_Select => 5915,
709 N_Block_Statement => 5953,
710 N_Case_Statement => 6118,
711 N_Code_Statement => 6151,
712 N_Conditional_Entry_Call => 6162,
713 N_Delay_Relative_Statement => 6201,
714 N_Delay_Until_Statement => 6212,
715 N_Entry_Call_Statement => 6223,
716 N_Free_Statement => 6270,
717 N_Goto_Statement => 6312,
718 N_Loop_Statement => 6332,
719 N_Null_Statement => 6404,
720 N_Raise_Statement => 6404,
721 N_Requeue_Statement => 6409,
722 N_Return_Statement => 6428,
723 N_Selective_Accept => 6502,
724 N_Timed_Entry_Call => 6538,
725 N_Exit_Statement => 6579,
726 N_If_Statement => 6594,
727 N_Accept_Alternative => 6657,
728 N_Delay_Alternative => 6733,
729 N_Elsif_Part => 6785,
730 N_Entry_Body_Formal_Part => 6829,
731 N_Iteration_Scheme => 6890,
732 N_Terminate_Alternative => 6947,
733 N_Abortable_Part => 6986,
734 N_Abstract_Subprogram_Declaration => 6997,
735 N_Access_Definition => 7011,
736 N_Access_To_Object_Definition => 7024,
737 N_Case_Statement_Alternative => 7072,
738 N_Compilation_Unit => 7100,
739 N_Compilation_Unit_Aux => 7239,
740 N_Component_Association => 7274,
741 N_Component_List => 7306,
742 N_Derived_Type_Definition => 7348,
743 N_Decimal_Fixed_Point_Definition => 7406,
744 N_Defining_Program_Unit_Name => 7466,
745 N_Delta_Constraint => 7491,
746 N_Designator => 7525,
747 N_Digits_Constraint => 7541,
748 N_Discriminant_Association => 7576,
749 N_Discriminant_Specification => 7602,
750 N_Enumeration_Type_Definition => 7669,
751 N_Entry_Body => 7678,
752 N_Entry_Call_Alternative => 7785,
753 N_Exception_Declaration => 7832,
754 N_Exception_Handler => 7881,
755 N_Floating_Point_Definition => 7946,
756 N_Formal_Decimal_Fixed_Point_Definition => 7989,
757 N_Formal_Derived_Type_Definition => 7989,
758 N_Formal_Discrete_Type_Definition => 8035,
759 N_Formal_Floating_Point_Definition => 8035,
760 N_Formal_Modular_Type_Definition => 8035,
761 N_Formal_Ordinary_Fixed_Point_Definition => 8035,
762 N_Formal_Package_Declaration => 8035,
763 N_Formal_Private_Type_Definition => 8122,
764 N_Formal_Signed_Integer_Type_Definition => 8170,
765 N_Formal_Subprogram_Declaration => 8170,
766 N_Generic_Association => 8209,
767 N_Handled_Sequence_Of_Statements => 8257,
768 N_Index_Or_Discriminant_Constraint => 8349,
769 N_Itype_Reference => 8361,
770 N_Label => 8367,
771 N_Modular_Type_Definition => 8393,
772 N_Number_Declaration => 8404,
773 N_Ordinary_Fixed_Point_Definition => 8453,
774 N_Others_Choice => 8495,
775 N_Package_Specification => 8530,
776 N_Parameter_Association => 8616,
777 N_Parameter_Specification => 8674,
778 N_Protected_Definition => 8803,
779 N_Range_Constraint => 8875,
780 N_Real_Range_Specification => 8892,
781 N_Record_Definition => 8913,
782 N_Signed_Integer_Type_Definition => 8999,
783 N_Single_Protected_Declaration => 9020,
784 N_Subunit => 9061,
785 N_Task_Definition => 9097,
786 N_Triggering_Alternative => 9235,
787 N_Use_Type_Clause => 9282,
788 N_Validate_Unchecked_Conversion => 9333,
789 N_Variant => 9357,
790 N_Variant_Part => 9436,
791 N_With_Clause => 9450,
792 N_With_Type_Clause => 9625,
793 N_Unused_At_End => 9645);
795 end Treeprs;