anchor.diff:  class _Tokenizer implements Iterator<_Token> {
     static final _FIELD_NAME_PATTERN = new RegExp(r'[a-zA-Z][a-zA-Z0-9_]*');
     static final _WHITESPACE_PATTERN = new RegExp(r'\s+');
  -  
  +
     final String input;
     int index;
     _Token _current;
  -  
  +
     _Tokenizer(this.input):
       index = 0;
  -  
  +
     _Token get current => _current;
  -  
  +
     bool moveNext() {
       if (_current != null) {
         index += _current.length;
       }
       _current = null;
  -    
  +
       _skipWhitespace();
  -    
  +
       if (index >= input.length)
         return false;
  -    
  +
       var match = _FIELD_NAME_PATTERN.matchAsPrefix(input, index);
       if (match != null)
         _current = new _Token(_Token.FIELD_NAME, match.group(0));
  
positive.code:       return matchSubpaths;
      }
      //Allow subpaths in the match, since we've already matched at the correct depth
      //against one of the fields. 
      return parent._matchPath(path, matchSubpaths: true);
    }
    
    Map<String,dynamic> _filterMap(Map<String,dynamic> map) =>
        new Map.fromIterable(
            fields, 
            key: (k) => k.root.name, 
            value: (k) {
              var fieldValue = map[k.root.name];
              if (fieldValue is Map) {
  
negative.code:     _Tokenizer tokenizer = new _Tokenizer(input);
      return FieldListSelector._parseSelectorList(tokenizer);
    }
  
    /**
     * Parses a selector fragment with `BNF`
     *     selector := any_selector | field_selector
  