2013-05-20 19:34:15 -04:00
|
|
|
#include "ParseRule.h"
|
|
|
|
|
|
|
|
|
|
ParseRule::ParseRule() {
|
|
|
|
|
pointerIndex = 0;
|
|
|
|
|
leftHandle = NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ParseRule::~ParseRule() {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ParseRule::setLeftHandle(Symbol* leftHandle) {
|
|
|
|
|
this->leftHandle = leftHandle;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ParseRule::appendToRight(Symbol* appendee) {
|
|
|
|
|
rightSide.push_back(appendee);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
std::string ParseRule::toString() {
|
|
|
|
|
std::string concat = leftHandle->toString() + " -> ";
|
|
|
|
|
for (int i = 0; i < rightSide.size(); i++) {
|
|
|
|
|
concat += rightSide[i]->toString() + " ";
|
|
|
|
|
}
|
2013-05-20 22:59:57 -04:00
|
|
|
return(concat);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
std::string ParseRule::toDOT() {
|
|
|
|
|
std::string concat = "";
|
|
|
|
|
for (int i = 0; i < rightSide.size(); i++) {
|
|
|
|
|
concat += leftHandle->toString() + " -> " + rightSide[i]->toString() + ";\n";
|
|
|
|
|
}
|
|
|
|
|
return(concat);
|
2013-05-20 19:34:15 -04:00
|
|
|
}
|
|
|
|
|
|