トークン書き込み用クラス

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

TokenWriter.jsl


package SourceToHtml;

//*******************************************************************************************************
// トークンごとに 種類に応じた色指定タグで挟んで出力する
//*******************************************************************************************************
public class TokenWriter
{
//出力用クラス
private Writer _writer;
//---------------------------------------------------------------------------------------------------
// 初期化
//---------------------------------------------------------------------------------------------------
public TokenWriter(Writer writer)
{
//出力用クラス
_writer = writer;
}
//---------------------------------------------------------------------------------------------------
// 終了
//---------------------------------------------------------------------------------------------------
protected void Finalize()
{
_writer = null;
}
//---------------------------------------------------------------------------------------------------
// Tokenごとに 種類に応じた色指定タグで挟んで出力する
//---------------------------------------------------------------------------------------------------
public void putToken(Token token)
{
if (token.tokenKind == "予約語")
{
_writer.putString("<SPAN CLASS=\"KEY\">");
_writer.putString(token.get_tokenHtml());
_writer.putString("</SPAN>");
}
else if (token.tokenKind == "コメント")
{
_writer.putString("<SPAN CLASS=\"COM\">");
_writer.putString(token.get_tokenHtml());
_writer.putString("</SPAN>");
}
else if (token.tokenKind == "文字列")
{
_writer.putString("<SPAN CLASS=\"STR\">");
_writer.putString(token.get_tokenHtml());
_writer.putString("</SPAN>");
}
else if (token.tokenKind == "文字")
{
_writer.putString("<SPAN CLASS=\"CHA\">");
_writer.putString(token.get_tokenHtml());
_writer.putString("</SPAN>");
}
else if (token.tokenKind == "数字")
{
_writer.putString("<SPAN CLASS=\"NUM\">");
_writer.putString(token.get_tokenHtml());
_writer.putString("</SPAN>");
}
else if (token.tokenKind == "識別子")
{
_writer.putString("<SPAN CLASS=\"IDW\">");
_writer.putString(token.get_tokenHtml());
_writer.putString("</SPAN>");
}
else if (token.tokenKind == "演算子")
{
_writer.putString("<SPAN CLASS=\"OPE\">");
_writer.putString(token.get_tokenHtml());
_writer.putString("</SPAN>");
}
else if (token.tokenKind == "区切り記号")
{
_writer.putString("<SPAN CLASS=\"DLM\">");
_writer.putString(token.get_tokenHtml());
_writer.putString("</SPAN>");
}
else if (token.tokenKind == "ディレクティブ")
{
_writer.putString("<SPAN CLASS=\"DIR\">");
_writer.putString(token.get_tokenHtml());
_writer.putString("</SPAN>");
}
else
{
_writer.putString(token.get_tokenHtml());
}
}
}