anchor.diff:  
       var formattedSource = formatter.writer.toString();
   
  -    checkTokenStreams(startToken, tokenize(formattedSource),
  -                      allowTransforms: options.codeTransforms);
  +    /*checkTokenStreams(startToken, tokenize(formattedSource),
  +                      allowTransforms: options.codeTransforms);*/
   
       return new FormattedSource(formattedSource, formatter.selection);
     }
   }
   
  -class StripSourceVisitor extends SourceVisitor {
  +class StripSourceVisitor extends SourceVisitor { 
     StripSourceVisitor(options, lineInfo, source, preSelection): super(options, lineInfo, source, preSelection);
  +  
  +  @override
  +  visitTypeName(TypeName node) {
  +    visit(node.name);
  +    visit(node.typeArguments);
  +  }
  +  
  +
  +  @override
  +  visitVariableDeclarationList(VariableDeclarationList node) {
  +    visitMemberMetadata(node.metadata);
  +    modifier(node.keyword);
  +    //visitNode(node.type, followedBy: space); This is the type of the variables, so instead we put in 'var'
  +    Identifier ident = new SimpleIdentifier(new KeywordToken(Keyword.VAR, node.type.beginToken.offset));
  +    visitNode(ident, followedBy: space);
  +
  +    var variables = node.variables;
  +    // Decls with initializers get their own lines (dartbug.com/16849)
  +    if (variables.any((v) => (v.initializer != null))) {
  +      var size = variables.length;
  +      if (size > 0) {
  +        var variable;
  +        for (var i = 0; i < size; i++) {
  +          variable = variables[i];
  +          if (i > 0) {
  +            var comma = variable.beginToken.previous;
  +            token(comma);
  +            newlines();
  +          }
  +          if (i == 1) {
  +            indent(2);
  +          }
  +          variable.accept(this);
  +        }
  +        if (size > 1) {
  +          unindent(2);
  +        }
  +      }
  +    } else {
  +      visitCommaSeparatedNodes(node.variables);
  +    }
  +  }
  +  
  +  @override
  +  visitMethodDeclaration(MethodDeclaration node) {
  +      visitMemberMetadata(node.metadata);
  +      modifier(node.externalKeyword);
  +      modifier(node.modifierKeyword);
  +      //Here the return type are printed so we don't write anything out.
  +      if (!STRIP_METHOD_SIG) visitNode(node.returnType, followedBy: space);
  +      
  +      modifier(node.propertyKeyword);
  +      modifier(node.operatorKeyword);
  +      visit(node.name);
  +      if (!node.isGetter) {
  +        visit(node.parameters);
  +      }
  +      visitPrefixedBody(nonBreakingSpace, node.body);
  +    }
   }
   
  
positive.code: import 'dart:io';
  
  import 'package:analyzer/src/services/formatter_impl.dart';
  
  main(List<String> args) {
    print('working dir ${new File('.').resolveSymbolicLinksSync()}');
  
    if (args.length == 0) {
      print('Usage: parser_driver [files_to_parse]');
  
negative.code:   }
  
    for (var arg in args) {
      StripCodeFormatterImpl cf = new StripCodeFormatterImpl(const FormatterOptions());
      File file = new File(arg); 
      var src = file.readAsStringSync();
      FormattedSource fs = cf.format(CodeKind.COMPILATION_UNIT, src);
  