Does your project needs to "analyze" it's own code or some other code? Does it need to do it in build time or in the runtime?