anchor.diff:      io_lib:format("not yet implemented '~s'", [What]);
   format_error(E) -> file:format_error(E).
   
  +%% Begin; Added by Huiqing Li
  +scan_file(Ifile, Path, Predefs) ->
  +    case open(Ifile, Path, Predefs) of 
  +	{ok, Epp} ->
  +	    Toks = scan_file(Epp), close(Epp), {ok, Toks};
  +	{error, _E} -> []
  +    end.
  +
  +scan_file(Epp) ->
  +    case epp_request(Epp, scan_erl_form) of
  +      {ok, Toks} -> 
  +	    Toks ++  scan_file(Epp);
  +      {error, _E} -> scan_file(Epp);
  +      {eof, _Line} -> []
  +    end.
  +
   %% parse_file(FileName, IncludePath, [PreDefMacro]) ->
   %%	{ok,[Form]} | {error,OpenError}
   
  
positive.code: scan_toks([{'-',_Lh},{atom,Ld,undef}|Toks], From, St) ->
      scan_undef(Toks, Ld, From, St);
  scan_toks([{'-',_Lh},{atom,Li,include}|Toks], From, St) ->
      scan_include(Toks, abs(Li), From, St);
  scan_toks([{'-',_Lh},{atom,Li,include_lib}|Toks], From, St) ->
      scan_include_lib(Toks, abs(Li), From, St);
  scan_toks([{'-',_Lh},{atom,Li,ifdef}|Toks], From, St) ->
      scan_ifdef(Toks, Li, From, St);
  scan_toks([{'-',_Lh},{atom,Li,ifndef}|Toks], From, St) ->
  
negative.code:             [Form | interpret_file_attr(Forms, 0, [File, Delta | Fs])]
      end;
  interpret_file_attr([Form0 | Forms], Delta, Fs) ->
      Form = erl_lint:modify_line(Form0, fun(L) -> {abs(element(1, L)) + Delta, element(2, L)} end),
      [Form | interpret_file_attr(Forms, Delta, Fs)];
  interpret_file_attr([], _Delta, _Fs) ->
      [].
  