Now generates for all files that have been imported. CGenerator uses this to generate all files AND a shell script with the compile command to compile the generated C file.

This commit is contained in:
Nathan Braswell
2014-01-01 17:29:19 -06:00
parent dbf1820428
commit 53b45f360d
11 changed files with 78 additions and 36 deletions

View File

@@ -36,6 +36,10 @@ Importer::~Importer() {
}
NodeTree<ASTData>* Importer::import(std::string fileName) {
//Check to see if we've already done it
if (imported.find(fileName) != imported.end())
return imported[fileName];
std::ifstream programInFile;
std::ofstream outFile, outFileTransformed, outFileAST;
@@ -64,7 +68,7 @@ NodeTree<ASTData>* Importer::import(std::string fileName) {
std::cout << "Probelm opening second output file " << outputName + ".AST.dot" << "\n";
return NULL;
}
//ljklj
std::string programInputFileString, line;
while(programInFile.good()) {
getline(programInFile, line);
@@ -72,7 +76,7 @@ NodeTree<ASTData>* Importer::import(std::string fileName) {
}
programInFile.close();
std::cout << programInputFileString << std::endl;
//std::cout << programInputFileString << std::endl;
NodeTree<Symbol>* parseTree = parser->parseInput(programInputFileString);
if (parseTree) {
@@ -109,5 +113,11 @@ NodeTree<ASTData>* Importer::import(std::string fileName) {
}
outFileAST.close();
imported[fileName] = AST;
return AST;
}
}
std::map<std::string, NodeTree<ASTData>*> Importer::getASTMap() {
return imported;
}