2013-05-20 19:34:15 -04:00
|
|
|
#include "Symbol.h"
|
|
|
|
|
|
|
|
|
|
Symbol::Symbol(std::string name, bool isTerminal) {
|
|
|
|
|
this->name = name;
|
2013-05-30 19:49:19 -04:00
|
|
|
this->terminal = isTerminal;
|
|
|
|
|
this->subTree = NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Symbol::Symbol(std::string name, bool isTerminal, NodeTree* tree) {
|
|
|
|
|
this->name = name;
|
|
|
|
|
this->terminal = isTerminal;
|
|
|
|
|
this->subTree = tree;
|
2013-05-20 19:34:15 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Symbol::~Symbol() {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2013-05-23 01:35:54 -04:00
|
|
|
const bool Symbol::operator==(const Symbol &other) {
|
2013-05-30 19:49:19 -04:00
|
|
|
return( name == other.name && terminal == other.terminal);
|
2013-05-23 01:35:54 -04:00
|
|
|
}
|
|
|
|
|
|
2013-05-20 19:34:15 -04:00
|
|
|
std::string Symbol::toString() {
|
2013-05-30 19:49:19 -04:00
|
|
|
return(name); //+ "(" + (terminal ? "T" : "NT") + ")");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Symbol* Symbol::clone() {
|
|
|
|
|
return new Symbol(name, terminal, subTree);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Symbol::setSubTree(NodeTree* tree) {
|
|
|
|
|
subTree = tree;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
NodeTree* Symbol::getSubTree() {
|
|
|
|
|
return subTree;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool Symbol::isTerminal() {
|
|
|
|
|
return terminal;
|
2013-05-20 19:34:15 -04:00
|
|
|
}
|
|
|
|
|
|