Clang cross-referenced source code

I have been making progress using Clang as C and C++ parsers for Synopsis (http://synopsis.fresco.org). While there is a lot that remains to be implemented (both, in libclang, as well as Synopsis), quite a lot of the functionality is already useful, so I'd like to send an update, to encourage contributions.

To demonstrate some of the features, I have compiled an API cross-reference for Clang itself: http://synopsis.fresco.org/clang/.

You can use the above to look up symbols, browse the code itself, look for all the places that reference a particular symbol, etc.
This doesn't yet include inline documentation, because that isn't yet fully implemented. Also, a number of details are missing (you may see lots of "<unknown>" type specifiers, which means that libclang is reporting "Unexposed" types.

As I said, any contribution to fill the wholes is more than welcome. Perhaps some of the remaining work can be done as GSoC work ?

The above was produced with CLang and Synopsis trunk. Perhaps it would be useful to set up regular automated builds so a current status of the work would be accessible via http://clang.llvm.org/ ?

Thanks,
         Stefan

Hmm. This page can be used as HTML parsing benchmark for browsers :wink:

Hah, true, there is a fairly large amount of data. Certain views may be better split into individual pages (such as the name index). This is just a simple prototype to show what is currently possible with CLang-based code cross-referencing. As I mentioned, any help to improve on this is very much appreciated. :slight_smile:

     Stefan

I have been making progress using Clang as C and C++ parsers for
Synopsis (http://synopsis.fresco.org). While there is a lot that remains
to be implemented (both, in libclang, as well as Synopsis), quite a lot
of the functionality is already useful, so I'd like to send an update,
to encourage contributions.

...

The above was produced with CLang and Synopsis trunk. Perhaps it would
be useful to set up regular automated builds so a current status of the
work would be accessible via http://clang.llvm.org/ ?

I'm really excited about your project, however, I didn't find the nightly build, and the address to the repository (http://synopsis.fresco.org/viewsvn/Synopsis) does not work. Did I miss something?

regards

Fabio

Hi Fabio,

The above was produced with CLang and Synopsis trunk. Perhaps it would
be useful to set up regular automated builds so a current status of the
work would be accessible via http://clang.llvm.org/ ?

I'm really excited about your project, however, I didn't find the
nightly build, and the address to the repository
(http://synopsis.fresco.org/viewsvn/Synopsis) does not work. Did I miss
something?

The nightly build doesn't exist. I merely proposed to set one up, to be able to track progress on both libclang as well as Synopsis, and to actually start using this for Clang's own (self-hosted) API documentation.

The Synopsis website is still somewhat broken, unfortunately. The source repository can be accessed via http://synopsis.fresco.org/svn/synopsis/trunk/.

Regards,
     Stefan