ASIS is the Ada Semantic Interface Specification. It's basically an abstract interface into the underlying compiler's data structures. With it, you can build code that queries the data structures created by the compiler and then write tools that use those structures. There's an ASIS4GNAT project hosted as http://www.sourceforge.net and there's also an ASIS library with the OCS PowerAda compiler that I've used. I suspect other compilers also provide such an interface. See http://www.acm.org/sigada/WG/asiswg/ for an introduction. But using an ASIS implementation generally requires starting with compiled Ada code. I think you're going the other way, right? What I meant to suggest was that you look into whether you wanted to map your C++ classes as a private type, tagged type or variant record based on the methods in use. -- Karl --