symboltable.h

来自「网络游戏魔域的服务端与客户端完整源代码 包括详细的说明文档与开发日志」· C头文件 代码 · 共 56 行

H
56
字号
// SymbolTable.h: interface for the CSymbolTable class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SYMBOLTABLE_H__0D35D1FA_25A1_4F28_80C2_59C4BB69C4D7__INCLUDED_)
#define AFX_SYMBOLTABLE_H__0D35D1FA_25A1_4F28_80C2_59C4BB69C4D7__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "define.h"
#include "VarType.h"
#include "Index.h"

//////////////////////////////////////////////////////////////////////
const int	SYSTEM_FUNCTION_ID_BEGIN	=    1001;
const int	SYSTEM_FUNCTION_ID_END		=   10000;

const int	GAME_FUNCTION_ID_BEGIN		=  100001;
const int	GAME_FUNCTION_ID_END		=  200000;

const int	GAME_ACTION_ID_BEGIN		=  200001;
const int	GAME_ACTION_ID_END			=  300000;

const int	SYSTEM_FACT_ID_BEGIN		= 1000001;


//////////////////////////////////////////////////////////////////////
class CSymbolTable  
{
	COM_STYLE(CSymbolTable)
public:
	CSymbolTable();
	virtual ~CSymbolTable();

public: // function symbol
	bool	AddSymbol(StringRef strSymbol, OBJID id)	{ LOGDUMP("Add Symbol: %u, %s.", id, (LPCTSTR)strSymbol); return m_setSymbol.Add(strSymbol, id); }

public: // fact symbol
	bool	Create(OBJID idSymbolBegin);
	OBJID	GetSymbolID(StringRef strSymbol)			{ AddSymbol(strSymbol); return m_setSymbol[strSymbol]; }
	LPCTSTR	FindSymbolByID(OBJID id);

protected:
	bool	AddSymbol(StringRef strSymbol);
	OBJID	SpawnSymbolID()								{ return m_idNext++; }

protected:
	typedef	Index<String, OBJID>	SYMBOL_SET;
	SYMBOL_SET		m_setSymbol;
	OBJID			m_idNext;
};

#endif // !defined(AFX_SYMBOLTABLE_H__0D35D1FA_25A1_4F28_80C2_59C4BB69C4D7__INCLUDED_)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?