Introduction

## Structure Reports

Structure Reports are designed to help you understand the structure and relations between declared structural Ada entities (compilation units and program units).

### Program Unit Declaration Tree

The Program Unit Declaration Tree shows the declaration nesting of each program unit analyzed. Each nesting level is indicated by an indent with a vertical bar used to help align your eyes when viewing. Each nesting level is read as "declares". In the HTML version of the report each program unit name is a hyperlink to its entry in the Program Unit Cross Reference Report.

Package Body Occupants
| Procedure Put_View
| Procedure Look
| Procedure Get
| Function May_I_Get
| Procedure Drop
| Function May_I_Drop
| Procedure Inventory
| Procedure Go
| | Block

In the above example, Package Body Occupants is the top level program unit. It has declared within it, Put_View, Look, Get, May_I_Get, Drop, May_I_Drop, Inventory, and Go. Nested within Go is an unamed declare block.

### Full Invocation Tree Report

The Full Invocation Tree Report shows the invocation tree of each program unit that has been analyzed. Each invocation level is indicated by an indent and a vertical bar. Each nesting level is read as "calls".

Procedure Mahjongg
| Procedure Clear
| Procedure Show
| | Procedure ClearScreen
| | | Procedure Specification PUT
| | | Procedure Specification PUT
| | Procedure MoveCursor
| | | Procedure Specification PUT
| | | Procedure Specification PUT
| | | Procedure Specification PUT
| | Procedure Specification NEW_LINE
| | Procedure Specification PUT
| | Procedure Specification PUT
| | Procedure Specification PUT_LINE
| Procedure Take_Turn
| | Procedure Dispatch_Command
| | | Function Get_Command
| | | Procedure Load_Game
| | | | Procedure Load
| | | | | Procedure Specification PUT
| | | | Procedure Show *** REPEAT SUBTREE ***
| | Procedure Get
| | | Procedure Specification GET_LINE
| | Function IsCommand
| | Procedure MoveCursor *** REPEAT SUBTREE ***
| | Procedure Specification PUT

In this example, Procedure Mahjongg calls Clear, Show, and Take_Turn. Procedure Show calls ClearScreen, MoveCursor, NEW_LINE, PUT, and PUT_LINE. Procedure ClearScreen calls PUT.

### With Hierarchy Hiearchy Report

Structured identically to the other hiearchy reports, the With Hiearchy Report shows a textual representation of the With Tree for each program unit that is not Withed by another. This is similar to the Top->With filter in the Locator Window (see Locator Window - Find Entities, Set Preferences, View Reports) except that in the Locator window the entities are only shown if they also With another entity.

As with the other textual hierarchy reports, indents show level with a vertical bar helping align your eye. For this report, each line is read as "Withs".

Package Body Occupants
| Package Rename Text_IO
| | Package Text_IO
| | | Package IO_Exceptions
| | | Package System
| | | Package Parameters

In the above example, the package body Occupants Withs package Text_IO, which in turn Withs IO_Exceptions, System, and Parameters.

### Generic Instantiation Report

This reports lists each package that was created through instantiation.

In the HTML version, the source where it was instantiated and its Data Dictionary Report entry may be visited from hyperlinks.

My_Int_IO Package Instantiation
FILE: board.adb LINE:12
Instantiated From => INTEGER_IO Generic Package

### Progra m Unit Renames Report

The Program Unit Renames Report cross references the use of the Ada command "renames", as in :

function Rouge return Color renames Red;

This report lists program units that have been renamed in alphabetic order. Each rename shows the program unit it renames, and in the HTML report a hyperlink to the rename instance in the source is provided.

Scientific Toolworks, Inc. http://www.scitools.com Voice: (802) 763-2995 Fax: (802) 763-3066 support@scitools.com sales@scitools.com