トークン読み込み用クラス (C#用)

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

TokenReaderCSharp.h


//*******************************************************************************************************
// トークンごとに 文字列と その種類を返す ( C#用 )
//*******************************************************************************************************
#ifndef TokenReaderCSharpH
#define TokenReaderCSharpH
//---------------------------------------------------------------------------
#include "TokenReaderCase.h"
//---------------------------------------------------------------------------
class TTokenReaderCSharp : public TTokenReaderCase
{
protected:
// 逐語的文字列か?
bool __fastcall IsLiteral();
// 状態を更新 (逐語的文字列)
void __fastcall getNextStateStrLit();

public:
// 初期化
__fastcall TTokenReaderCSharp(TTextReader* reader, AnsiString langType);
};
#endif

TokenReaderCSharp.cpp


//*******************************************************************************************************
// トークンごとに 文字列と その種類を返す ( C#用 )
//*******************************************************************************************************
#pragma hdrstop
#include <vcl.h>
#include "TokenReaderCSharp.h"
//-------------------------------------------------------------------------------------------------------
#pragma package(smart_init)
//-------------------------------------------------------------------------------------------------------
// 初期化
//-------------------------------------------------------------------------------------------------------
__fastcall TTokenReaderCSharp::TTokenReaderCSharp(TTextReader* reader, AnsiString langType):TTokenReaderCase(reader, langType)
{
}
//-------------------------------------------------------------------------------------------------------
// 逐語的文字列か?
//-------------------------------------------------------------------------------------------------------
bool __fastcall TTokenReaderCSharp::IsLiteral()
{
return ((_context->currChar == '@') && (_context->nextChar == '\"'));
}
//-------------------------------------------------------------------------------------------------------
// 状態を更新 (逐語的文字列)
//-------------------------------------------------------------------------------------------------------
void __fastcall TTokenReaderCSharp::getNextStateStrLit()
{
TTokenReaderCase::getNextStateStrLit();

if (wcslen(_context->currToken->tokenString) > 1)
{
if (_context->currChar == '\"')
_context->State = "その他";
}
}