anchor.diff:    var options = new Options();
     options.sdkPath = args['sdk-path'];
     options.packageRoots = args['package-root'].split(',');
  +  options.templateRoots = args['template-root'].split(',');
     options.output = args['out'];
     if (args['url-rewrites'] != null) {
       options.urlRewrites = new LinkedHashMap.fromIterable(
  
positive.code:   Map<String, String> templates = {};
  
    var c = new SourceCrawler(options.sdkPath, options.packageRoots);
    var visitor =
        new TemplateCollectingVisitor(templates, options.skippedClasses, c);
    c.crawl(options.entryPoint,
        (CompilationUnitElement compilationUnit, SourceFile source) =>
            visitor(compilationUnit, source.canonicalPath));
  
negative.code:     print('output: ${options.output}');
      print('sdk-path: ${options.sdkPath}');
      print('package-root: ${options.packageRoots.join(",")}');
      print('template-root: ${options.templateRoots.join(",")}');
      var rewrites = options.urlRewrites.keys
          .map((k) => '${k.pattern},${options.urlRewrites[k]}')
          .join(';');
  