変換処理 呼び出し用クラス

これまでC# で作成してきた「SourceToHTML」を、Delphi に焼きなおしてみます。

Convert.pas


//*******************************************************************************************************
// HTML変換処理 呼び出しクラス
//*******************************************************************************************************
unit Convert;

interface

uses
TextReader, TextWriter, Token, TokenReader, TokenWriter;

type
TConvert = class
public
procedure charcopy(reader:TTextReader; writer:TTextWriter);
procedure tohtml(reader:TTextReader; writer:TTextWriter; langType:string);
end;

implementation
//---------------------------------------------------------------------------------------------------
// ファイルの終わりまで、1文字ずつ読んで、1文字ずつ書く
//---------------------------------------------------------------------------------------------------
procedure TConvert.charcopy(reader:TTextReader; writer:TTextWriter);
var
c:WideChar;
begin
//ファイルの終わりまで、1文字ずつ読んで
while true do
begin
c := reader.getChar();
if (c = EOF) then break;
//1文字ずつ書く
writer.putChar(c);
end;
end;
//---------------------------------------------------------------------------------------------------
// HTML に書式化して出力
//---------------------------------------------------------------------------------------------------
procedure TConvert.tohtml(reader:TTextReader; writer:TTextWriter; langType:string);
var
tokenReader:TTokenReader;
tokenWriter:TTokenWriter;
token: TToken;
begin
tokenReader := TTokenReader.CreateTokenReader(reader, langType);
tokenWriter := TTokenWriter.Create(writer);

//ファイルの終わりまで、1区切りずつ読んで
while true do
begin
token := tokenReader.getToken();
if (token = nil) then break;

//文字列の種類に応じた色指定タグで挟んで出力する
tokenWriter.putToken(token);
end;

tokenReader.Free;
tokenWriter.Free;

tokenReader := nil;
tokenWriter := nil;
end;

end.