This file contains an annotated list of non-implemented and partially-
implemented ASIS queries. The queries in this list are ordered in the same way
as they are ordered in the ASIS definition, with the corresponding clause and
subclause numbers.

9  package Asis.Ada_Environments.Containers
   ========================================
9.3   function Defining_Containers
9.4   function Enclosing_Context
9.5   function Library_Unit_Declarations
9.6   function Compilation_Unit_Bodies
9.7   function Compilation_Units
9.8   function Is_Equal
9.9   function Is_Identical
9.10  function Name

  Recently the simplest Container model was implemented, but it needs to be
  documented in ASIS RM (?) as implementation-specific feature


10 package Asis.Compilation_Units
   ==============================
10.5  function Enclosing_Container

  Recently implmented for the simplest Container model and it needs to be
  documented in ASIS RM (?) as implementation-specific query

  Raises Not_Implemented_Error. See comments for non-implemented queries for
  ASIS Containers, Section 9.


11 package Asis.Compilation_Units.Times
   ====================================
11.3  function Compilation_CPU_Duration.
  Recently implemented, but needs to be documented in ASIS RM (?) as
  implementation-specific query


12 package Asis.Compilation_Units.Relations
   ========================================

12.4  function Elaboration_Order
  Raises Not_Implemented_Error. Serious hole in our ASIS implementation - this
  query is very important for applications.


13 package Asis.Elements
   =====================
13.4  function Configuration_Pragmas

  Does not raise an exception, but always returns an empty result. This hole
  may be considered as serious from the point of view of at least some
  applications.

  How to get information about configuration pragmas? Tree files do not
  contain anything related to the content of gnat.adc...


15 package Asis.Declarations
     =========================
15.30 function Corresponding_Equality_Operator
  Raises Not_Implemented_Error.

  Up to now, the only "user request" for this query came from inside ACT - it
  was needed by gnatelim (at the moment some workaround is used). But the query
  may be of real interest for some tools.

  The implementation problems for this query have not been investigated in
  details.

"Inter-Context" queries:
  For the following queries defined in Asis.Declarations:
      5.13  Corresponding_Type_Declaration
      15.26 Corresponding_Declaration
      15.27 Corresponding_Body
      15.40 Corresponding_Subunit
      15.42 Corresponding_Body_Stub
  ASIS defies two versions of the query. One takes an Element as the only
  parameter and computes the corresponding semantic link in the same Context,
  and another has two parameters - the argument Element and the Context to
  look for the corresponding semantic information into. The idea of the
  second("inter-Context" version is, for example, to try to compute (if
  possible) for a given subprogram declaration its completion in another
  Context, this another COntext may represent another implementation for the
  same interface packages.

  "Inter-Context" versions of these queries are not implemented. Up to now
  nobody at all has asked about anything related to processing more then one
  Context at a time. But in general the possibility to process several opened
  Context is implemented.

  ASIS defines the versions of

'16' package Asis.Definitions
     ========================
'16.1'  function Corresponding_Type_Operators
  Raises Not_Implemented_Error.

  This query may be important for some tools.

  The problem with implementing this tool is the consequence of the general
  problem of representing the implicit predefined stuff in ASIS. The source of
  the problem is that except for the types defined in Standard, the tree
  contains nothing related to the predefined type operators. So in our ASIS
  implementation, only implicit user-defined inherited subprograms may be
  represented, but the implicitly declared predefined type operations can not.

'16.4'  function Implicit_Inherited_Declarations
  This query is implemented but it has been carefully tested only record types
  and partially for enumeration types. The case of derived concurrent types
  needs more testing. The code still contains and "else" alternative which
  raises Not_Implemented_Error. This exception is also raised in case if the
  argument is a type derived from a Standard character type.


'16.27' function Discriminant_Associations
  Marked as PARTIALLY IMPLEMENTED in the code, but actually all the code is in
  place. The implementation needs more testing for the case when
  Normalized => True


'16.31' function Implicit_Components
  Raises Not_Implemented_Error.

  The effect of this query is implementation-specific. In case of GNAT, it may
  return non-empty results only for tagged types, the result may contain the
  _tag field and probably the _parent field (but I'm not completely sure
  concerning _parent_). The problem is that the tree created with '-gnatc'
  does not contain any information related to these fields.

  I have no idea how important returning the information about _tag and
  _parent field may be for applications. If it is not really important, we can
  just always return an empty result, and it makes this query implemented.


17 package Asis.Expressions
    ========================
17.4  function References
  Partially implemented (the case when Implicitly => True is not implemented
  and raised Not_Implemented_Error)

  This query is important for applications, so fixing the hole for implicit
  references should be a high-priority task.

17.5  function Is_Referenced
 The situation is the same as for '17.4'  (function References)

17.21 function Formal_Parameter
 The case when Normalized => True is not implemented and raises
 Not_Implemented_Error.

 May be important for applications

17.22 function Actual_Parameter
 The case when Normalized => True is not implemented and raises
 Not_Implemented_Error

 May be important for applications

17.24 function Discriminant_Expression1
 The case when Normalized => True is not implemented and raises
 Not_Implemented_Error

 May be important for applications

7.30 function Function_Call_Parameters
 The case when Normalized => True definitely needs some more testing. It was
 implemented a long time ago and has not been really used, so the
 implementation may be junk.


'18' package Asis.Statements
     =======================
'18.26' function Call_Statement_Parameters
  The situation is the same as for '17.30' (function Function_Call_Parameters)

'21' package Asis.Ids
     ================
'21.2'  function Hash
'21.3'  function "<"
'21.4'  function ">"
'21.5'  function Is_Nil
'21.6'  function Is_Equal
'21.7'  function Create_Id
'21.8'  function Create_Element
'21.9'  function Debug_Image

  The ASIS Id abstraction is not implemented. The queries from Asis.Ids
  package do not raise any exception, but they return some junk or empty
  results.

  The Id abstraction may be of some interest for some tools, but up for now
  nobody from our customers even has mentioned it (except Thomas, but finally
  (if I've got him right) he founded at the CORBA side some other alternative
  for using ASIS Ids).


'23'  package Asis.Data_Decomposition.Portable_Transfer (optional)
      =================================================
      This optional ASIS Annex is not implemented in the current
      version of ASIS-for-GNAT, and it is not even presented in any
      place-holder form. To be honest, I do not understand what does this
      package mean. Nobody from our customers has ever asked about it.