GASR (General-purpose Aspectual Source code Reasoner) is a tool for answering user-specified questions about the structure as well as the behavior of an aspect-oriented program. Examples range from "which pointcut definitions are overridden in a subtype?" over "which pointcuts have a join point shadow in an advice?" to "can these advices be executed consecutively?". Such questions have to be specified as a logic query of which the conditions quantify over the program’s source code.
GASR has been implemented as an extension to the Ekeko meta-programming library.
Our SCAM13 paper [1] has more details.
Available from the GASR GitHub repository.