public boolean visit(SimpleName node) {
   if (fIgnoreBinding != null && Bindings.equals(fIgnoreBinding, node.resolveBinding()))
     return false;
   if (fIgnoreRange != null && fIgnoreRange.covers(node)) return false;
   fScope.addName(node.getIdentifier());
   return false;
 }
 public boolean visit(FunctionInvocation node) {
   Expression receiver = node.getExpression();
   if (receiver == null) {
     SimpleName name = node.getName();
     if (fIgnoreBinding == null
         || (name != null && !Bindings.equals(fIgnoreBinding, name.resolveBinding())))
       node.getName().accept(this);
   } else {
     receiver.accept(this);
   }
   accept(node.arguments());
   return false;
 }