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

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

Convert.h


#pragma once

#include ".\writer.h"
#include ".\reader.h"
#include ".\Token.h"
#include ".\TokenReader.h"
#include ".\TokenWriter.h"

namespace SourceToHtml
{
//*******************************************************************************************************
// HTML変換処理 呼び出しクラス
//*******************************************************************************************************
public __gc class Convert
{
private:
const Char EOF; //'\0' ファイルの終わり
public:
// 初期化
Convert();
// 終了
~Convert();
// ファイルの終わりまで、1文字ずつ読んで、1文字ずつ書く
void charcopy(Reader* reader, Writer* writer);
// HTML に書式化して出力
void tohtml(Reader* reader, Writer* writer, String* langType);
};
}

Convert.cpp


#include "StdAfx.h"
#include ".\Convert.h"

namespace SourceToHtml
{
//*******************************************************************************************************
// HTML変換処理 呼び出しクラス
//*******************************************************************************************************
//-------------------------------------------------------------------------------------------------------
// 初期化
//-------------------------------------------------------------------------------------------------------
Convert::Convert():EOF('\0')
{
}
//-------------------------------------------------------------------------------------------------------
// 終了
//-------------------------------------------------------------------------------------------------------
Convert::~Convert()
{
}
//-------------------------------------------------------------------------------------------------------
// ファイルの終わりまで、1文字ずつ読んで、1文字ずつ書く
//-------------------------------------------------------------------------------------------------------
void Convert::charcopy(Reader* reader, Writer* writer)
{
//ファイルの終わりまで、1文字ずつ読んで
Char c;
while ((c = reader->getChar()) != EOF)
{
//1文字ずつ書く
writer->putChar(c);
}
}
//-------------------------------------------------------------------------------------------------------
// HTML に書式化して出力
//-------------------------------------------------------------------------------------------------------
void Convert::tohtml(Reader* reader, Writer* writer, String* langType)
{
TokenReader* tokenReader = TokenReader::Create(reader, langType);
TokenWriter* tokenWriter = new TokenWriter(writer);

//ファイルの終わりまで、1区切りずつ読んで
Token* token;
while((token = tokenReader->getToken()) != NULL)
{
//文字列の種類に応じた色指定タグで挟んで出力する
tokenWriter->putToken(token);
}

tokenReader = NULL;
tokenWriter = NULL;
}
}