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

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

TokenReaderCSharp.h


#pragma once

#include ".\TokenReaderCase.h"

namespace SourceToHtml
{
using namespace System;
//*******************************************************************************************************
// トークンごとに 文字列と その種類を返す ( C#用 )
//*******************************************************************************************************
public __gc class TokenReaderCSharp : public TokenReaderCase
{
protected:
// 逐語的文字列か?
bool IsLiteral();
// 状態を更新 (逐語的文字列)
void getNextStateStrLit();

public:
// 初期化
TokenReaderCSharp(Reader* reader, String* langType);
// 終了
~TokenReaderCSharp();
};
}

TokenReaderCSharp.cpp


#include "StdAfx.h"
#include ".\TokenReaderCSharp.h"

namespace SourceToHtml
{
//*******************************************************************************************************
// トークンごとに 文字列と その種類を返す ( C#用 )
//*******************************************************************************************************
//-------------------------------------------------------------------------------------------------------
// 初期化
//-------------------------------------------------------------------------------------------------------
TokenReaderCSharp::TokenReaderCSharp(Reader* reader, String* langType):TokenReaderCase(reader, langType)
{
}
//-------------------------------------------------------------------------------------------------------
// 終了
//-------------------------------------------------------------------------------------------------------
TokenReaderCSharp::~TokenReaderCSharp()
{
}
//-------------------------------------------------------------------------------------------------------
// 逐語的文字列か?
//-------------------------------------------------------------------------------------------------------
bool TokenReaderCSharp::IsLiteral()
{
return ((_context->currChar == '@') && (_context->nextChar == '\"'));
}
//-------------------------------------------------------------------------------------------------------
// 状態を更新 (逐語的文字列)
//-------------------------------------------------------------------------------------------------------
void TokenReaderCSharp::getNextStateStrLit()
{
TokenReaderCase::getNextStateStrLit();

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