|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T V
Length: 34952 (0x8888)
Types: TextFile
Names: »V«
└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
└─⟦fc9b38f02⟧ »DATA«
└─⟦9b46a407a⟧
└─⟦12c68c704⟧
└─⟦this⟧
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS
└─⟦91c658230⟧ »DATA«
└─⟦458657fb6⟧
└─⟦220843204⟧
└─⟦this⟧
package Dependents is
type Display_Kind is (Subsystems, Views, Units, Parents, Item_Kinds,
Units_And_Kinds, Units_And_Items, Parents_And_Items);
type Dependents_Level is (Unfiltered, Immediate,
Reference_Closure, Demote_Closure);
procedure Show (Name : String := "<CURSOR>";
Display : Display_Kind := Dependents.Units;
Level : Dependents_Level := Dependents.Unfiltered;
Limit : String := "<ALL_WORLDS>";
Global : Boolean := True;
Options : String := "");
--
-- invoke the dependents object_editor.
--
-- dependents are entities which depend on the identifier specified
-- by the first argument. this dependence can be because of a direct
-- naming of that identifier, because of being the second part of a
-- two part item or because of a closure computation.
-- dependents can be either compilation units or constructs
-- within compilation units.
--
-- in the comments that follow the term "unit" will mean a
-- compilation unit.
-- the term "item" will refer to a construct within a compilation unit.
-- the term "main_item" will refer to the unit or item whose
-- dependents are being shown.
-- the term "kind" will refer to the kind of an item.
-- the term "parent" will refer to an ada program unit.
--
-- the first argument to dependents.show can be a naming expression
-- which resolves to several def_ids in the same ada space.
-- e.g. dependents.show ("directory.naming.resolve'spec");
-- this will run the dependents analysis over all of the def_ids
-- resolved to by the naming expression.
-- one can also place marks on a group of def_ids in the same space
-- and invoke the command as:
-- dependents.show ("<marks>", options => "count=n");
-- where n is the number of marks to be taken off the mark_stack.
-- this will run the dependents analysis over all the def_ids
-- removed from the mark_stack.
--
-- the line(s) of a dependents display before the first blank line
-- denote the main_item(s).
-- the succeeding nonblank lines denote dependents.
--
-- the display argument determines whether unit level or item
-- level dependents are shown and how the information is presented.
-- (see below).
--
-- the level argument determines what level of dependence should be
-- shown initially. this can be changed after the display is brought up.
--
-- limit, if not defaulted, restricts the displayed dependents to
-- those that occur within objects specified by the limit
-- naming expression.
--
-- if global = false then only uses within the unit containing the
-- identifier resolved to will be shown (by underlining them).
--
---------------------------------------------------------------------------
--
-- explanation of the display kinds.
--
-- these different displays can be produced using the elide/expand
-- and sort commands. the display kinds are ordered so that moving
-- through them produces more specific information about the dependents.
--
-- Subsystems
-- full names of subsystems containing views with dependents.
--
-- Views
-- full names of views containing units with dependents.
--
-- Units
-- names of compilation units that contain dependents or are
-- themselves dependents.
-- see below for how to control how compilation unit names
-- are displayed.
--
-- Parents
-- names of ada program units containing dependents.
-- these will be the names of procedures, functions, packages,
-- tasks, generics, or record_types which immediately contain
-- dependent items.
-- this display lists the parent name followed by the unit name.
-- example:
--
-- set_value STACK_MANAGER'BODY !L1.L2.L3
-- get_value STACK_MANAGER'BODY !L1.L2.L3
-- add_element TEST'BODY !U1.U2
--
-- this says that program unit set_value contains a dependent
-- as does get_value and add_element.
--
-- in the case where the parent ada program unit is itself a
-- compilation unit or in the case where an entire compilation
-- unit is a dependent, the parent name field will be given as
-- *comp_unit*.
--
-- Item_Kinds
-- this display shows the kind of the nearest ada construct
-- enclosing a dependent, followed by the parent name.
-- the constructs will be from the categories statements,
-- declarations, etc.
-- there will be one line per dependent construct.
-- example:
--
-- assign set_value STACK_MANAGER'BODY !L1.L2.L3
-- if get_value STACK_MANAGER'BODY !L1.L2.L3
-- call add_element TEST'BODY !U1.U2
--
-- the first line says that an assignment statement in the
-- program unit set_value which is in the compilation unit
-- !L1.L2.L3.STACK_MANAGER'BODY has a dependent within it.
--
-- if the display level is demote_closure (see below) then
-- the construct shown will be the nearest enclosing demotable
-- item containing dependents.
--
-- sometimes an item level dependent will be an entire comp unit.
--
-- Units_And_Kinds
-- this display shows the same information as the previous one
-- but it presents each compilation unit first, followed by its
-- list of dependents. with a blank line between each comp unit.
-- example:
--
-- STACK_MANAGER'BODY !L1.L2.L3
-- assign set_value
-- if get_value
--
-- TEST'BODY !U1.U2
-- call add_element
--
-- Units_And_Items
-- this display is similar to the previous one in that it
-- shows the name of each compilation unit preceded by a blank
-- line; but rather than showing just the name of the kind of
-- construct which has a dependent, it shows a compressed one
-- line form of the text of the ada construct.
-- the place within the construct that has a reference to the
-- main_item will be underlined. (not shown here).
-- example:
--
-- STACK_MANAGER'BODY !L1.L2.L3
-- Abc := Def (3);
-- if Def (5) then
--
-- TEST'BODY !U1.U2
-- Foo (Stack_Manager.Def (4));
--
-- Parents_And_Items
-- this display is similar to the previous one with the change that
-- the one line form of the text of an ada construct is replaced
-- by a group of lines of the form
--
-- parent_kind parent_name
-- line 1 of ada text
-- ...
-- line n of ada text.
--
-- example:
--
-- STACK_MANAGER'BODY !L1.L2.L3
-- proc_body set_value
-- Abc := Def (3);
--
-- func_body get_value
-- if Def (5) then
-- Mumble;
-- end if;
--
-- TEST'BODY !U1.U2
-- proc_body add_element
-- Foo (Stack_Manager.Def (4));
--
---------------------------------------------------------------------------
--
-- compilation unit and library names are always shown in upper case.
-- parent names and item kinds are shown in lower case.
--
-- full names of compilation units can be displayed either
-- with the library unit name first, some space, and then the
-- library name; or as the standard pathname with library name
-- first, followed immediately by the library unit name.
--
-- there is an option to control which format is used.
-- this option is either set when the command is invoked;
-- or if it is not explicitly given in the option string,
-- the session switch:
-- Dependents_In_Order_Pathnames is checked.
-- furthermore after a display has been brought up the value of this
-- option can be changed by the In_Order command
--
-- if pathnames are being shown in transposed order there is an option
-- to control whether library names are shown.
-- there is also a corresponding session switch called:
-- Dependents_Show_Library and a command called Libraries.
--
-- there is an option to control whether compilation states are
-- shown for the units or items in a display.
-- there is also a corresponding session switch called:
-- Dependents_Show_Unit_State and a command called States.
-- compilation states will be shown as a single letter from
-- S, I, C, preceding the unit or item.
--
-- there is a session switch called
-- Dependents_Delta0_Compatibility (which defaults to true)
-- which if set implies in_order pathnames and controls the
-- format of the first line.
-- this switch also controls the contents of the first line
-- in obsolescence windows.
--
---------------------------------------------------------------------------
-- dependents_level meanings:
--
-- unfiltered
-- dependent units directly from the ddb are shown without
-- checking if they actually have references to the main_item.
-- sometimes more units will be listed than those that actually
-- have dependents. this can occur in the case of a main_item
-- which is overloadable; or in the case of a unit which once had
-- a dependent but no longer does. also the unit containing
-- the main_item is always listed as a potential dependent.
-- this display is only possible for unit displays.
-- if an elision command is given to change the display to an
-- item display the units will be automatically filtered.
-- also if the main_item is a record field the initial display
-- will always be filtered.
--
-- immediate
-- units are checked for references.
-- only units which actually have dependents are shown.
--
-- reference_closure
-- in addition to showing immediate references:
--
-- * for types, packages, subprograms, exceptions
-- references to renames and derivations are included.
-- * for items in generic specs - references to the corresponding
-- id in instantiations of that generic are shown.
-- * for subprogram parameters - parameters passed in calls
-- are shown.
-- * for generic parameters - actual parameters passed to the
-- parameter in instantiations are shown.
--
-- also, for any main_item which can occur as a default value for a
-- subprogram parameter, any call which uses the default will be
-- marked as a dependent of the main_item.
--
-- demote_closure
-- units or items which have to be demoted to demote the
-- main_item are shown.
--
-- for the demote/promote commands when region selections are used,
-- which display kind is being shown, determines whether whole
-- compilation units are demoted/promoted or individual items
-- within compilation units are demoted/promoted.
-- if the display kind is Units then comp units will be
-- demoted/promoted. otherwise items will be demoted/promoted.
-- (even though comp_unit names occupy a separate line in
-- certain elision levels and may be included in the selection).
--
-- when item level demote_closure is being shown, contiguous
-- dependent items will be merged into one line in the display.
-- (and will be demoted as a group).
--
-- scenario for editing the main_item:
--
-- * bring up an initial unit display.
-- * if you wish to demote item level dependents.
-- create a command window and type: items;
-- this will change the display kind to item level dependents.
-- * press the complete key.
-- this will change the display to demote_closure
-- * select the entire display.
-- * press the demote key.
-- this will demote all dependents and the main_item to source.
-- * to edit the demoted main_item or any of the demoted dependents
-- put the cursor on the line which represents that item or unit
-- and press the edit key.
-- this will bring up a window on the unit or item.
-- * make any changes, committing the windows.
-- when all changes have been made, return to dependents menu and
-- * select the display.
-- * press the promote key.
-- this will promote all source units or items in the display
-- to installed.
-- if any items fail to install they can be fixed and promoted
-- again with single line selections or if a region is selected and
-- it contains a mix of both source and installed items only the
-- source items will be promoted.
--
-- remember that certain kinds of items which one can produce an xref of
-- cannot be incrementally edited. these include enumeration literals,
-- record fields, subprogram and generic parameters.
--
---------------------------------------------------------------------------
--
-- options on show command.
--
-- IN_PLACE
-- brings up the window on top of the current window.
-- default is false.
--
-- NEW_WINDOW
-- always create a new window for this display.
-- default is to reuse an existing dependents window.
-- previous contents of a reused dependents window can be
-- revisited using object undo/redo or the Contents command.
--
-- MENU_ALWAYS
-- if menu_always is false (the default) and the only dependents
-- are within the same unit as the main_item then no window is
-- brought up and the dependents are underlined.
-- if menu_always is true then a window is always brought up
-- if there are any dependents.
--
-- COUNT=<integer>
-- count > 1 specifies that count-many contiguous def_ids
-- starting at the one selected are to have their dependents
-- shown. default is 1.
--
-- STATES
-- show unit/item compilation states, default is false.
--
-- IN_ORDER
-- show comp unit names with library first, default is false
--
-- LIBRARIES
-- show library names, default is true.
--
-- SOURCE
-- default is false.
-- search source units which are registered in the ddb
-- for dependents. also search source bodies/subunits of
-- units whose specs/bodies have been checked.
-- checking for dependents within source units will not in
-- general be exact. in the absence of semantic information
-- a heuristic approach is taken which in most cases (if the
-- identifier of the main_item is distinctive) will find
-- the set of dependents (and possibly some other items which
-- aren't actually dependents).
--
-- CHECK=<naming_expression>
-- check any source units in the naming expression for references.
--
-- RESTRICT = <argument>
-- see Restrict command below for legal argument values.
--
---------------------------------------------------------------------------
--
-- common commands which can be applied when the cursor is in a
-- dependents window.
--
-- * common.definition
-- visit the entity denoted by the line the cursor is on.
-- if the line denotes a compilation unit or parent with dependents
-- then they will be underlined and the cursor positioned to the
-- first of them.
-- if line denotes an item then the cursor will be positioned
-- on that item, which will be selected.
-- if the cursor line has a parent or unit name in it and the cursor
-- has been moved onto that parent or unit name then that parent
-- or unit will be visited.
-- if the cursor line is showing full ada text and the cursor has been
-- moved to a using identifier the definition of the using identifier
-- will be visited.
-- the node which would be visited by definition is the node which
-- this editor returns when name resolution of <CURSOR> is run
-- against it. so if while reading an xref display one wants to
-- run another xref off an item in the display this can be done
-- by positioning the cursor on the desired item in the xref
-- display and invoking the xref command.
--
-- * common.edit:
-- (demote if necessary and possible and) edit the item
-- of the line the cursor is on.
-- if the item is in the installed (or greater) state it
-- must be selected.
--
-- * common.enclosing:
-- find the image of the object for which these items are dependents.
--
-- * common.demote:
-- demote the entities corresponding to the set of lines selected.
-- if the entire image is selected the goal state will be source.
-- otherwise it will be the predecessor of the current state of the
-- entity.
--
-- * common.promote:
-- promote the entitites corresponding to the set of lines selected.
--
-- * common.format
-- if display is unfiltered, change it to immediate.
--
-- * common.semanticize
-- if display is unfiltered, change it to immediate.
-- if display is immediate, change it to reference_closure.
--
-- * common.complete
-- change display to demote_closure.
--
-- * common.undo and redo
-- move thru the images in this window.
--
-- * common.revert:
-- recompute the current dependents set of the main_item.
--
-- * common.object.delete
-- destroy the item selected.
--
-- * common.expand and elide
-- relative motion among the display kinds.
-- repeat count > 1 moves multiple steps.
-- if there is no selection the entire display is moved to a
-- new elision level.
-- if there is a selection, only the selected entity will be
-- expanded/elided.
-- if a selected item is at the final elision level and expand
-- is typed, the display will be replaced by the ada text
-- for an enclosing construct of that item.
-- this will continue with further expands until the program unit
-- containing the item fills the display.
-- if the display is showing just an expanded_item,
-- elide will transition the display back to the full dependents
-- display.
--
-- * common.sort_image
-- absolute addressing of display kinds based on format parameter.
-- 1 = subsystems, 2 = views, 3 = units, 4 = parents, 5 = item_kinds,
-- 6 = units_and_kinds, 7 = units_and_items, 8 = parents_and_items.
-- if a display has some lines at a different elision level from
-- the entire display level, 0 as a sort prefix will change all
-- lines to the current display level.
--
-- * common.object.child
-- if no selection, select the item under the cursor, otherwise
-- expand the item under the cursor.
-- if the entire display is showing an expanded_item, this command
-- will not require a selection to expand.
--
-- * common.object.next/previous
-- if no selection, select the item under the cursor. If there is a
-- selection, move it to the next/previous item.
-- * common.object.parent
-- if no selection, select the item under the cursor. If the item is
-- selected, expand the selection.
--
---------------------------------------------------------------------------
---------------------------------------------------------------------------
--
package Commands is
-- commands which can be run off of a dependents window
procedure Items;
-- change the display to an item level display
procedure Units;
-- change the display to a unit level display
procedure Parents;
-- change the display to a parents display
procedure Immediate;
-- change the display to an immediate dependents display
----------------------------------------------------------------------
procedure Libraries (Show : Boolean := True);
-- control whether library names are displayed
procedure States (Show : Boolean := True);
-- control whether unit states are displayed
procedure In_Order (Value : Boolean := True);
-- control whether comp unit names have library names shown first
procedure Contents;
-- show a table of contents for the images in this window.
---------------------------------------------------------------------
procedure Keep;
-- if there is a selection then remove any units not selected
-- from the display. it there is no selection remove all but the
-- line the cursor is on.
procedure Remove;
-- it there is a selection then remove selected units from the
-- display. if there is no selection remove the unit the cursor is on.
procedure Show_All;
-- redisplay any units removed by keep, or remove.
procedure Limit (To : String := "<ACTIVITY>");
-- limit the set of units displayed.
procedure Unlimit;
-- show any units that were removed by a limit command
------------------------------------------------------------
procedure Uncode;
-- demote all coded units selected in the display to installed
procedure Source;
-- demote all units selected in the display to source
procedure Installed;
-- promote all units selected in the display to installed
procedure Coded;
-- promote all units selected in the display to coded
procedure Remake;
-- promote all units selected in the display to their state when
-- first displayed.
----------------------------------------------------------------------
procedure Look_Through (Name : String := "<ACTIVITY>";
Limit : Boolean := False);
-- the main_item must be in a spec.
--
-- if name is an activity:
-- if the main_item is in a load_view find its corresponding
-- id in the spec view implied by the activity and
-- display that id's dependents.
-- if limit is true then limit the dependents to views in the
-- activity.
--
-- if the main_item is in a spec_view find its corresponding
-- id in the load view implied by the activity and
-- display that id's dependents.
-- limit is not relevant is this case.
--
-- if name is a view or world:
-- find the corresponding id for the main_item in the given
-- view or world and display that id's dependents.
procedure Succ (Repeat : Integer := 1);
-- reconstruct the display with the next def_id after the
-- current main id
procedure Pred (Repeat : Integer := 1);
-- reconstruct the display with the prior def_id to the current
-- main id
procedure Diana_Edit;
-- run diana_edit on the node the cursor is on.
------------------------------------------------------------
procedure Restrict (To : String);
-- restrict the display to a particular kind of reference.
-- the argument can be a sequence of one or more of the following
-- restriction kinds:
--
-- internal - show only uses of the main_item (which must
-- be in the visible part of a package)
-- which are within that package
-- external - show only uses of the main_item (which must
-- be in the visible part of a package)
-- which are outside of that package
-- defaulted - show calls where a parameter is defaulted.
-- nondefaulted - show calls where a parameter isn't defaulted.
-- used_ops - show only operators made visible by a use clause
-- used_ids - show only non operators made visible by a
-- use clause
-- closure - show only references which are in the
-- reference_closure and not in the immediate set.
-- writes - show places where an object is assigned to.
--
-- variables, constants, numbers, exceptions, types,
-- subtypes, generics, tasks, parameters, withs, uses,
-- subprograms, specs, bodies, renamings, instantiations,
-- compound_types, record_types, array_types,
-- derived_types, access_types, numeric_types, enum_types,
-- stmts, alternatives, handlers, accepts, assigns,
-- calls, loops, ifs, cases, returns, raises, selects,
-- aggregates, allocators, relationals, conversions,
-- pragmas
--
-- any unique prefix of a restriction kind can be given.
-- several restrictions can be given in one command by
-- separating them by a space. e.g.
-- restrict ("external alternatives"); or
-- restrict ("ext alt");
-- this means only show case alternatives which are external to
-- the package containing the main_item.
--
-- a restriction kind can be negated by prefixing it with
-- a not sign (~). e.g.
-- restrict ("~withs ~parameters);
-- this means only show contructs that aren't with clauses and
-- aren't parameter declarations.
--
-- restrict ("?"); displays the names of all restriction kinds.
procedure Unrestrict;
-- show any items that were removed by a restrict command
------------------------------------------------------------
procedure Display (Constructs : String);
-- find transitive uses of a main_item which is a type
-- or record field in a particular kind of construct.
-- possible values of the argument are:
-- aggregates,
-- allocators,
-- assigns,
-- cases,
-- creates,
-- assign_closure,
-- create_closure.
--
-- any unique prefix of the argument name can be given.
-- several arguments can be given by separating them by spaces.
-- e.g. display ("creates create_closure");
--
-- aggregates shows all aggregates over the main_item if it is
-- a compound type (record, array);
-- if the main_item is a discrete type it shows array aggregates
-- whose index type is the main_item.
--
-- allocators shows all allocators whose result type is the main_item.
--
-- assigns show assigment statements where an object of the type
-- is assigned. in the case of compound types it also shows where an
-- assignment to a subcomponent is done.
--
-- cases shows all cases statements over the main_item
-- (which must be discrete type).
--
-- creates shows places where a variable or constant of the type
-- is declared; or where an allocator of an object of the type
-- is done.
--
-- assign_closure, create_closure run the analysis over compound types
-- which contain the main_item as a subcomponent.
-- object undo will change the display back to a regular
-- dependents display.
--
------------------------------------------------------------
procedure Replace (Target : String := "";
Replacement : String := "";
Wildcard : Boolean := False;
Main_Also : Boolean := True);
-- edit each source item in the display and do a search/replace
-- of the target with replacement.
------------------------------------------------------------
function Names return String;
-- return a string of the form [u1,u2,...un]
-- where ui is the ith unit showing in the display
-- or in the selection if there is one.
---------------------------------------------------------------------------
procedure Delete;
-- for a window with a set of images within it,
-- remove this image from the set and redraw the window
-- with the prior one in the history.
---------------------------------------------------------------------------
procedure Subunit_Levels (Number : Integer := Integer'Last);
-- number of parent library unit names to show for the non in_order
-- unit name field.
-- a value of 1 means show the name of the innermost enclosing
-- subunit only (if the enclosing unit is a library unit it
-- will always be shown).
-- a value of 2 means show the names of at most 2 of the innermost
-- enclosing subunits and so on.
-- a value of integer'last causes full names to be shown again.
-- a value of 0 means don't show subunit names just show the
-- library unit name.
-- a value of integer'first means don't show the unit name field
-- at all in the items and parents elision levels.
-- a value of -x means remove abs (x) names from the front of
-- a name.
procedure Parent_Levels (Number : Integer := Integer'Last);
-- number of parent names to show in the parent name field.
procedure Unit_Length (Max : Integer := Integer'Last);
-- max length name to display in the unit name field.
procedure Parent_Length (Max : Integer := Integer'Last);
-- max length name to display in the parent name field.
end Commands;
---------------------------------------------------------------------------
---------------------------------------------------------------------------
procedure Window (Kind : String := "xref";
Restart : Boolean := True;
In_Place : Boolean := False;
Wrap : Boolean := False);
-- make visible a menu window.
-- choices for kind include:
-- xref, find, unused, errors, holds, ada_menu, menu.
-- if restart = true bring up the most recently created.
-- if there are multiple windows of the kind specified and
-- restart = false then cycle thru the windows with successive calls.
-- when at last window, wrap controls whether to go back to first.
---------------------------------------------------------------------------
procedure Find (Pattern : String := "";
Units : String := "$@?";
Display : Display_Kind := Dependents.Units_And_Kinds;
Wildcard : Boolean := False;
Ignore_Case : Boolean := True;
Options : String := "");
-- search the ada units specified by units for the given pattern.
-- any units with occurences will be displayed in a menu.
procedure Unused (In_Units : String := "<CURSOR>";
Check_Other_Units : Boolean := False;
Display : Display_Kind := Dependents.Units_And_Kinds;
Options : String := "");
-- show the declarations in units that are not referenced.
-- any units with unused declarations will be displayed in a menu.
-- for find and unused the following are allowed.
--
-- options:
-- in_place, new_window, restrict, libraries, states, in_order,
-- menu_always.
--
-- common commands:
-- definition, edit, enclosing, demote, promote, delete,
-- elide, expand, sort, next, previous, parent, child, undo, redo,
-- revert (for unused only).
--
-- dependents commands:
-- libraries, in_order, states, items, units, parents,
-- limit, unlimit, restrict, unrestrict, keep, remove, show_all,
-- contents, replace, names, diana_edit,
-- uncode, source, installed, coded, remake.
--
---------------------------------------------------------------------------
procedure Menu (Units : String;
First_Line : String := "";
Name_Field : String := "";
Options : String := "");
-- display a menu of the units resolved to by units.
--
-- options allowed:
-- in_place, new_window, libraries, states, in_order.
--
-- common commands:
-- definition, edit, enclosing, demote, promote, parent, child,
-- next, previous, undo, redo
--
-- dependents commands:
-- replace, limit, unlimit, keep, remove, show_all, contents,
-- in_order, states, libraries, uncode, source, installed, coded, remake.
---------------------------------------------------------------------------
procedure Errors (Units : String := "<CURSOR>"; Options : String := "");
-- display a menu of the error messages in the units specified.
-- if <cursor> is given and the cursor is on a node with error messages
-- then just display the messages on that node.
--
-- if an error message refers to another node that node can be accessed
-- from the menu by moving the cursor to the end of the error message
-- text and doing definition.
--
-- options allowed:
-- in_place, new_window, in_order, libraries, menu_always,
-- kind =
-- all_errors - the default, show all messages.
-- warnings - show only warnings messages
-- errors - show only error messages, no warnings.
--
-- if menu_always is false then no menu will be brought up. the
-- error nodes will be underlined in the ada unit.
--
---------------------------------------------------------------------------
procedure Holds (Count : Integer := 10; Options : String := "");
-- show a menu of the items on the hold stack.
pragma Subsystem (Object_Editor);
pragma Module_Name (4, 2227);
end Dependents;