diff -r a751aa1ee4f7 -r 7545b1bc1514 Fahad/MCG-CS/Program.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Fahad/MCG-CS/Program.cs Wed Nov 12 12:24:26 2014 +0000 @@ -0,0 +1,75 @@ +using System; +using System.Collections.Generic; +using System.Text; + +// Added +using System.IO; +using System.Diagnostics; + +namespace MCG_CS +{ + class Program + { + static void Main(string[] args) + { + bool bExit = false; + + while (bExit == false) + { + Console.WriteLine("\nPlease enter the file path or type quit to exit the application"); + string strFileName = Console.ReadLine(); + + if (strFileName == "quit") + bExit = true; + else + { + + try + { + + Stopwatch timerParser = new Stopwatch(); + Stopwatch timerCompiler = new Stopwatch(); + + + + //string strInputCodeFile = "Factorial.kcl"; + + //string strFileName = "C:\\Users\\fahad\\Desktop\\MCG-CS\\Code\\" + strInputCodeFile; + + timerParser.Start(); + TextReader inputFile = File.OpenText(strFileName); + Lexer _Lexer = new Lexer(inputFile); + + IList lexemes = _Lexer.GetLexemes; + Parser parser = new Parser(lexemes); + + Console.WriteLine("\nParsing Time: " + (timerParser.ElapsedTicks).ToString()); + + timerCompiler.Start(); + + strFileName = Path.GetFileNameWithoutExtension(strFileName); + CodeGenerator codeGenerator = new CodeGenerator(parser.GetParsedStatement, strFileName + ".exe"); + + timerParser.Stop(); + timerCompiler.Stop(); + + + Console.WriteLine("Compiling Time: " + (timerCompiler.ElapsedTicks).ToString()); + Console.WriteLine("Overall Time: " + (timerParser.ElapsedTicks).ToString()); + + Console.WriteLine("\nCode has been compiled successfully!"); + Console.WriteLine("\nAn executable assembly file has been generated with the same name as input file and saved in BIN\\DEBUG folder"); + + + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + Console.WriteLine("\nPress any key to continue..."); + } + + } + } + } + } +}