anchor.diff:        }
         if (token[0] == 'ident' && (tokens[i + 1][0] == 'space' && tokens[i + 2][0] == 'selector')) {
           token[0] = 'selector';
  -        token[1] += ' ${tokens[i + 2][1]}';
  +        token[1] = token[1].concat(' ${tokens[i + 2][1]}');
           tokens.removeRange(i + 1, 2);
         }
         return 1;
       });
     }
   
  -  num _detectEnd(i, condition, action) {
  -    num levels = 0;
  -    List token;
  +  void _detectEnd(num i, Condition condition, Action action) {
  +    var levels = 0;
       while (i < _tokens.length) {
  -      token = _tokens[i];
  +      var token = _tokens[i];
         if (levels == 0 && condition(token, i)) {
           return action(token, i);
         }
         if (levels < 0) {
  -        return action(token, i - 1);
  +        return action(token, i);
         }
         if (EXPRESSION_START.indexOf(token[0]) != -1) {
           ++levels;
  
positive.code:       }
        ++i;
      }
      return i - 1;
    }
  }
  
  
negative.code: 
        sameLine = true;
        stack.add(['{']);
        var tok = ['{', null, token[2]];
        tokens.insertRange(i - 1, 1, tok);
  
        _detectEnd(i + 2, condition, action);
  