?? 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 + -