symboltable.cpp

来自「对象为c语言子集的词法分析程序 个人的课程代码」· C++ 代码 · 共 82 行

CPP
82
字号
#include "SymbolTable.h"

SymbolTable::SymbolTable(void)
{
	keywords.insert("auto");
	keywords.insert("enum");
	keywords.insert("restrict");
 	keywords.insert("unsigned");
 
	keywords.insert("break");
 	keywords.insert("extern");
 	keywords.insert("return");
 	keywords.insert("void");
 
	keywords.insert("case");
 	keywords.insert("float");
 	keywords.insert("short");
 	keywords.insert("volatile");
 
	keywords.insert("char");
 	keywords.insert("for");
 	keywords.insert("signed");
 	keywords.insert("while");
 
	keywords.insert("const");
 	keywords.insert("goto");
 	keywords.insert("sizeof");
 	keywords.insert("_Bool");
 
	keywords.insert("continue");
 	keywords.insert("if");
 	keywords.insert("static");
 	keywords.insert("_Complex");
 
	keywords.insert("default");
 	keywords.insert("inline");
 	keywords.insert("struct");
 	keywords.insert("_Imaginary");
 
	keywords.insert("do");
 	keywords.insert("int");
 	keywords.insert("switch");
   
	keywords.insert("double");
 	keywords.insert("long");
 	keywords.insert("typedef");
 
	keywords.insert("else");
 	keywords.insert("register");
 	keywords.insert("union");
}

SymbolTable::~SymbolTable(void)
{
}
	

bool SymbolTable::isKeyword(string token)
{
	if (keywords.find(token)!=keywords.end())
		return true;
	else
		return false;
}

void SymbolTable::installId(string token)
{
	symbolTable[token] = "id";
}

void SymbolTable::installNum(string token)
{
	symbolTable[token] = "num";
}

//SymbolTable* SymbolTable::getInstance()
//{	
//	if ( instance == NULL )
//		instance = new SymbolTable();
//	return instance;
//}

⌨️ 快捷键说明

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