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

📄 symboltable.cpp

📁 a basic interpreter free basic
💻 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 + -