文脈情報 クラス

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

Context.pas


//*******************************************************************************************************
// 文脈情報クラス
//*******************************************************************************************************
unit Context;

interface
uses
Token;

type
TContext = class
public
State:WideString; // トークンリーダーの状態

prevChar: WideChar; // 前の文字
currChar: WideChar; // 現在の文字
nextChar: WideChar; // 次の文字

prevToken:TToken; // 前のトークン
currToken:TToken; // 現在のトークン
nextToken:TToken; // 次のトークン

constructor Create();
destructor Destroy; override;
end;

implementation
//---------------------------------------------------------------------------------------------------
// 初期化
//---------------------------------------------------------------------------------------------------
constructor TContext.Create();
begin
State := 'その他';// トークンリーダーの状態

prevChar := #0; // 前の文字
currChar := #0; // 現在の文字
nextChar := #0; // 次の文字

//未確定トークン を 初期化
currToken := TToken.Create('', 'その他');
nextToken := TToken.Create('', 'その他');

//確定済みトークン を 初期化
prevToken := TToken.Create('', 'その他');
end;
//----------------------------------------------------------------------------------------------------
// 終了
//----------------------------------------------------------------------------------------------------
destructor TContext.Destroy();
begin
currToken.Free;
nextToken.Free;
prevToken.Free;

currToken := nil;
nextToken := nil;
prevToken := nil;

inherited;
end;

end.