anchor.diff:  Selection selection;
   final List<String> paths = [];
   
  +
  +const HELP_FLAG = 'help';
  +const KIND_FLAG = 'kind';
  +const MACHINE_FLAG = 'machine';
  +const WRITE_FLAG = 'write';
  +const SELECTION_FLAG = 'selection';
  +const TRANSFORM_FLAG = 'transform';
  +const MAX_LINE_FLAG = 'max_line_length';
  +
  +
   const FOLLOW_LINKS = false;
   
   
  
positive.code: ArgParser _initArgParser() {
    // NOTE: these flags are placeholders only!
    var parser = new ArgParser();
    parser.addFlag('write', abbr: 'w', negatable: false,
        help: 'Write reformatted sources to files (overwriting contents).  '
              'Do not print reformatted sources to standard output.');
    parser.addOption('kind', abbr: 'k', defaultsTo: 'cu',
        help: 'Specify source snippet kind ("stmt" or "cu")'
              ' --- [PROVISIONAL API].', hide: true);
    parser.addFlag('machine', abbr: 'm', negatable: false,
        help: 'Produce output in a format suitable for parsing.');
    parser.addOption('selection', abbr: 's',
        help: 'Specify selection information as an offset,length pair '
              '(e.g., -s "0,4").', hide: true);
    parser.addFlag('transform', abbr: 't', negatable: true,
        help: 'Perform code transformations.');
    parser.addFlag('help', abbr: 'h', negatable: false,
        help: 'Print this usage information.');
    return parser;
  }
  
negative.code: }
  
  _readOptions(options) {
    kind = _parseKind(options[KIND_FLAG]);
    machineFormat = options[MACHINE_FLAG];
    overwriteFileContents = options[WRITE_FLAG];
    selection = _parseSelection(options[SELECTION_FLAG]);
    formatterSettings =
        new FormatterOptions(codeTransforms: options[TRANSFORM_FLAG],
            pageWidth: _toInt(options[MAX_LINE_FLAG]));
  }
  
  CodeKind _parseKind(kindOption) {
  