anchor.diff:      private
         table: array[0..HashSize] of PGmrNode;
         Fcurrent: PGmrNode;
  +      settings: TStringHash;
       public
  +      constructor create(in_settings: TStringHash);
         destructor destroy; override;
         procedure add(const lhs, rhs: string); overload;
         procedure add(const lhs, rhs: string; re: TRegExp); overload;
  
positive.code:   done: boolean;
    term: string;
    nonterm: string;
    dumbAtom: PGmrAtom;
  begin
    new(dumbNode);
  
negative.code:       else
        if gmrMatchM.match(s) = true then
        begin
          ghash.add(gmrMatchM.capture[1].captured, gmrMatchM.capture[2].captured, TRegExp.create('\G'+gmrMatchM.capture[2].captured, [SingleLine, MultiLine, Extended]));
        end;
        {
        writeln('---'+gmrMatchN.matched);
  