System.err.println("3DM XML Tree Differencing and Merging Tool. PROTOTYPE: $Revision: 1.1 $"  );
System.err.println("3DM XML Tree Differencing and Merging Tool. PROTOTYPE: $Revision: 1.2 $"  );
  public static void main(String[] args) throws java.io.IOException {    System.err.println("3DM XML Tree Differencing and Merging Tool. PROTOTYPE: $Revision: 1.1 $"  );    // Get command line options    int firstFileIx = parseOpts( args );    if( op == MERGE && (args.length - firstFileIx) == 3 )      merge( firstFileIx, args, System.out );    else if( op == MERGE && (args.length - firstFileIx) == 4 )      merge( firstFileIx, args, new FileOutputStream(args[firstFileIx+3]));    else if( op == DIFF && (args.length - firstFileIx) == 2 )      diff( firstFileIx, args, System.out );    else if( op == DIFF && (args.length - firstFileIx) == 3 )      diff( firstFileIx, args, new FileOutputStream(args[firstFileIx+2]));    else if( op == PATCH && (args.length - firstFileIx) == 2 )      patch( firstFileIx, args, System.out );    else if( op == PATCH && (args.length - firstFileIx) == 3 )      patch( firstFileIx, args, new FileOutputStream(args[firstFileIx+2]));    else {      System.err.println("Usage: 3dm [options] {-m base branch1 branch2|-d base branch1 |-p base patch} [outfile]" );      System.err.println("Use the -m (or --merge) option to merge the files base, branch1 and branch2"  );      System.err.println("Use the -d (or --diff) option to diff the files base and branch1"  );      System.err.println("Use the -p (or --patch) option to patch the file base with the file patch"  );    }  }