Have a look at Doxygen