⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 table.cpp

📁 自己在学习编译原理时用vc++写的算符优先分析器
💻 CPP
字号:
// Table.cpp: implementation of the CTable class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "MyFormulary.h"
#include "Table.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CTable::CTable()
{

}

CTable::~CTable()
{

}

void CTable::TablesClear()
{
	m_CommandTable.RemoveAll();
	m_KeywordTable.RemoveAll();
	m_IdentifierTable.RemoveAll();
	m_OperatorTable.RemoveAll();
	m_SeparatorTable.RemoveAll();
	m_CharacterTable.RemoveAll();
	m_StringTable.RemoveAll();
	m_IntegerTable.RemoveAll();
	m_RealTable.RemoveAll();
}

void CTable::TablesInitialization()
{
	TablesClear();
	
	m_CommandTable.Add(_T("#include"));
	m_CommandTable.Add(_T("#define"));
	m_CommandTable.Add(_T("#undef"));
	m_CommandTable.Add(_T("#if"));
	m_CommandTable.Add(_T("#elif"));
	m_CommandTable.Add(_T("#else"));
	m_CommandTable.Add(_T("#ifdef"));
	m_CommandTable.Add(_T("#ifndef"));
	m_CommandTable.Add(_T("#endif"));
	m_CommandTable.Add(_T("#pragma"));

	m_KeywordTable.Add(_T("auto"));
	m_KeywordTable.Add(_T("register"));
	m_KeywordTable.Add(_T("static"));
	m_KeywordTable.Add(_T("extern"));
	m_KeywordTable.Add(_T("const"));
	m_KeywordTable.Add(_T("volatile"));
	m_KeywordTable.Add(_T("typedef"));
	m_KeywordTable.Add(_T("void"));
	m_KeywordTable.Add(_T("bool"));
	m_KeywordTable.Add(_T("false"));
	m_KeywordTable.Add(_T("true"));
	m_KeywordTable.Add(_T("enum"));
	m_KeywordTable.Add(_T("signed"));
	m_KeywordTable.Add(_T("unsigned"));
	m_KeywordTable.Add(_T("char"));
	m_KeywordTable.Add(_T("short"));
	m_KeywordTable.Add(_T("int"));
	m_KeywordTable.Add(_T("long"));
	m_KeywordTable.Add(_T("float"));
	m_KeywordTable.Add(_T("double"));
	m_KeywordTable.Add(_T("union"));
	m_KeywordTable.Add(_T("struct"));
	m_KeywordTable.Add(_T("class"));
	m_KeywordTable.Add(_T("public"));
	m_KeywordTable.Add(_T("protected"));
	m_KeywordTable.Add(_T("private"));
	m_KeywordTable.Add(_T("friend"));
	m_KeywordTable.Add(_T("this"));
	m_KeywordTable.Add(_T("template"));
	m_KeywordTable.Add(_T("inline"));
	m_KeywordTable.Add(_T("virtual"));
	m_KeywordTable.Add(_T("throw"));
	m_KeywordTable.Add(_T("catch"));
	m_KeywordTable.Add(_T("try"));
	m_KeywordTable.Add(_T("operator"));
	m_KeywordTable.Add(_T("new"));
	m_KeywordTable.Add(_T("delete"));
	m_KeywordTable.Add(_T("sizeof"));
	m_KeywordTable.Add(_T("if"));
	m_KeywordTable.Add(_T("else"));
	m_KeywordTable.Add(_T("for"));
	m_KeywordTable.Add(_T("do"));
	m_KeywordTable.Add(_T("while"));
	m_KeywordTable.Add(_T("switch"));
	m_KeywordTable.Add(_T("case"));
	m_KeywordTable.Add(_T("default"));
	m_KeywordTable.Add(_T("goto"));
	m_KeywordTable.Add(_T("break"));
	m_KeywordTable.Add(_T("continue"));
	m_KeywordTable.Add(_T("return"));

	m_OperatorTable.Add(_T("++"));
	m_OperatorTable.Add(_T("+="));
	m_OperatorTable.Add(_T("+"));
	m_OperatorTable.Add(_T("--"));
	m_OperatorTable.Add(_T("->*"));
	m_OperatorTable.Add(_T("->"));
	m_OperatorTable.Add(_T("-="));
	m_OperatorTable.Add(_T("-"));
	m_OperatorTable.Add(_T("*="));
	m_OperatorTable.Add(_T("*"));
	m_OperatorTable.Add(_T("/="));
	m_OperatorTable.Add(_T("/"));
	m_OperatorTable.Add(_T("%="));
	m_OperatorTable.Add(_T("%"));
	m_OperatorTable.Add(_T("<<="));
	m_OperatorTable.Add(_T("<<"));
	m_OperatorTable.Add(_T("<="));
	m_OperatorTable.Add(_T("<"));
	m_OperatorTable.Add(_T(">>="));
	m_OperatorTable.Add(_T(">>"));
	m_OperatorTable.Add(_T(">="));
	m_OperatorTable.Add(_T(">"));
	m_OperatorTable.Add(_T("!="));
	m_OperatorTable.Add(_T("!"));
	m_OperatorTable.Add(_T("&&"));
	m_OperatorTable.Add(_T("&="));
	m_OperatorTable.Add(_T("&"));
	m_OperatorTable.Add(_T("||"));
	m_OperatorTable.Add(_T("|="));
	m_OperatorTable.Add(_T("|"));
	m_OperatorTable.Add(_T("^="));
	m_OperatorTable.Add(_T("^"));
	m_OperatorTable.Add(_T("~"));
	m_OperatorTable.Add(_T(".*"));
	m_OperatorTable.Add(_T("."));
	m_OperatorTable.Add(_T("=="));
	m_OperatorTable.Add(_T("="));
	m_OperatorTable.Add(_T("::"));
	m_OperatorTable.Add(_T(":"));
	m_OperatorTable.Add(_T("?"));
	m_OperatorTable.Add(_T("["));
	m_OperatorTable.Add(_T("]"));
	m_OperatorTable.Add(_T(","));

	m_SeparatorTable.Add(_T("("));
	m_SeparatorTable.Add(_T(")"));
	m_SeparatorTable.Add(_T("{"));
	m_SeparatorTable.Add(_T("}"));
	m_SeparatorTable.Add(_T(";"));
}

⌨️ 快捷键说明

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