トークン クラス
これまでC# で作成してきた「SourceToHTML」を、Delphi に焼きなおしてみます。
Token.pas
//*******************************************************************************************************
// トークン情報クラス
//*******************************************************************************************************
unit Token;interface
type
TToken = class
private
function getTokenHtml():WideString;public
tokenString:WideString; // トークンの文字列
tokenKind: string; // トークンの種類
IsFixed: Boolean; // 確定済みかconstructor Create(argString:WideString; argKind:string);
property tokenHtml:WideString read getTokenHtml;end;
implementation
//----------------------------------------------------------------------------------------------------
// 初期化
//----------------------------------------------------------------------------------------------------
constructor TToken.Create(argString:WideString; argKind:string);
begin
tokenString := argString;
tokenKind := argKind;
IsFixed := false;
end;
//----------------------------------------------------------------------------------------------------
// "<", ">", "&", "(", "), "|" を変換
//----------------------------------------------------------------------------------------------------
function TToken.getTokenHtml():WideString;
var
htmlString:WideString;
c: WideChar;
i: Integer;
begin
htmlString := '';
for i := 1 to Length(tokenString) do
begin
c := tokenString[i];if (c = '<') then htmlString := htmlString + '<'
else if (c = '>') then htmlString := htmlString + '>'
else if (c = '&') then htmlString := htmlString + '&'
else if (c = '(') then htmlString := htmlString + '(' //はてな用
else if (c = ')') then htmlString := htmlString + ')' //はてな用
else if (c = '|') then htmlString := htmlString + '|' //はてな用
else htmlString := htmlString + c;
end;result := htmlString;
end;end.