トークン読み込み用クラス (T-SQL用)

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

TokenReaderTsql.h


//*******************************************************************************************************
// トークンごとに 文字列と その種類を返す ( T-SQL用 )
//*******************************************************************************************************
#ifndef TokenReaderTsqlH
#define TokenReaderTsqlH
//---------------------------------------------------------------------------
#include "TokenReaderNoCase.h"
//---------------------------------------------------------------------------
class TTokenReaderTsql : public TTokenReaderNoCase
{
protected:
// 単一行コメントか?
bool __fastcall IsComSingle();
// エスケープされた識別子か?
bool __fastcall IsEscape();
// 状態を更新 (エスケープされた識別子)
void __fastcall getNextStateIdwEsc();

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

TokenReaderTsql.cpp


//*******************************************************************************************************
// トークンごとに 文字列と その種類を返す ( T-SQL用 )
//*******************************************************************************************************
#pragma hdrstop
#include <vcl.h>
#include "TokenReaderTsql.h"
//-------------------------------------------------------------------------------------------------------
#pragma package(smart_init)
//-------------------------------------------------------------------------------------------------------
// 初期化
//-------------------------------------------------------------------------------------------------------
__fastcall TTokenReaderTsql::TTokenReaderTsql(TTextReader* reader, AnsiString langType):TTokenReaderNoCase(reader, langType)
{
}
//-------------------------------------------------------------------------------------------------------
// 単一行コメントか?
//-------------------------------------------------------------------------------------------------------
bool __fastcall TTokenReaderTsql::IsComSingle()
{
return ((_context->currChar == '-') && (_context->nextChar == '-'));
}
//-------------------------------------------------------------------------------------------------------
// エスケープされた識別子か?
//-------------------------------------------------------------------------------------------------------
bool __fastcall TTokenReaderTsql::IsEscape()
{
return ((_context->currChar == '\"') || (_context->currChar == '['));
}
//-------------------------------------------------------------------------------------------------------
// 状態を更新 (エスケープされた識別子)
//-------------------------------------------------------------------------------------------------------
void __fastcall TTokenReaderTsql::getNextStateIdwEsc()
{
TTokenReaderNoCase::getNextStateIdwEsc();

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

else if ((_context->currToken->tokenString[1] == '[') && (_context->currChar == ']'))
_context->State = "その他";
}
}