Fahad/MCG-CS/Program.cs
changeset 45 7545b1bc1514
--- /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<object> 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...");
+                    }
+
+                }
+            }
+        }
+    }
+}