まとめ 【トークン書き込み用クラス】

TokenWriter.cs


using System;

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