aspect Reachable { syn boolean MethodDecl.reachable() circular [false] { if (name().equals("main")) return true; for (Iterator iter = callers().iterator(); iter.hasNext();) { MethodDecl m = (MethodDecl) iter.next(); if (m.reachable()) return true; } return false; } }