anchor.diff:      Tokens = coalesce_strings(Tokens0),
       scan_include_lib1(Tokens, Inc, From, St).
   
  -scan_include_lib1([{'(',_Llp},{string,_Lf,_NewName0},{')',_Lrp},{dot,_Ld}],
  +scan_include_lib1([{'(',_Alp},{string,_Af,_NewName0},{')',_Arp},{dot,_Ad}],
                     Inc, From, St)
     when length(St#epp.sstk) >= 8 ->
       epp_reply(From, {error,{loc(Inc),epp,{depth,"include_lib"}}}),
       wait_req_scan(St);
  -scan_include_lib1([{'(',_Llp},{string,_Lf,NewName0},{')',_Lrp},{dot,_Ld}],
  +scan_include_lib1([{'(',_Alp},{string,_Af,NewName0},{')',_Arp},{dot,_Ad}],
                     Inc, From, St) ->
       NewName = expand_var(NewName0),
       Loc = start_loc(St#epp.location),
  
positive.code: %% scan_endif(Tokens, EndifToken, From, EppState)
  %%  If we are in an if body then exit it, else report an error.
  
  scan_endif([{dot,_Ld}], Endif, From, St) ->
      case St#epp.istk of
  	[_I|Cis] ->
  	    scan_toks(From, St#epp{istk=Cis});
  
negative.code: 
  %% count_args(Tokens, MacroLine, MacroName)
  %%  Count the number of arguments in a macro call.
  count_args([{'(', _Alp},{')',_Arp}|_Toks], _Lm, _M) ->
      0;
  count_args([{'(', _Alp},{',',_Ac}|_Toks], Lm, M) ->
      throw({error,Lm,{arg_error,M}});
  count_args([{'(',_Alp}|Toks0], Lm, M) ->
      {_Arg,Toks1} = macro_arg(Toks0, [], []),
      count_args(Toks1, Lm, M, 1);
  count_args(_Toks, _Lm, _M) ->
      none.
  
  count_args([{')',_Arp}|_Toks], _Lm, _M, NbArgs) ->
      NbArgs;
  count_args([{',',_Ac},{')',_Arp}|_Toks], Lm, M, _NbArgs) ->
      throw({error,Lm,{arg_error,M}});
  count_args([{',',_Ac}|Toks0], Lm, M, NbArgs) ->
      {_Arg,Toks1} = macro_arg(Toks0, [], []),
      count_args(Toks1, Lm, M, NbArgs+1);
  count_args([], Lm, M, _NbArgs) ->
  