var
MemStream: TMemoryStream;
Parser: TParser;
Token: Char;
Line: Integer;
begin
MemStream := TMemoryStream.Create;
Memo1.Lines.SaveToStream(MemStream);
MemStream.Seek(soFromBeginning, 0);
Parser := TParser.Create(MemStream);
Line := 1;
repeat
while Line < Parser.SourceLine do
begin
Memo2.Lines.Add('<cr>');
Inc(Line);
end;
Memo2.Lines.Add(Parser.TokenString);
until Parser.NextToken = toEof;
Parser.Free;
MemStream.Free;
end;