anchor.diff:    }
   }
   
  -Future<void> main(List<String> arguments) async {
  -  var parser = ArgParser();
  -  parser.addFlag("verbose", abbr: "v", help: "print additional information");
  -  parser.addFlag("write", abbr: "w", help: "write output to input file");
  -  var results = parser.parse(arguments);
  -  if (results.rest.length != 1) {
  -    print("Usage: convert_multi_test.dart [-v] [-w] <input file>");
  -    exitCode = 1;
  -    return;
  -  }
  -  var verbose = results["verbose"] as bool;
  -  var testFilePath = Uri.base.resolve(results.rest.single).toFilePath();
  +Future<void> convertFile(String testFilePath, bool writeToFile, bool verbose,
  +    List<String> experiments) async {
     var testFile = File(testFilePath);
     if (!await testFile.exists()) {
       print("File '${testFile.uri.toFilePath()}' not found");
  
positive.code:     // and output the result.
      var annotatedContent =
          updateErrorExpectations(contentWithoutMarkers, errors[0]);
      var writeToFile = results["write"] as bool;
      if (writeToFile) {
        await testFile.writeAsString(annotatedContent);
        print("Converted test '${test.path.toNativePath()}'.");
  
negative.code: 
  Future<List<StaticError>> getErrors(
      List<String> options, String filePath) async {
    var analyzerErrors = await runAnalyzer(filePath, options);
    if (analyzerErrors == null) {
      exit(1);
    }
    var cfeErrors = await runCfe(filePath, options);
    if (cfeErrors == null) {
      exit(1);
    }
    return [...analyzerErrors, ...cfeErrors];
  }
  
  bool areSameErrors(List<StaticError> first, List<StaticError> second) {
  