At first glance it looks like I need to use the experimental "Java Tree API" released in Java6: http://java.sun.com/javase/6/docs/jdk/api/javac/tree/index.html
Specifically, it looks like one uses JavacTask.parse() to return a collection of Trees and somehow uses them to walk the source-code. I will investigate this further and report back here if I figure this out :)
Gili