anchor.diff:      InForm, InP: Boolean;
       PreBlock, FormBlock, PBlock: TBlock;
   
  -    procedure CollectPreText;
  -    // Considers the current data as pure text and collects everything until
  -    // the input ends or one of the reserved tokens is found.
  -    var
  -      Buffer: TCharCollection;
  -      CodePage, SaveIndex: Integer;
  -      Entity: ThtString;
  -    begin
  -      CodePage := PropStack.Last.CodePage;
  -      Buffer := TCharCollection.Create;
  -      try
  -        while True do
  -          case LCh of
  -            #1..#8, EOFChar, LessChar, CrChar:
  -              break;
  -
  -            AmperChar:
  -              begin
  -                SaveIndex := PropStack.SIndex;
  -                Entity := GetEntityStr(CodePage);
  -                if not LinkSearch then
  -                  Buffer.Add(Entity, SaveIndex);
  -              end;
  -
  -          else
  -            {Get any normal text, including spaces}
  -            if not LinkSearch then
  -              Buffer.Add(LCh, PropStack.SIndex);
  -            GetCh;
  -          end;
  -
  -        if Buffer.Size > 0 then
  -          S.AddString(Buffer);
  -      finally
  -        Buffer.Free;
  -      end;
  -    end;
  -
       procedure FormEnd;
       begin
         PropStack.Document.CurrentForm := nil;
  
positive.code:     function PropStackIndex: Integer;
      procedure PopProp; 
      function ExtractCharsetFromXMLProlog : Boolean;
    public
      constructor Create(Doc: TBuffer);
      destructor Destroy; override;
  
negative.code:           #0:
              Done := True;
          else
            CollectText(S,LW);
          end;
        if InForm then
          FormEnd
  