📄 symboltable.cpp
字号:
#include "StdAfx.h"
#include "SymbolTable.h"
CSymbolTable::CSymbolTable(void)
{
this->m_SymbolTable = new symbollist_t();
}
CSymbolTable::~CSymbolTable(void)
{
symbollist_t::iterator symIterator = this->m_SymbolTable->begin();
while(symIterator != this->m_SymbolTable->end())
{
CSymbol *Symbol;
Symbol = *symIterator;
delete(*symIterator);
symIterator++;
}
delete(this->m_SymbolTable);
}
// Add a symbol to the symbol table
void CSymbolTable::Add(CSymbol * Symbol)
{
// First, make sure there are no existing symbols
// with this name
if(this->Find(Symbol->GetName()))
{
throw ILLEGAL_VARIABLE;
}
// If so, then push the symbol onto the list
this->m_SymbolTable->push_back(Symbol);
}
// Find a symbol by name
CSymbol * CSymbolTable::Find(string Name)
{
// Iterate over the symbol table, find the symbol that
// matches and return
symbollist_t::iterator sym = this->m_SymbolTable->begin();
while(sym != this->m_SymbolTable->end())
{
CSymbol *thisSymbol = *sym;
if(thisSymbol->GetName() == Name)
{
return thisSymbol;
}
sym++;
}
return NULL;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -