anchor.diff:  
   type
   
  -  TMacroDrv = class
  +  TMacroDrv = class(TPersistent)
       constructor create; virtual; abstract;
       procedure execute(inNode: PParseNode); virtual; abstract;
      protected
  
positive.code:     FoutData: TStringList;
      FsearchDirs: string;
      FgiantError: boolean;
     public
      property err: TError read Ferr write Ferr;
      property gmr: TGmr read Fgmr write Fgmr;
  
negative.code: 
  implementation
  
  function TMacroDrv.join(data: strArr; joinStr: string = #10; lower: word = 0; upper: word = 65535): string;
  var i: word;
  begin
    result := '';
    if length(data) <= lower then exit;
    for i := lower to length(data)-1 do
    begin
      if i > upper then break;
      result := result + data[i] + joinStr;
    end;
  end;
  
  
  end.
   
  