anchor.diff:        Analyzer analyzer =  field.getType().getQueryAnalyzer();
         TokenStream tstream = analyzer.reusableTokenStream(field.getName(),reader);
         tstream.reset();
  -      List<Token> tokens = getTokens(tstream);
  +      List<AttributeSource> tokens = getTokens(tstream);
         matches = new HashSet<Tok>();
  -      for (Token t : tokens) { matches.add( new Tok(t,0)); }
  +      for (AttributeSource t : tokens) { matches.add( new Tok(t,0)); }
       }
   
       if (val!="") {
  
positive.code:      } else {
         TokenStream tstream = analyzer.reusableTokenStream(field.getName(),new StringReader(val));
         tstream.reset();
         List<Token> tokens = getTokens(tstream);
         if (verbose) {
           writeHeader(out, analyzer.getClass(), new HashMap<String,String>());
         }
  
negative.code:            writeHeader(out, filtfac.getClass(), filtfac.getArgs());
           }
  
           final Iterator<AttributeSource> iter = tokens.iterator();
           tstream = filtfac.create( new TokenStream(tstream.getAttributeFactory()) {
             
             public boolean incrementToken() throws IOException {
               if (iter.hasNext()) {
                 AttributeSource token = iter.next();
                 Iterator<Class<? extends Attribute>> atts = token.getAttributeClassesIterator();
                 while (atts.hasNext()) // make sure all att impls in the token exist here
                   addAttribute(atts.next());
                 token.copyTo(this);
                 return true;
               } else {
                 return false;
  