Source Code Analysis Using Java 6 APIs taken from https://today.java.net/pub/a/today/2008/04/10/source-code-analysis-using-java-6-compiler-apis.html