anchor.diff:        }
         ++i;
       }
  -    return i - 1;
     }
   }
   
  
positive.code:            ._tokens;
    }
  
    Rewriter _scan(block) {
      num i = 0;
      List token;
      while (i < _tokens.length) {
        token = _tokens[i];
        i += block(token, i, _tokens);
      }
      return this;
    }
  
    Rewriter _addImplicitBraces() {
      List stack = [], tok;
      bool sameLine = true;
  
      var condition = (token, i) {
            var tag = token[0];
            if (LINEBREAKS.indexOf(tag) != -1) {
              sameLine = false;
            }
            return (tag == 'newline' || tag == 'outdent') && sameLine;
          },
          action = (token, i) {
            var tok = ['}', false, token[2]];
            return _tokens.insertRange(i, 1, tok);
          };
  
      return _scan((token, i, tokens) {
        String tag = token[0];
        List tok;
  
        if (EXPRESSION_START.indexOf(tag) != -1) {
          stack.add([(tag == 'indent' && tokens[i - 1][0] == '{' ? '{' : tag), i]);
  
negative.code: 
        sameLine = true;
        stack.add(['{']);
        var tok = ['{', null, token[2]];
        tokens.insertRange(i - 1, 1, tok);
  
        _detectEnd(i + 2, condition, action);
  