-- --
-- S p e c --
-- --
--- Copyright (C) 1998-2007, Free Software Foundation, Inc. --
+-- Copyright (C) 1998-2009, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
-- X dependency-number filename
-- This header precedes xref information (entities/references from
- -- the unit, identified by dependency number and file name. The
+ -- the unit), identified by dependency number and file name. The
-- dependency number is the index into the generated D lines and
-- is ones origin (i.e. 2 = reference to second generated D line).
-- in the visible part of a generic package, and space otherwise.
-- entity is the name of the referenced entity, with casing in
- -- the canical casing for the source file where it is defined.
+ -- the canonical casing for the source file where it is defined.
-- renameref provides information on renaming. If the entity is
-- a package, object or overloadable entity which is declared by
-- k = implicit reference to parent unit in child unit
-- l = label on END line
-- m = modification
+ -- o = own variable reference (SPARK only)
-- p = primitive operation
-- P = overriding primitive operation
-- r = reference
-- > = subprogram IN parameter
-- = = subprogram IN OUT parameter
-- < = subprogram OUT parameter
- -- > = subprogram ACCESS parameter
+ -- ^ = subprogram ACCESS parameter
-- b is used for spec entities that are repeated in a body,
-- including the unit (subprogram, package, task, protected
-- graph construction). Again, in the case of an accept there
-- can be multiple l lines.
+ -- o is used for variables referenced from a SPARK 'own'
+ -- definition. In the SPARK language, it is allowed to use a
+ -- variable before its actual declaration.
+
-- p is used to mark a primitive operation of the given entity.
-- For example, if we have a type Tx, and a primitive operation
-- Pq of this type, then an entry in the list of references to
-- Tx will point to the declaration of Pq. Note that this entry
-- type is unusual because it an implicit rather than explicit,
- -- and the name of the refrerence does not match the name of the
+ -- and the name of the reference does not match the name of the
-- entity for which a reference is generated. These entries are
-- generated only for entities declared in the extended main
-- source unit (main unit itself, its separate spec (if any).
-- instantiations, this can be nested [...[...[...]]] etc.
-- The reference is of the form [file|line] no column is
-- present since it is assumed that only one instantiation
- -- appears on a single source line. Note that the appearence
+ -- appears on a single source line. Note that the appearance
-- of file numbers in such references follows the normal
-- rules (present only if needed, and resets the current
-- file for subsequent references).
-- a reference (e.g. a call) at line 8 column 4 of the
-- of the current file.
- -- the END line of the body has an explict reference to
+ -- the END line of the body has an explicit reference to
-- the name of the procedure at line 12, column 13.
-- the body ends at line 12, column 15, just past this label
-- Node N is an operator node, whose entity has been set. If this entity
-- is a user defined operator (i.e. an operator not defined in package
-- Standard), then a reference to the operator is recorded at node N.
- -- T is the operand type of of the operator. A reference to the operator
+ -- T is the operand type of the operator. A reference to the operator
-- is an implicit reference to the type, and that needs to be recorded
-- to avoid spurious warnings on unused entities, when the operator is
-- a renaming of a predefined operator.