//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //+ Student: Junshan Li + //+ Proj. Assignemnt: Eight + //+ Due Date: April 2, 2001 + //+ Course Name: MSCS 518 - Compiler Design + //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // main.cpp -- driver for QuadFiler class. #include #include "QuadFiler.h" #include #include int main(int argc, char *argv[]) { QuadFiler aQuadFiler; char* fName = ""; char* theProgName = ""; if (argc != 2) { cout << "Incorrect number of command line arguments" << endl; cout << "Usage: QuadFiler \n"; exit(1); } else { fName = new char[strlen(argv[1]) + 1]; strcpy(fName, argv[1]); cout << "The file name is: " << fName << endl; } fName = new char[strlen(argv[1]) + 1]; strcpy(fName, argv[1]); // Store the program in a char array: testing func storeFileName(): cout << "+++++ Testing method storeFileName... +++++ \n"; aQuadFiler.store(fName); cout << "+++++ Testing method storeFileName successful. +++++ \n"; // Create a Quad file: cout << "+++++ Testing method createQuadFile()... +++++ \n"; aQuadFiler.createQuadFile(); cout << "+++++ Testing method createQuadFile() successful. +++++ \n"; // Close the Quad file: cout << "+++++ Testing method closeQuadFile()... +++++ \n"; aQuadFiler.closeQuadFile(); cout << "+++++ Testing method closeQuadFile() successful. +++++ \n"; // Testing retrieveQuadFile() method (this should follow storeFileName): cout << "+++++ Testing method retrieveQuadFile... +++++ \n"; aQuadFiler.retrieveQuadFile(); aQuadFiler.closeQuadFile(); cout << "+++++ Testing method retrieveQuadFile successful. +++++ \n"; // Remove the Quad file: cout << "+++++ Testing method removeQuadFile()... +++++ \n"; aQuadFiler.removeQuadFile(); cout << "+++++ Testing method removeQuadFile() successful. +++++ \n"; // Place a token in the file cout << "+++++ Testing method emitQuad()... +++++ \n"; aQuadFiler.createQuadFile(); Token aTok(IDENTIFIER, 1), bTok(ENDOFTEXT, 11); Token cTok(RESERVED, 0), dTok(NUMBER, 2); Quadruple aQuad, bQuad; aQuad.setQuad(1, cTok, aTok, 4); bQuad.setQuad(2, dTok, bTok, 5); aQuad.show(); bQuad.show(); aQuadFiler.emitQuad(aQuad); aQuadFiler.emitQuad(bQuad); aQuadFiler.closeQuadFile(); cout << "+++++ Testing method emitQuad() successful. +++++ \n"; // Testing function seeQuadFile(): cout << "+++++ Testing method seeQuadFile()...+++++\n"; aQuadFiler.seeQuadFile(); cout << "+++++ Testing method seeQuadFile() successful. +++++\n"; // Testing getNextQuad(): cout << "+++++ Testing method getNextQuad()...+++++\n"; aQuadFiler.retrieveQuadFile(); Quadruple cQuad; cQuad = aQuadFiler.getNextQuad(); cQuad.show(); cQuad = aQuadFiler.getNextQuad(); cQuad.show(); aQuadFiler.closeQuadFile(); cout << "+++++ Testing method getNextQuad() successful. +++++\n"; return 0; } // end of main.