anchor.diff:      more([], Stack, Toks, {Line, Col}, State, Errors, TabWidth, FileFormat, fun scan_string/8);
   scan_string(Eof, Stack, _Toks, {Line, Col}, State, Errors, TabWidth,FileFormat) ->
       [StartPos, $" | S] = reverse(Stack),
  -    refac_io:format("Stack:\n~p\n", [S]),
       SS = string:substr(S, 1, 16),
       done(Eof, [{{string, $", SS}, StartPos} | Errors], [],
   	 {Line, Col}, State, TabWidth,FileFormat).
   
  -%% scan_string_escape([nl | Cs], Stack, Toks, {Line, _Col}, State, Errors, TabWidth,FileFormat) ->
  -%%      scan_string(Cs, [$\n | Stack], Toks, {Line + 1, 1}, State, Errors, TabWidth,FileFormat);
  -%% scan_string_escape([C | Cs], Stack, Toks, {Line, Col}, State, Errors, TabWidth,FileFormat) ->
  -%%      scan_string(Cs, [C| Stack], Toks, {Line, Col+1}, State, Errors, TabWidth,FileFormat);
  -%% scan_string_escape(Eof, Stack, _Toks, {Line, Col},State, Errors, TabWidth,FileFormat) ->
  -%%     [StartPos, $" | S] = reverse(Stack),
  -%%     SS = string:substr(S, 1, 16),
  -%%     done(Eof, [{{string, $", SS}, StartPos} | Errors], [],
  -%% 	 {Line, Col + length(S) + 2}, State, TabWidth,FileFormat).
  +scan_string_escape([nl | Cs], Stack, Toks, {Line, _Col}, State, Errors, TabWidth,FileFormat) ->
  +      scan_string(Cs, [$\n | Stack], Toks, {Line + 1, 1}, State, Errors, TabWidth,FileFormat);
  +scan_string_escape([C | Cs], Stack, Toks, {Line, Col}, State, Errors, TabWidth,FileFormat) ->
  +      scan_string(Cs, [C| Stack], Toks, {Line, Col+1}, State, Errors, TabWidth,FileFormat);
  +scan_string_escape(Eof, Stack, _Toks, {Line, Col},State, Errors, TabWidth,FileFormat) ->
  +     [StartPos, $" | S] = reverse(Stack),
  +    SS = string:substr(S, 1, 16),
  +    done(Eof, [{{string, $", SS}, StartPos} | Errors], [],
  + 	 {Line, Col + length(S) + 2}, State, TabWidth,FileFormat).
   
   scan_qatom([$' | Cs], Stack, Toks, {Line, Col}, State, Errors, TabWidth,FileFormat) ->
       [StartPos, $' | S] = reverse([$'|Stack]),
  
positive.code: name_char(_) -> false.
  
  scan_char([$\\ | Cs], Stack, Toks, {Line, Col}, State, Errors, TabWidth,FileFormat) ->
       sub_scan_escape(Cs, [fun scan_char_escape/8, $\\ | Stack], Toks, {Line, Col+1}, State, Errors, TabWidth,FileFormat);
  scan_char([$\n | Cs], Stack, Toks, {Line, Col}, State,  Errors, TabWidth,FileFormat) ->
      scan(Cs, Stack, [{char, {Line, Col}, $\n} | Toks], {Line + 1, Col}, State, Errors, TabWidth,FileFormat);
  scan_char([], Stack, Toks, {Line, Col}, State, Errors, TabWidth,FileFormat) ->
      more([], Stack, Toks, {Line, Col}, State, Errors, TabWidth, FileFormat, fun scan_char/8);
  scan_char(Cs, Stack, Toks, {Line, Col}, State,Errors, TabWidth,FileFormat) ->
      scan_char_escape(Cs, Stack, Toks, {Line, Col}, State, Errors, TabWidth,FileFormat).
  
  scan_char_escape([nl | Cs], Stack, Toks, {Line, Col}, State, Errors, TabWidth,FileFormat) ->
      scan(Cs, Stack, [{char, {Line, Col}, $\n} | Toks], {Line + 1, 1}, State, Errors, TabWidth,FileFormat);
  scan_char_escape([C | Cs], Stack, Toks, {Line, Col}, State, Errors, TabWidth,FileFormat) ->
      C1 = case Stack of  [$\\|_] -> escape_char(C);  _ -> C end,
      scan(Cs, Stack, [{char, {Line, Col-1}, C1} | Toks],{Line, Col + 1}, State, Errors, TabWidth,FileFormat);
  scan_char_escape(Eof, _Stack, _Toks, {Line, Col}, State, Errors, TabWidth,FileFormat) ->
      done(Eof, [{char, {Line, Col}} | Errors], [], {Line, Col + 1}, State, TabWidth,FileFormat).
  
  
negative.code: sub_scan_escape([O1 | Cs], [Fun | Stack], Toks,
  		{Line, Col}, State, Errors, TabWidth,FileFormat)
      when O1 >= $0, O1 =< $7 ->
      %%Val = O1 - $0,
      Fun([O1 | Cs], Stack, Toks, {Line, Col}, State,
  	Errors, TabWidth,FileFormat);
  %% \^X -> CTL-X
  sub_scan_escape([$^, C | Cs], [Fun | Stack], Toks,
  		{Line, Col}, State, Errors, TabWidth,FileFormat) ->
      %%Val = C band 31,
      Fun([C | Cs], Stack, Toks, {Line, Col}, State,
  	Errors, TabWidth,FileFormat);
  sub_scan_escape([$^] = Cs, Stack, Toks, {Line, Col},
  		State, Errors, TabWidth,FileFormat) ->
  