Cleaned up some debug messages, parseInput(string) now returns a parse tree of NodeTree*. This is done by having each non-terminal Symbol have it's own subtree and calling a method to combine subtrees and terminals on each reduce. The output is now the DOT version of the parse tree.

This commit is contained in:
Nathan Braswell
2013-05-30 19:49:19 -04:00
parent dd7b255520
commit 0c4af245bf
5 changed files with 85 additions and 28 deletions

View File

@@ -52,21 +52,26 @@ int main(int argc, char* argv[]) {
Parser parser;
parser.loadGrammer(grammerInputFileString);
std::cout << "Creating State Set from Main" << std::endl;
//std::cout << "Creating State Set from Main" << std::endl;
parser.createStateSet();
std::cout << "finished State Set from Main" << std::endl;
std::cout << "Doing stateSetToString from Main" << std::endl;
//std::cout << "finished State Set from Main" << std::endl;
//std::cout << "Doing stateSetToString from Main" << std::endl;
std::cout << parser.stateSetToString() << std::endl;
std::cout << "finished stateSetToString from Main" << std::endl;
//std::cout << "finished stateSetToString from Main" << std::endl;
std::cout << grammerInputFileString << std::endl;
std::cout << parser.grammerToString() << std::endl;
std::cout << parser.grammerToDOT() << std::endl;
//std::cout << parser.grammerToDOT() << std::endl;
outFile << parser.grammerToDOT() << std::endl;
//outFile << parser.grammerToDOT() << std::endl;
std::cout << programInputFileString << std::endl;
parser.parseInput(programInputFileString);
NodeTree* parseTree = parser.parseInput(programInputFileString);
if (parseTree) {
std::cout << parseTree->DOTGraphString() << std::endl;
outFile << parseTree->DOTGraphString() << std::endl;
}
programInFile.close();
grammerInFile.close();