文脈情報クラス

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

Context.h


#pragma once

#include ".\token.h"

namespace SourceToHtml
{
using namespace System;
//*******************************************************************************************************
// 文脈情報クラス
//*******************************************************************************************************
public __gc class Context
{
public:
String* State; // トークンリーダーの状態

Char prevChar; // 前の文字
Char currChar; // 現在の文字
Char nextChar; // 次の文字

Token* prevToken; // 前のトークン
Token* currToken; // 現在のトークン
Token* nextToken; // 次のトークン

// 初期化
Context();
// 終了
~Context();
};
}

Context.cpp


#include "StdAfx.h"
#include ".\context.h"

namespace SourceToHtml
{
//*******************************************************************************************************
// 文脈情報クラス
//*******************************************************************************************************
//-------------------------------------------------------------------------------------------------------
// 初期化
//-------------------------------------------------------------------------------------------------------
Context::Context()
{
State = S"その他"; // トークンリーダーの状態

prevChar = '\0'; // 前の文字
currChar = '\0'; // 現在の文字
nextChar = '\0'; // 次の文字

//未確定トークン を 初期化
currToken = new Token(S"", S"その他");
nextToken = new Token(S"", S"その他");

//確定済みトークン を 初期化
prevToken = new Token(S"", S"その他");
}
//-------------------------------------------------------------------------------------------------------
// 終了
//-------------------------------------------------------------------------------------------------------
Context::~Context()
{
currToken = NULL;
nextToken = NULL;
prevToken = NULL;
}
}