anchor.diff:        root = '.';
       }
   
  -    List<List<String>> lines = [];
  -    var result = an.parseFile(
  -        path: file.path, featureSet: FeatureSet.fromEnableFlags([]));
  -    var unit = result.unit;
  +    final lines = <List<String>>[];
  +    var unit, result;
  +    try {
  +      result =
  +          an.parseFile(path: file.path, featureSet: FeatureSet.fromEnableFlags([]));
  +      unit = result.unit;
  +    } catch (e) {
  +      print('ERROR: unable to generate tags for ${file.path}');
  +      return lines.map((line) => line.join('\t').trimRight());
  +    }
   
       // import directives
       unit.directives.forEach((d) {
  
positive.code: }
  
  void main([List<String> args]) {
    ArgParser parser = ArgParser();
    parser.addOption('output',
        abbr: 'o',
        help: 'Output file for tags (default: stdout)',
        valueHelp: 'FILE');
    parser.addFlag('follow-links',
        help: 'Follow symbolic links (default: false)', negatable: false);
    parser.addFlag('include-hidden',
  
negative.code:   }
  
    Future<Iterable<Iterable<String>>> addFileSystemEntity(String name) {
      final type = FileSystemEntity.typeSync(name);
  
      if (type == FileSystemEntityType.directory) {
        return Directory(name)
  