Monday, February 25, 2002

I have an idea that I can post the results
of the introspector to the blog.

SQL query
and
Results as blog.

This is a test of blogger.
I am using emacs 20.7.2 on debian potato 2.2.
using blogger.el from Mark A. Hershberger.

The ANTLR is a great parsing tool.
ANTRL

Here are all the nodes types declared
introspector/introspector/introspectorx

Here are the database tables :

Important are node_base, node_identifiable (anything with a name), node_identifier, node_decl, node_type_decl.
Also node_record_type, node_field_decl

introspector/introspector/output/SQL

Found another interesting project
http://mozart-dev.sourceforge.net/
and i quote

How does Mozart implement Introspection in C++?
From a practical point of view, the major difference between Xroma and Mozart is the existence in Mozart of a tone preprocessor, which constructs dynamic dispatch information automatically from the C++ source. In my Xroma implementation, this had to be done manually, which was a real pain. This tone preprocessor effectively implements introspection in C++, that is the capability to get an in-depth description of data types at run-time.

The adopted syntax adds four "keywords":

tone introduces a tone type, which has associated introspective information generated by the tone preprocessor. For instance, tone X will have its type information stored in a StructTone structure named X_T.
ref, placed before a data member declaration, indicates that this data member should appear in the corresponding StructTone. ref stands for "reflective", even though this is stricly speaking only introspective today.
performer declares a performer name, arguments and return type.
perform declares or defines the implementation of a performer for a particular tone.

Related Project DCT
DCT: The Document Comprehension Tool

update: 3/14/2001 I've found some projects working very nearly along the same lines as mine. The Software Development Foundation (SDS) is a system supporting analysis and manipulation of source code in multiple languages, based on an XML format for storage and inter-communication between SDS-compliant tools. Very much like my own design! Also, the Synopsis project describes itself as a code documentation tool with support for multiple languages; perhaps not as ambitious at SDS or my DCT, but more achievable... I may need to think about alliances with or support of these efforts. Along similar lines, the Introspector project, rather than create a new code analysis tool, seeks to augment the existing GCC compiler system to store the information needed for analysis tasks -- potentially leveraging the depth of GCC to create a system more powerful than any individual tool.

Related Project Eidola
Eidola references
The GCC Node Introspector is working on using XML to externalize the internal parse structures of GCC. There was some discussion of whether the patents held by Microsoft regarding Intentional Programming threaten this project; this discussion obviously has relevance for Eidola as well.

Related Project CPPX using GXL
GXL (0.99) Schema Representation
Here is a model of GXL