[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
ASIS-for-GNAT provides some additional types and queries as ASIS extensions.
All these queries are defined and documented in the hierarchy headed by
package Asis.Extensions
. They are referred as "ASIS extensions" or
"ASIS extension queries" below.
All the ASIS extensions obey the general ASIS rules:
If the documentation of an ASIS extension query contains a list of
"appropriate" Element
kinds, then the query can be applied only to Element
s
from this list, and it raises ASIS_Inappropriate_Element
with
Value_Error
status otherwise. If the documentation of an ASIS extension
query contains a list of "expected" element kinds, then the query can be
applied to an Element
having any kind, but it returns a meaningful result only
for Element
s from this list.
The current set of ASIS extensions originated from the ASIS implementation
needs and from the development of some ASIS tools inside the ASIS-for-GNAT
team. The Asis.Extensions
hierarchy is not necessarily
frozen: some further extension queries may be added,
and suggestions from ASIS application developers are welcome.
Note that some of the ASIS extensions are implemented as ASIS secondary queries -- that is, the implementation of such a query is a sequence of primary ASIS queries. Some other extensions are pure extensions; that is, their implementation is based on direct access to GNAT's internal data structures.
2.1 Asis.Extensions
2.2 Asis.Extensions.Flat_Kinds
2.3 Asis.Extensions.Iterator
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Asis.Extensions
This package, whose spec is located in the file
`asis-extensions.ads',
contains the declarations of various ASIS extensions, including
dynamic Element
and Compilation_Unit
list types, placeholder actual parameters
for Asis.Iterator.Traverse_Element
,
additional Element
structural and
semantic queries, queries that return information about the status of the
source file for a Compilation_Unit
, queries returning the (images
of the) values of static expressions, etc.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Asis.Extensions.Flat_Kinds
The ASIS Element
classification hierarchy
is based on a set of Ada enumeration types,
each corresponding to a "level" in the hierarchy.
The package Asis.Extensions.Flat_Kinds
, whose spec is located in the file
`asis-extensions-flat_kinds.ads',
defines the enumeration type Flat_Element_Kinds
;
this type combines the values of all these types and thus provides
a "flat" view onto the syntactic Element
classification.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Asis.Extensions.Iterator
This package, whose spec is located in the file
`asis-extensions-iterator.ads',
contains the declarations of Traverse_Unit
generic procedure that
is a generalization of the standard ASIS Asis.Iterator.Traverse_Element
iterator. Traverse_Unit
provides the depth-first traversal of the
whole syntactical structure of the ASIS Compilation Unit.
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |