anchor.diff:    args: TStringArray;
   begin
     macro := MacroName;
  -  Log('Found macro: '+macro, ltInfo);
  +  Log('Found macro: '+macro, ltInfo);     // TODO remove
     if (macro = 'if') then begin
       if (not (P^ = '(')) then begin
         raise Exception.Create('Missing ( for `if macro');
  
positive.code:       // TODO: include line?
        raise Exception.Create('Unterminated macro, missing }');
      end;
      Inc(P);
    end;
  end;
  
  
negative.code:     // no args
      exit;
    end;
    IncP;
    idx := 0;
    while (not (P^ in [')', #0])) do begin
      arg := ConsumeTokensTill([',', ')']);
  